全部产品
Search
文档中心

Function Compute:Variabel Lingkungan

更新时间:Dec 15, 2025

Anda dapat menggunakan variabel lingkungan untuk menyesuaikan perilaku fungsi secara fleksibel di Function Compute tanpa perlu memodifikasi kode. Variabel lingkungan disimpan sebagai pasangan kunci-nilai dalam konfigurasi fungsi. Fungsi yang berbeda memiliki variabel lingkungan yang berbeda. Topik ini menjelaskan informasi dasar tentang variabel lingkungan, cara mengonfigurasinya, serta cara menggunakannya dalam kode.

Keamanan

Saat Anda membuat atau memperbarui variabel lingkungan, Function Compute mengenkripsi variabel tersebut menggunakan Standar Enkripsi Lanjutan 256 (AES 256) sebelum disimpan. Saat instance fungsi diinisialisasi, variabel lingkungan didekripsi dan disuntikkan ke dalam lingkungan instance fungsi.

Batasan

  • Aturan untuk set karakter:

    • Kunci harus dimulai dengan huruf dan hanya boleh berisi huruf dan angka.

  • Ukuran:

    Total ukuran semua variabel lingkungan tidak boleh melebihi 4 KB.

  • Variabel lingkungan sistem:

    Untuk mencegah kebingungan sistem, saat mengonfigurasi variabel lingkungan, Anda tidak dapat menggunakan variabel lingkungan sistem yang dicadangkan oleh Function Compute, termasuk FC_*, accessKeyID, accessKeySecret, securityToken, dan topic.

    Anda dapat menggunakan variabel lingkungan sistem berikut:

    • FC_FUNC_CODE_PATH: direktori penyebaran kode.

    • ALIBABA_CLOUD_ACCESS_KEY_ID: ID AccessKey dari peran.

    • ALIBABA_CLOUD_ACCESS_KEY_SECRET: Rahasia AccessKey dari peran.

    • ALIBABA_CLOUD_SECURITY_TOKEN: Token sementara untuk peran.

    • FC_ACCOUNT_ID: ID pengguna.

    • FC_FUNCTION_HANDLER: Penanganan fungsi.

    • FC_FUNCTION_MEMORY_SIZE: Ukuran memori fungsi. Satuan: MB.

    • FC_FUNCTION_NAME: Nama fungsi.

    • FC_REGION: Wilayah tempat fungsi berada.

    • FC_SERVICE_NAME: Nama layanan tempat fungsi tersebut milik.

    • FC_CUSTOM_LISTEN_PORT: Port mendengarkan kustom fungsi.

    • FC_INSTANCE_ID: ID instance fungsi.

    • FC_QUALIFIER: Alias layanan tempat fungsi tersebut milik. Nilai default: LATEST.

    Penting

    Variabel lingkungan sistem, termasuk accessKeyID, accessKeySecret, securityToken, ALIBABA_CLOUD_ACCESS_KEY_ID, ALIBABA_CLOUD_ACCESS_KEY_SECRET, dan ALIBABA_CLOUD_SECURITY_TOKEN, adalah informasi sensitif sementara. Jangan mengungkapkan variabel-variabel ini kepada pihak ketiga.

Skenario

  • Berbagi kode lintas platform atau layanan:

    Konfigurasi kode yang sama mungkin bervariasi antara lingkungan pengujian dan lingkungan produksi. Anda dapat menggunakan variabel lingkungan untuk memilih bucket Object Storage Service (OSS), database, atau tabel yang berbeda. Dengan cara ini, Anda dapat menyebarkan kode fungsi ke platform yang berbeda tanpa modifikasi apa pun.

  • Mengonfigurasi pasangan AccessKey:

    Anda dapat menggunakan variabel lingkungan untuk mengonfigurasi informasi otentikasi sensitif keamanan, seperti pasangan Alibaba Cloud AccessKey Anda, serta nama pengguna dan kata sandi yang digunakan untuk terhubung ke database.

  • Mengonfigurasi variabel sistem:

    Anda dapat mengonfigurasi variabel PATH dan HOME di direktori sistem.

Mengonfigurasi variabel lingkungan menggunakan konsol Function Compute

Prerequisites

Fungsi telah dibuat. Untuk informasi lebih lanjut, lihat bagian "Buat fungsi" pada topik Kelola fungsi.

Procedure

  1. Masuk ke Konsol Function Compute. Di panel navigasi kiri, klik Services & Functions.

  2. Di bilah navigasi atas, pilih wilayah. Pada halaman Services, klik layanan yang diinginkan.

  3. Pada halaman Functions, temukan fungsi yang ingin Anda ubah dan klik Configure di kolom Actions.

  4. Di bagian Environment Variables halaman detail fungsi, pilih metode untuk mengonfigurasi variabel lingkungan, lalu klik Save.

    • Editor Formulir (default):

      1. Klik + Add Variable.

      2. Konfigurasikan pasangan kunci-nilai variabel lingkungan.

        • Variable: Masukkan variabel kustom.

        • Value: Masukkan nilai variabel.

        Contoh kode:

        sc_edit_environment_variables

    • Editor JSON:

      1. Klik JSON Editor.

      2. Di editor kode, masukkan pasangan kunci-nilai dalam format JSON berikut:

        {
            "key": "value"
        }

        Contoh kode:

        {
            "BUCKET_NAME": "MY_BUCKET",
            "TABLE_NAME": "MY_TABLE"
        }
  5. Verifikasi apakah variabel lingkungan telah dibuat.

    1. Pada halaman detail fungsi, klik tab Code.

    2. Di editor kode, tulis kode fungsi dan klik Save and Deploy. Setelah fungsi diterapkan, klik Test Function.

      Contoh kode berikut memberikan contoh cara mengotentikasi variabel lingkungan menggunakan fungsi acara Python:

      # -*- coding: utf-8 -*-
      import logging
      import os
      
      def handler(event, context):
          logger = logging.getLogger()
          value = os.environ.get('BUCKET_NAME')
          logger.info('BUCKET_NAME: {}'.format(value))
          value = os.environ.get('TABLE_NAME')
          logger.info('TABLE_NAME: {}'.format(value))
          return "done"
    3. Pada tab Code, Anda dapat melihat log.

      Sebagaimana dapat dilihat dari log yang dicetak, variabel lingkungan telah dibuat.

Mengonfigurasi variabel lingkungan menggunakan Serverless Devs

Prerequisites

Procedure

  1. Buat direktori kode untuk pengujian. Sebagai contoh, direktori tersebut bernama test.

  2. Masuk ke direktori test dan buat file bernama index.py berdasarkan kode di bagian "Mengonfigurasi variabel lingkungan menggunakan Konsol Function Compute".

  3. Buat file s.yaml.

    Isi file:

    edition: 1.0.0
    name: transform_fun
    access: default
    vars:
      region: cn-shenzhen
    services:
      fc-Demo-envdemo:
        component: devsapp/fc
        props:
          region: ${vars.region}
          service:
            name: Demo    #  Deklarasikan layanan bernama Demo.
            internetAccess: true
          function:
            name: envdemo   #  Deklarasikan fungsi bernama envdemo di layanan Demo.
            handler: index.handler    #  Konfigurasikan penanganan untuk fungsi.
            runtime: python3          #  Tentukan waktu proses untuk fungsi.
            environmentVariables:     #  Konfigurasikan variabel lingkungan berikut untuk fungsi:
              BUCKET_NAME: MY_BUCKET
              TABLE_NAME: MY_TABLE
            codeUri: ./               #  Terapkan fungsi di direktori saat ini ./. Saat Serverless Devs menerapkan fungsi, Serverless Devs mengemas dan mengunggah direktori saat ini.
  4. Jalankan perintah s deploy untuk menerapkan proyek.

    Setelah Anda menjalankan perintah s deploy, Anda dapat masuk ke Function Compute console untuk melihat layanan dan fungsi yang Anda buat, serta variabel lingkungan yang Anda konfigurasikan untuk fungsi tersebut.

Mengonfigurasi variabel lingkungan menggunakan SDK

Dalam contoh ini, SDK untuk Python digunakan. Parameter environmentVariables menentukan variabel lingkungan. Nilai parameter ini disimpan dalam bentuk kamus. Contoh kode berikut menunjukkan cara membuat, memperbarui, dan mendapatkan variabel lingkungan:

  • Buat variabel lingkungan:

    # coding: utf-8
    import fc2
    import os
    
    client = fc2.Client(
        endpoint='your endpoint', # Titik akhir.
        # Pasangan AccessKey dari akun Alibaba Cloud memiliki izin untuk semua operasi API. Kami merekomendasikan Anda menggunakan Pengguna Resource Access Management (RAM) untuk memanggil operasi API atau melakukan O&M rutin.
        # Kami merekomendasikan Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey di kode proyek Anda. Jika tidak, pasangan AccessKey mungkin bocor dan keamanan semua sumber daya di akun Anda mungkin terganggu.
        Dalam contoh ini, pasangan AccessKey disimpan dalam variabel lingkungan untuk mengimplementasikan otentikasi identitas.
        # Konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET di lingkungan lokal Anda sebelum menjalankan kode contoh.
        # Di waktu proses Function Compute, variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasikan secara otomatis setelah Anda mengonfigurasi izin eksekusi.
        accessKeyID=os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), # ID AccessKey, yang dibuat di konsol RAM dan digunakan untuk otentikasi identitas.
        accessKeySecret=os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET') # Rahasia AccessKey, yang dibuat di konsol RAM dan digunakan untuk otentikasi identitas.
    
    client.create_service('test')
    
    client.create_function(
        'test', 'test_env', 'python3',  'main.handler',
        codeDir='/path/to/code/', environmentVariables={'testKey': 'testValue'})
    
    #test: nama layanan.
    #test_env: nama fungsi.
    #python3: waktu proses.
    #main.handler: penanganan.
    #codeDir: direktori kode.
    #environmentVariables: variabel lingkungan yang ingin Anda konfigurasikan.
    
    res = client.get_function('test', 'test_env')
    
    print(res.data)
  • Perbarui variabel lingkungan:

    client.update_function(
        'test', 'test_env', 'python3',  'main.handler',
        codeDir='/path/to/code/', environmentVariables={'newKey': 'newValue'})
    res = client.get_function('test', 'test_env')
    print(res.data)           
  • Dapatkan variabel lingkungan:

    resp = client.get_function('test', 'test_env')
    env = func['environmentVariables']

Gunakan variabel lingkungan dalam kode

Asumsikan bahwa Anda mengonfigurasi {"key":"val"} sebagai variabel lingkungan. Kode berikut menunjukkan bagaimana setiap waktu proses membaca dan mencetak nilai variabel tersebut.

var value = process.env.key
console.log(value)
import os
value = os.environ.get('key')
print(value)
System.out.println("value: "+ System.getenv("key"));
$value = getenv('key');
Console.WriteLine(Environment.GetEnvironmentVariable("key"));

Pemecahan Masalah

Bisakah saya mengonfigurasi variabel lingkungan yang berbeda untuk versi fungsi yang berbeda?

Ya. Setelah Anda mengonfigurasi variabel lingkungan untuk fungsi versi LATEST dan menerbitkan versi tersebut, Anda dapat memodifikasi variabel lingkungan di versi LATEST. Dengan cara ini, variabel lingkungan fungsi antara versi LATEST dan versi yang diterbitkan berbeda.

Apa yang harus saya lakukan jika saya tidak ingin menampilkan nilai variabel lingkungan dalam teks biasa? Bagaimana cara mengenkripsi data sensitif saat saya mengonfigurasi variabel lingkungan fungsi?

Anda dapat mengenkripsi dan menyimpan variabel lingkungan di Key Management Service. Pastikan Anda mengenkripsi variabel lingkungan sebelum menyimpannya di KMS. Sebelum Anda mengeksekusi fungsi, Anda dapat memanggil API KMS untuk mendekripsi variabel lingkungan dan mengonfigurasi variabel tersebut di waktu proses fungsi. Untuk informasi lebih lanjut, lihat Apa itu KMS?