溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

為MongoDB數(shù)據(jù)庫(kù)配置專有網(wǎng)絡(luò)VPC以及Python3實(shí)現(xiàn)訪問(wèn) MongoDB數(shù)據(jù)庫(kù)

發(fā)布時(shí)間:2020-05-29 09:39:07 來(lái)源:億速云 閱讀:230 作者:Leah 欄目:云計(jì)算

這篇文章為大家詳細(xì)介紹了為MongoDB數(shù)據(jù)庫(kù)配置專有網(wǎng)絡(luò)VPC以及Python3實(shí)現(xiàn)訪問(wèn) MongoDB數(shù)據(jù)庫(kù)的方法,文中示例代碼非常詳細(xì),感興趣的小伙伴們可以參考一下。

公共配置

創(chuàng)建專有網(wǎng)絡(luò)VPC

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

  1. 創(chuàng)建安全組

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

創(chuàng)建與配置 MongoDB 實(shí)例
  1. 創(chuàng)建成功后,在實(shí)例信息頁(yè)面左側(cè)的導(dǎo)航欄中單擊白名單設(shè)置
  2. 單擊 default 區(qū)域框右側(cè)的修改。
    為MongoDB數(shù)據(jù)庫(kù)配置專有網(wǎng)絡(luò)VPC以及Python3實(shí)現(xiàn)訪問(wèn) MongoDB數(shù)據(jù)庫(kù)

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

    1. 登錄 VPC 控制臺(tái),在專有網(wǎng)絡(luò)列表中找到應(yīng)用所在的 VPC,單擊該 VPC 的名稱進(jìn)入專有網(wǎng)絡(luò)詳情頁(yè)面。
    2. 復(fù)制應(yīng)用所在的 VPC 的 IPv4 網(wǎng)段。
      為MongoDB數(shù)據(jù)庫(kù)配置專有網(wǎng)絡(luò)VPC以及Python3實(shí)現(xiàn)訪問(wèn) MongoDB數(shù)據(jù)庫(kù)
    3. 組內(nèi)白名單設(shè)置框中粘貼該 VPC 的 IPv4 網(wǎng)段地址,然后單擊確定。
      為MongoDB數(shù)據(jù)庫(kù)配置專有網(wǎng)絡(luò)VPC以及Python3實(shí)現(xiàn)訪問(wèn) MongoDB數(shù)據(jù)庫(kù)
  4. 最后訪問(wèn) MongoDB 數(shù)據(jù)庫(kù) host 為實(shí)例的內(nèi)網(wǎng)地址,可以登錄阿里云控制臺(tái)查看

    為MongoDB數(shù)據(jù)庫(kù)配置專有網(wǎng)絡(luò)VPC以及Python3實(shí)現(xiàn)訪問(wèn) MongoDB數(shù)據(jù)庫(kù)

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

  1. 在 函數(shù)計(jì)算控制臺(tái) 創(chuàng)建服務(wù)。
    • 創(chuàng)建服務(wù)步驟請(qǐng)參考文章 服務(wù)的增刪改查
  2. 【專有網(wǎng)絡(luò)配置】選項(xiàng)中,選擇您在步驟一中創(chuàng)建的 VPC 網(wǎng)絡(luò),交換機(jī)、安全組。
  3. 【權(quán)限配置】選項(xiàng)中,選擇【新建角色】,點(diǎn)擊【點(diǎn)擊授權(quán)】,在角色快速創(chuàng)建頁(yè)面,點(diǎn)擊【同意授權(quán)】。
    • 這步的操作是授予函數(shù)計(jì)算對(duì) ENI 的操作權(quán)限,函數(shù)計(jì)算訪問(wèn) VPC 中資源需要的權(quán)限請(qǐng)參考文章 配置函數(shù)計(jì)算訪問(wèn) VPC 內(nèi)的資源
  4. 點(diǎn)擊確定,新建服務(wù)完畢。

###函數(shù)編寫與調(diào)試
下面演示 函數(shù)示例創(chuàng)建:

  1. 建立一個(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: './'
  2. 在該目錄下創(chuàng)建 Funfile 文件內(nèi)容為:
    RUNTIME python3
    RUN fun-install pip install pymongo
  3. 執(zhí)行fun install命令安裝依賴:

    $ fun install
    using template: template.yml
    start installing function dependencies without docker
    安裝過(guò)程。。。。
    Install Success
  4. 在函數(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ù)庫(kù)授權(quán)
        client.admin.authenticate(username, password)
        #使用test數(shù)據(jù)庫(kù)的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'
  5. 使用 fun 工具部署:

    $ fun deploy
    using template: template.yml
    using region: cn-hangzhou
    using accountId: ***********3743
    using accessKeyId: ***********Ptgk
    using timeout: 60
    
    部署過(guò)程。。。
            function python-test deploy success
    service MongoDB-test deploy success

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

以上就是為MongoDB數(shù)據(jù)庫(kù)配置專有網(wǎng)絡(luò)VPC以及Python3實(shí)現(xiàn)訪問(wèn) MongoDB數(shù)據(jù)庫(kù)的方法,如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI