All Products
Search
Document Center

Function Compute:Mengakses database ApsaraDB for MongoDB

Last Updated:Aug 20, 2025

Dalam Function Compute, Anda dapat menggunakan fungsi untuk memanggil API database guna menyisipkan atau menanyakan data. Pada umumnya, status instance tidak dibagikan di antara lingkungan eksekusi yang berbeda dalam Function Compute. Jika ingin berbagi status instance, Anda perlu menyimpan data terstruktur di dalam database. Topik ini menjelaskan cara menerapkan fungsi untuk mengakses database ApsaraDB for MongoDB menggunakan Serverless Devs dengan Python 3.

Prasyarat

  • Sebuah instance database ApsaraDB for MongoDB telah dibuat.
    Penting
    • Pastikan bahwa instance database berada di wilayah yang sama dengan fungsi yang akan mengaksesnya.

    • Disarankan untuk membuat instance database di zona yang didukung oleh Function Compute. Untuk informasi lebih lanjut tentang fitur pengaturan rute pesan, lihat Zona di Mana Function Compute Didukung.

      Jika instance database tidak berada di zona yang didukung oleh Function Compute, buat vSwitch di VPC Anda. vSwitch harus berada di zona yang sama dengan Function Compute. Selain itu, tentukan ID vSwitch dalam konfigurasi VPC dari layanan tertentu di Function Compute. vSwitch di VPC yang sama dapat berkomunikasi satu sama lain melalui jaringan pribadi. Oleh karena itu, Function Compute dapat menggunakan vSwitch untuk mengakses sumber daya di VPC yang berada di zona lain. Untuk informasi lebih lanjut, lihat Bagaimana Saya Bisa Menyelesaikan Kesalahan "vSwitch Ada di Zona yang Tidak Didukung"?.

  • Database bernama test-db dan koleksi database bernama fc_col telah dibuat.

    Dalam contoh ini, perintah s init digunakan untuk menyisipkan entri data dokumen ke dalam koleksi fc-col dari database test-db. Nilai parameter MONGO_DATABASE adalah test-db.

Langkah 1: Konfigurasikan daftar putih alamat IP untuk database

Disarankan untuk menggunakan daftar putih alamat IP daripada grup keamanan demi akses yang aman. Jika tidak, koneksi fungsi mungkin tidak stabil, yang dapat memengaruhi bisnis Anda.

Catatan Dalam topik ini, digunakan sebuah instance kluster sharded. Untuk informasi tentang cara menambahkan alamat IP ke daftar putih, lihat Ubah Daftar Putih untuk Instance.
  1. Masuk ke Konsol ApsaraDB for MongoDB.
  2. Di bilah navigasi atas, pilih wilayah.
  3. Di panel navigasi di sebelah kiri, klik Sharded Cluster Instances.
  4. Pada halaman Sharded Cluster Instances, klik nama kluster yang diinginkan.
  5. Di panel navigasi di sebelah kiri, pilih Data Security > Whitelist Settings.
  6. Pada halaman Whitelist Settings, temukan grup daftar putih, klik ikon More di kolom Actions, dan pilih Manually Modify dari daftar drop-down.
  7. Pada panel Manually Modify, masukkan alamat IP dan klik OK.
    Penting Anda harus menentukan alamat IP yang termasuk dalam blok CIDR dari vSwitch yang ditambahkan saat mengonfigurasi jaringan untuk Function Compute.

Langkah 2: Terapkan dan debug fungsi

  1. Instal Serverless Devs dan Docker serta tambahkan kunci.
    Untuk informasi lebih lanjut, lihat Instal Serverless Devs dan Docker dan Tambahkan Kunci.
  2. Inisialisasi proyek.
    s init start-fc-mongodb-python -d start-fc-mongodb-python
  3. Akses proyek.
    cd start-fc-mongodb-python
  4. Edit file s.yaml.

    Berikut ini adalah contoh kode konfigurasi:

    edition: 1.0.0
    name: fcDeployApp
    access: "default"
    
    services:
      fc-db-mongodb-python:
        component: devsapp/fc
        props:
          region: cn-hangzhou
          service:
            name: fc-db-demo
            description: 'demo untuk fc mengunjungi db'
            internetAccess: true
            vpcConfig:
              vpcId: vpc-bp1hcg467ekqsv0zr**** # ID dari virtual private cloud (VPC) tempat instance database berada. 
              securityGroupId: sg-bp1j6knvj40yjn0g**** # ID dari grup keamanan. 
         vswitchIds:
                - vsw-bp1lgecrqfslgji9b**** # Pastikan bahwa blok CIDR dari vSwitch ditambahkan ke daftar putih instance database. 
          function:
            name: mongodb
            description: kunjungi mongodb
            runtime: python3
            codeUri: ./code
            handler: index.handler
            memorySize: 256
            timeout: 60
            environmentVariables:
              MONGO_DATABASE: test-db # Nama database. 
              MONGO_URL: mongodb://m****:Hang****@s-bp1a2d6c391e****.mongodb.rds.aliyuncs.com:37** # Titik akhir database. 
  5. Jalankan perintah berikut untuk membangun proyek:

    s build --use-docker
  6. Jalankan perintah berikut untuk menerapkan proyek:

    s deploy -y
  7. Jalankan perintah berikut untuk memanggil fungsi:
    s invoke -e "{}"

    Output perintah yang diharapkan:

    [2021-09-22T22:25:58.139] [INFO ] [S-CLI] - Mulai ...
    ========= FC invoke Logs mulai =========
    FC Invoke Start RequestId: b361814a-0a70-4511-8212-6739389d3ca4
    temukan dokumen:{'_id': ObjectId('614b3ccea90d5fbfc262e918'), 'DEMO': 'FC', 'MSG': 'Hello FunctionCompute For MongoDB'}
    FC Invoke End RequestId: b361814a-0a70-4511-8212-6739389d3ca4
    
    Durasi: 61.27 ms, Durasi Dibayar: 62 ms, Ukuran Memori: 256 MB, Memori Maks Digunakan: 51.21 MB
    ========= FC invoke Logs selesai =========
    
    FC Invoke Hasil:
    {'_id': ObjectId('614b3ccea90d5fbfc262e918'), 'DEMO': 'FC', 'MSG': 'Hello FunctionCompute For MongoDB'}
    
    
    Akhir metode: invoke

Contoh kode

Mengakses Database MongoDB dalam Waktu Proses Python Function Compute