All Products
Search
Document Center

Function Compute:Mengakses database ApsaraDB RDS for MySQL

Last Updated:Aug 20, 2025

Di dalam Function Compute, Anda dapat menggunakan fungsi untuk memanggil API database guna menyisipkan atau menanyakan data. Umumnya, status instance tidak dibagikan di antara lingkungan eksekusi yang berbeda di 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 RDS for MySQL menggunakan Serverless Devs. Python 3 digunakan dalam topik ini.

Prasyarat

  • Buat Instance ApsaraDB RDS for MySQL dengan Cepat
    Penting
    • Pastikan bahwa instance database yang Anda buat berada di wilayah yang sama dengan fungsi yang perlu mengakses instance tersebut.

    • Kami merekomendasikan agar Anda 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 Anda tidak diterapkan di zona yang didukung oleh Function Compute, buat vSwitch di VPC Anda. vSwitch harus berada di zona yang sama dengan Function Compute. Selain itu, Anda harus menentukan ID vSwitch dalam konfigurasi VPC 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 Cara Menyelesaikan Kesalahan "vSwitch Berada di Zona yang Tidak Didukung"?.

  • Buat Akun dan Database
  • Tabel bernama users dibuat di instance ApsaraDB RDS for MySQL.

    Dalam contoh ini, perintah s init digunakan untuk menanyakan semua data di tabel users di dalam database. Anda harus membuat tabel users terlebih dahulu.

Langkah 1: Konfigurasikan daftar putih alamat IP untuk database

Catatan

Mengakses database dengan menggunakan grup keamanan dapat mengakibatkan koneksi fungsi yang tidak stabil. Untuk memastikan bisnis Anda berjalan seperti yang diharapkan, kami merekomendasikan agar Anda mengonfigurasi daftar putih alamat IP untuk mengakses database.

  1. Pergi ke halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instance RDS berada. Kemudian, temukan instance RDS dan klik ID instance tersebut.

  2. Di panel navigasi di sebelah kiri, klik Whitelist and SecGroup.

    Di tab Whitelist Settings, Anda dapat melihat mode dari daftar putih alamat IP.

    Catatan

    Instance RDS yang ada mungkin beroperasi dalam mode daftar putih yang ditingkatkan. Semua instance RDS baru beroperasi dalam mode daftar putih standar.

  3. Di tab Whitelist Settings yang muncul, temukan grup daftar putih default dan klik Modify.
  4. Di kotak dialog Edit Whitelist, konfigurasikan IP Addresses dan klik OK.
    Penting Anda harus menentukan alamat IP yang termasuk dalam blok CIDR dari vSwitch yang Anda tambahkan 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-mysql-python -d start-fc-mysql-python
  3. Akses proyek.
    cd start-fc-mysql-python
  4. Edit file s.yaml.

    Berikut adalah contoh kode konfigurasi:

    edition: 1.0.0
    name: fcDeployApp
    access: "default"
    
    services:
     fc-db-mysql-python:
      component: devsapp/fc
      props:
       region: cn-hangzhou
       service:
        name: fc-db-demo
        description: 'demo untuk fc kunjungi db'
        internetAccess: true
        vpcConfig:
              vpcId: vpc-bp1hcg467ekqsv0zr**** # ID dari virtual private cloud (VPC) di mana 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: mysql
        description: kunjungi mysql
        runtime: python3
        codeUri: ./code
        handler: index.handler
        memorySize: 256
        timeout: 60
        environmentVariables:
              MYSQL_HOST: rm-bp13d39n0m2s0****.mysql.rds.aliyuncs.com # Alamat IP pribadi dari instance database.
              MYSQL_PORT: 33** # Port pribadi dari instance database.
              MYSQL_USER: ni**** # Nama pengguna dari instance database.
              MYSQL_PASSWORD: Hangzhou**** # Kata sandi dari instance database.
              MYSQL_DBNAME: django-**** # Database yang dibuat pada instance 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-10T14:35:27.747] [INFO ] [S-CLI] - Mulai ...
    ========= FC invoke Logs mulai =========
    FC Invoke Start RequestId: b00ec6c1-1d12-4110-8299-bb5129a4fd0c
    2021-09-10T06:35:37.944Z b00ec6c1-1d12-4110-8299-bb5129a4fd0c [INFO] ('3', 'wan')
    FC Invoke End RequestId: b00ec6c1-1d12-4110-8299-bb5129a4fd0c
    
    Durasi: 148.46 ms, Durasi Ditagih: 149 ms, Ukuran Memori: 256 MB, Memori Maks Digunakan: 32.21 MB
    ========= FC invoke Logs selesai =========
    
    Hasil FC Invoke:
    [
        "3",
        "wan"
    ]
    
    
    Akhir metode: invoke

Contoh kode

Mengakses Database MySQL di Waktu Proses Python dari Function Compute