這篇文章給大家介紹函數(shù)計算如何訪問 Mongo 數(shù)據(jù)庫,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
蓋州網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,蓋州網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為蓋州成百上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的蓋州做網(wǎng)站的公司定做!
函數(shù)計算(Function Compute): 函數(shù)計算 是事件驅(qū)動的全托管計算服務(wù)。使用函數(shù)計算,您無需采購與管理服務(wù)器等基礎(chǔ)設(shè)施,只需編寫并上傳代碼。函數(shù)計算為您準(zhǔn)備好計算資源,彈性地可靠地運行任務(wù),并提供日志查詢、性能監(jiān)控和報警等功能。借助函數(shù)計算,您可以快速構(gòu)建任何類型的應(yīng)用和服務(wù),并且只需為任務(wù)實際消耗的資源付費。
訪問 MongoDB 數(shù)據(jù)庫是指在函數(shù)計算中通過編寫代碼調(diào)用數(shù)據(jù)庫驅(qū)動庫通過 TCP 協(xié)議實現(xiàn)對數(shù)據(jù)庫進行的插入、查詢等操作。通常函數(shù)計算中運行的不同函數(shù)實例之間是不共享狀態(tài)的,對于結(jié)構(gòu)化的數(shù)據(jù)可以通過數(shù)據(jù)庫的形式進行持久化以實現(xiàn)狀態(tài)共享。由于用戶函數(shù)運行在函數(shù)計算的 VPC 中,而用戶的數(shù)據(jù)庫運行在用戶所屬的 VPC 中,所以在函數(shù)計算平臺訪問數(shù)據(jù)庫會涉及到跨 VPC 訪問的場景,下面我們先來介紹一下其工作機制。
訪問 MongoDB 的原理、工作機制與訪問 MySQL 數(shù)據(jù)庫完全相同,本文不再重復(fù)闡述,更詳細(xì)的內(nèi)容請參考 訪問 Mysql 數(shù)據(jù)庫 中的工作機制章節(jié)。
登錄 VPC控制臺。
參閱 VPC 搭建專有網(wǎng)絡(luò) 創(chuàng)建VPC和交換機。
在 安全組控制臺 新建安全組,點擊 創(chuàng)建安全組,設(shè)置安全組名稱,網(wǎng)絡(luò)類型選擇 專有網(wǎng)絡(luò),并選擇剛才創(chuàng)建的專有網(wǎng)絡(luò)。
創(chuàng)建適合業(yè)務(wù)需求的云數(shù)據(jù)庫 MongoDB 版實例可以參考 云數(shù)據(jù)庫 MongoDB 版。
注意:創(chuàng)建云數(shù)據(jù)庫 MongoDB 版實例需要選擇和函數(shù)計算配置相同的 VPC 實例,可以配置和函數(shù)計算不同的可用區(qū)的交換機,因為相同的 VPC 實例下不同可用區(qū)交換機內(nèi)網(wǎng)是互通的。
創(chuàng)建成功后,在實例信息頁面左側(cè)的導(dǎo)航欄中單擊白名單設(shè)置。
單擊
default區(qū)域框右側(cè)的修改。
在彈出的對話框中,將函數(shù)計算所在的 VPC 網(wǎng)絡(luò)的網(wǎng)段地址配置在白名單輸入框中。
登錄 VPC 控制臺,在專有網(wǎng)絡(luò)列表中找到應(yīng)用所在的 VPC,單擊該 VPC 的名稱進入專有網(wǎng)絡(luò)詳情頁面。
復(fù)制應(yīng)用所在的 VPC 的
IPv4 網(wǎng)段。
在組內(nèi)白名單設(shè)置框中粘貼該 VPC 的
IPv4 網(wǎng)段地址,然后單擊確定。
最后訪問 MongoDB 數(shù)據(jù)庫 host 為實例的內(nèi)網(wǎng)地址,可以登錄阿里云控制臺查看:
多種語言的客戶端連接阿里云 MongoDB 可以參考 MongoDB 客戶端連接。
注意:函數(shù)計算服務(wù)所在區(qū)域與公共配置中創(chuàng)建的資源所在區(qū)域一致。
在 函數(shù)計算控制臺 創(chuàng)建服務(wù)。
創(chuàng)建服務(wù)步驟請參考文章 服務(wù)的增刪改查
【專有網(wǎng)絡(luò)配置】選項中,選擇您在步驟一中創(chuàng)建的 VPC 網(wǎng)絡(luò),交換機、安全組。
【權(quán)限配置】選項中,選擇【新建角色】,點擊【點擊授權(quán)】,在角色快速創(chuàng)建頁面,點擊【同意授權(quán)】。
這步的操作是授予函數(shù)計算對 ENI 的操作權(quán)限,函數(shù)計算訪問 VPC 中資源需要的權(quán)限請參考文章 配置函數(shù)計算訪問 VPC 內(nèi)的資源
點擊確定,新建服務(wù)完畢。
下面演示 Python3 開發(fā)語言訪問 MongoDB 數(shù)據(jù)庫函數(shù)示例創(chuàng)建:
使用 Fun 工具在建立存放代碼和依賴模塊目錄下安裝依賴和項目部署。
建立一個目錄,用于存放代碼和依賴模塊,在該目錄下新建 template.yml 文件,例如 /tmp/code/template.yml,內(nèi)容為:
ROSTemplateFormatVersion: '2015-09-01' Transform: 'Aliyun::Serverless-2018-04-03' Resources: MongoDB-test: Type: 'Aliyun::Serverless::Service' Properties: Description: This is MongoDB service Role: 'acs:ram::XXXX:role/fc-public-test' LogConfig: Project: XXX Logstore: XXX VpcConfig: VpcId: vpc-XXXX VSwitchIds: - vsw-XXX SecurityGroupId: sg-XXXX InternetAccess: true python-test: Type: 'Aliyun::Serverless::Function' Properties: Handler: 'index.handler' Runtime: python3 Timeout: 10 MemorySize: 128 CodeUri: './'
在該目錄下創(chuàng)建 Funfile 文件內(nèi)容為:
RUNTIME python3 RUN fun-install pip install pymongo
執(zhí)行fun install
命令安裝依賴:
$ fun install using template: template.yml start installing function dependencies without docker 安裝過程。。。。 Install Success
在函數(shù)根目錄下新建代碼文件,例如 /tmp/code/index.py,在代碼中使用 pymongo :
# -*- coding: utf-8 -*- import uuid from pymongo import MongoClient def handler(event, context): CONN_ADDR1 = 'dds-XXX.mongodb.rds.aliyuncs.com:3717' CONN_ADDR2 = 'dds-XXXX.mongodb.rds.aliyuncs.com:3717' REPLICAT_SET = 'XXX' username = 'XXX' password = 'XXXX' #獲取mongoclient client = MongoClient([CONN_ADDR1, CONN_ADDR2], replicaSet=REPLICAT_SET) #授權(quán). 這里的user基于admin數(shù)據(jù)庫授權(quán) client.admin.authenticate(username, password) #使用test數(shù)據(jù)庫的collection:testColl做例子, 插入doc, 然后根據(jù)DEMO名查找 demo_name = 'python-' + str(uuid.uuid1()) print ('demo_name:'+ demo_name) doc = dict(DEMO=demo_name, MESG="Hello ApsaraDB For MongoDB") doc_id = client.test.testColl.insert(doc) for d in client.test.testColl.find(dict(DEMO=demo_name)): print ('find documents:'+ str(d)) return 'success'
使用 fun 工具部署:
$ fun deploy using template: template.yml using region: cn-hangzhou using accountId: ***********3743 using accessKeyId: ***********Ptgk using timeout: 60 部署過程。。。 function python-test deploy success service MongoDB-test deploy success
登錄控制臺,即可看到相關(guān)的服務(wù)、函數(shù)被創(chuàng)建成功,且觸發(fā)執(zhí)行可以返回正確的結(jié)果。
通過本文介紹可以快速實現(xiàn)函數(shù)計算訪問 Mongo 數(shù)據(jù)庫。
使用函數(shù)計算帶來的優(yōu)勢:
無需采購和管理服務(wù)器等基礎(chǔ)設(shè)施,只需專注業(yè)務(wù)邏輯的開發(fā),可以大幅縮短項目交付時間和人力成本;
提供日志查詢、性能監(jiān)控、報警等功能快速排查故障;
免運維,毫秒級別彈性伸縮,快速實現(xiàn)底層擴容以應(yīng)對峰值壓力,性能優(yōu)異;
成本極具競爭力;
關(guān)于函數(shù)計算如何訪問 Mongo 數(shù)據(jù)庫就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
網(wǎng)頁名稱:函數(shù)計算如何訪問Mongo數(shù)據(jù)庫
標(biāo)題路徑:http://muchs.cn/article38/ighcsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、手機網(wǎng)站建設(shè)、小程序開發(fā)、域名注冊、靜態(tài)網(wǎng)站、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)