久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

函數(shù)計(jì)算如何訪問 Mongo 數(shù)據(jù)庫

共計(jì) 3372 個(gè)字符,預(yù)計(jì)需要花費(fèi) 9 分鐘才能閱讀完成。

這篇文章給大家介紹函數(shù)計(jì)算如何訪問 Mongo 數(shù)據(jù)庫,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

函數(shù)計(jì)算(Function Compute):
函數(shù)計(jì)算 是事件驅(qū)動(dòng)的全托管計(jì)算服務(wù)。使用函數(shù)計(jì)算,您無需采購(gòu)與管理服務(wù)器等基礎(chǔ)設(shè)施,只需編寫并上傳代碼。函數(shù)計(jì)算為您準(zhǔn)備好計(jì)算資源,彈性地可靠地運(yùn)行任務(wù),并提供日志查詢、性能監(jiān)控和報(bào)警等功能。借助函數(shù)計(jì)算,您可以快速構(gòu)建任何類型的應(yīng)用和服務(wù),并且只需為任務(wù)實(shí)際消耗的資源付費(fèi)。

訪問 MongoDB 數(shù)據(jù)庫是指在函數(shù)計(jì)算中通過編寫代碼調(diào)用數(shù)據(jù)庫驅(qū)動(dòng)庫通過 TCP 協(xié)議實(shí)現(xiàn)對(duì)數(shù)據(jù)庫進(jìn)行的插入、查詢等操作。通常函數(shù)計(jì)算中運(yùn)行的不同函數(shù)實(shí)例之間是不共享狀態(tài)的,對(duì)于結(jié)構(gòu)化的數(shù)據(jù)可以通過數(shù)據(jù)庫的形式進(jìn)行持久化以實(shí)現(xiàn)狀態(tài)共享。由于用戶函數(shù)運(yùn)行在函數(shù)計(jì)算的 VPC 中,而用戶的數(shù)據(jù)庫運(yùn)行在用戶所屬的 VPC 中,所以在函數(shù)計(jì)算平臺(tái)訪問數(shù)據(jù)庫會(huì)涉及到跨 VPC 訪問的場(chǎng)景,下面我們先來介紹一下其工作機(jī)制。

工作機(jī)制

訪問 MongoDB 的原理、工作機(jī)制與訪問 Mysql 數(shù)據(jù)庫完全相同,本文不再重復(fù)闡述,更詳細(xì)的內(nèi)容請(qǐng)參考
訪問 Mysql 數(shù)據(jù)庫 中的工作機(jī)制章節(jié)。

配置與函數(shù)編寫公共配置創(chuàng)建專有網(wǎng)絡(luò) VPC

登錄
VPC 控制臺(tái)。

參閱
VPC   搭建專有網(wǎng)絡(luò) 創(chuàng)建 VPC 和交換機(jī)。

創(chuàng)建安全組


安全組控制臺(tái) 新建安全組,點(diǎn)擊
創(chuàng)建安全組,設(shè)置安全組名稱,網(wǎng)絡(luò)類型選擇
專有網(wǎng)絡(luò),并選擇剛才創(chuàng)建的專有網(wǎng)絡(luò)。

創(chuàng)建與配置 MongoDB 實(shí)例

創(chuàng)建適合業(yè)務(wù)需求的云數(shù)據(jù)庫 MongoDB 版實(shí)例可以參考
云數(shù)據(jù)庫 MongoDB 版。

注意:創(chuàng)建云數(shù)據(jù)庫 MongoDB 版實(shí)例需要選擇和函數(shù)計(jì)算配置相同的 VPC 實(shí)例,可以配置和函數(shù)計(jì)算不同的可用區(qū)的交換機(jī),因?yàn)橄嗤?VPC 實(shí)例下不同可用區(qū)交換機(jī)內(nèi)網(wǎng)是互通的。

創(chuàng)建成功后,在實(shí)例信息頁面左側(cè)的導(dǎo)航欄中單擊白名單設(shè)置。

單擊
default 區(qū)域框右側(cè)的修改。
函數(shù)計(jì)算如何訪問 Mongo 數(shù)據(jù)庫

在彈出的對(duì)話框中,將函數(shù)計(jì)算所在的 VPC 網(wǎng)絡(luò)的網(wǎng)段地址配置在白名單輸入框中。

登錄
VPC 控制臺(tái),在專有網(wǎng)絡(luò)列表中找到應(yīng)用所在的 VPC,單擊該 VPC 的名稱進(jìn)入專有網(wǎng)絡(luò)詳情頁面。

復(fù)制應(yīng)用所在的 VPC 的
IPv4 網(wǎng)段。
函數(shù)計(jì)算如何訪問 Mongo 數(shù)據(jù)庫

在組內(nèi)白名單設(shè)置框中粘貼該 VPC 的
IPv4 網(wǎng)段地址,然后單擊確定。
函數(shù)計(jì)算如何訪問 Mongo 數(shù)據(jù)庫

最后訪問 MongoDB 數(shù)據(jù)庫 host 為實(shí)例的內(nèi)網(wǎng)地址,可以登錄阿里云控制臺(tái)查看:

多種語言的客戶端連接阿里云 MongoDB 可以參考
MongoDB 客戶端連接。

函數(shù)計(jì)算如何訪問 Mongo 數(shù)據(jù)庫

函數(shù)計(jì)算配置 VPC

注意:函數(shù)計(jì)算服務(wù)所在區(qū)域與公共配置中創(chuàng)建的資源所在區(qū)域一致。


函數(shù)計(jì)算控制臺(tái) 創(chuàng)建服務(wù)。

創(chuàng)建服務(wù)步驟請(qǐng)參考文章
服務(wù)的增刪改查

【專有網(wǎng)絡(luò)配置】選項(xiàng)中,選擇您在步驟一中創(chuàng)建的 VPC 網(wǎng)絡(luò),交換機(jī)、安全組。

【權(quán)限配置】選項(xiàng)中,選擇【新建角色】,點(diǎn)擊【點(diǎn)擊授權(quán)】,在角色快速創(chuàng)建頁面,點(diǎn)擊【同意授權(quán)】。

這步的操作是授予函數(shù)計(jì)算對(duì) ENI 的操作權(quán)限,函數(shù)計(jì)算訪問 VPC 中資源需要的權(quán)限請(qǐng)參考文章
配置函數(shù)計(jì)算訪問 VPC 內(nèi)的資源

點(diǎn)擊確定,新建服務(wù)完畢。

函數(shù)編寫與調(diào)試

下面演示 Python3 開發(fā)語言訪問 MongoDB 數(shù)據(jù)庫函數(shù)示例創(chuàng)建:

使用
Fun 工具在建立存放代碼和依賴模塊目錄下安裝依賴和項(xiàng)目部署。

建立一個(gè)目錄,用于存放代碼和依賴模塊,在該目錄下新建 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

登錄控制臺(tái),即可看到相關(guān)的服務(wù)、函數(shù)被創(chuàng)建成功,且觸發(fā)執(zhí)行可以返回正確的結(jié)果。

通過本文介紹可以快速實(shí)現(xiàn)函數(shù)計(jì)算訪問 Mongo 數(shù)據(jù)庫。

使用函數(shù)計(jì)算帶來的優(yōu)勢(shì):

無需采購(gòu)和管理服務(wù)器等基礎(chǔ)設(shè)施,只需專注業(yè)務(wù)邏輯的開發(fā),可以大幅縮短項(xiàng)目交付時(shí)間和人力成本;

提供日志查詢、性能監(jiān)控、報(bào)警等功能快速排查故障;

免運(yùn)維,毫秒級(jí)別彈性伸縮,快速實(shí)現(xiàn)底層擴(kuò)容以應(yīng)對(duì)峰值壓力,性能優(yōu)異;

成本極具競(jìng)爭(zhēng)力;

關(guān)于函數(shù)計(jì)算如何訪問 Mongo 數(shù)據(jù)庫就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-25發(fā)表,共計(jì)3372字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 平遥县| 庄浪县| 泽普县| 厦门市| 葵青区| 广饶县| 弋阳县| 黑河市| 和林格尔县| 永定县| 灵丘县| 永靖县| 河间市| 广东省| 江陵县| 山阴县| 郴州市| 葫芦岛市| 兰坪| 石狮市| 乐山市| 新竹县| 大丰市| 滨州市| 西青区| 铅山县| 荣成市| 新津县| 个旧市| 巴塘县| 安康市| 吴堡县| 桑日县| 西贡区| 蓬安县| 繁昌县| 镶黄旗| 修文县| 佳木斯市| 买车| 合川市|