All Products
Search
Document Center

Function Compute:Konfigurasikan variabel lingkungan

Last Updated:Apr 01, 2026

Variabel lingkungan memungkinkan Anda menyesuaikan perilaku fungsi tanpa mengubah kode. Variabel ini disimpan sebagai pasangan kunci-nilai dalam konfigurasi fungsi, dan setiap fungsi memiliki himpunan yang terisolasi sendiri.

Catatan

Untuk nilai sensitif seperti Kunci API dan kredensial database, simpan di Key Management Service (KMS) alih-alih dalam variabel lingkungan. Dekripsi nilai tersebut saat waktu proses dengan memanggil API KMS sebelum fungsi dieksekusi.

Cara kerja

Saat Anda membuat atau memperbarui variabel lingkungan, Function Compute mengenkripsi variabel tersebut menggunakan Advanced Encryption Standard (AES-256) sebelum menyimpannya. Saat instans fungsi diinisialisasi, Function Compute mendekripsi variabel tersebut dan menyuntikkannya ke dalam lingkungan instans.

Kasus penggunaan

  • Lingkungan terpisah: Arahkan basis kode yang sama ke bucket Object Storage Service (OSS), database, atau tabel yang berbeda tergantung pada apakah Anda berada di lingkungan uji atau produksi—tanpa perubahan kode.

  • Manage kredensial: Simpan pasangan AccessKey Alibaba Cloud atau nama pengguna dan kata sandi database di luar kode Anda.

  • Override path sistem: Atur variabel PATH dan HOME sesuai kebutuhan lingkungan runtime Anda.

Batasan

BatasanDetail
Format kunciKunci harus dimulai dengan huruf dan hanya boleh berisi huruf serta angka.
Ukuran totalUkuran gabungan semua variabel lingkungan untuk suatu fungsi tidak boleh melebihi 4 KB.
Reserved PrefixJangan gunakan awalan FC_* untuk variabel Anda sendiri. Function Compute mencadangkannya untuk variabel yang disuntikkan sistem.

Variabel lingkungan sistem

Function Compute secara otomatis menyuntikkan variabel read-only berikut ke setiap instans fungsi. Jangan override atau definisikan ulang variabel ini.

Variabel runtime

VariabelDeskripsi
FC_FUNC_CODE_PATHDirektori penerapan kode
FC_ACCOUNT_IDID pengguna
FC_FUNCTION_HANDLERPenanganan
FC_FUNCTION_MEMORY_SIZEUkuran memori fungsi, dalam MB
FC_FUNCTION_NAMENama fungsi
FC_REGIONWilayah tempat fungsi dijalankan
FC_CUSTOM_LISTEN_PORTPort listening kustom fungsi
FC_INSTANCE_IDID instans fungsi
FC_VER_IDID versi fungsi, untuk runtime bawaan pada Debian 10 atau lebih lama
FC_FUNCTION_VERSIONID versi fungsi, untuk runtime bawaan pada Debian 11 atau lebih baru

Variabel kredensial

Function Compute juga menyuntikkan variabel kredensial berikut, yang sesuai dengan peran eksekusi yang dikonfigurasi pada fungsi:

VariabelDeskripsi
ALIBABA_CLOUD_ACCESS_KEY_IDID AccessKey peran
ALIBABA_CLOUD_ACCESS_KEY_SECRETRahasia AccessKey peran
ALIBABA_CLOUD_SECURITY_TOKENToken temporary untuk peran
Penting

ALIBABA_CLOUD_ACCESS_KEY_ID, ALIBABA_CLOUD_ACCESS_KEY_SECRET, dan ALIBABA_CLOUD_SECURITY_TOKEN berisi informasi kredensial sensitif. Jangan bagikan atau ekspos nilai-nilai ini kepada pihak ketiga.

Konfigurasikan variabel lingkungan di Konsol

Prerequisites: Fungsi harus sudah ada sebelum Anda dapat mengonfigurasi variabel lingkungannya. Lihat Buat fungsi.

Tambahkan variabel lingkungan

  1. Login ke Konsol Function Compute. Di panel navigasi kiri, klik Functions.

  2. Di bilah navigasi atas, pilih wilayah. Di halaman Functions, klik fungsi yang ingin Anda kelola.

  3. Klik tab Configurations, lalu pilih Environment Variables di panel navigasi sebelah kiri.

  4. Klik Modify. Pada panel Environment Variables, pilih editor dan konfigurasikan variabel Anda:

    • Form Editor (default): Klik + Add Variable, lalu masukkan kunci di bidang Variable dan nilai di bidang Value. Persyaratan:

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

      • Ukuran total semua variabel lingkungan tidak boleh melebihi 4 KB.

      • Hindari awalan FC_*.

    • JSON Editor: Klik JSON Editor dan masukkan pasangan kunci-nilai dalam format berikut: ``json { "BUCKET_NAME": "MY_BUCKET", "TABLE_NAME": "MY_TABLE" } ``

  5. Klik Deploy.

Verifikasi konfigurasi

  1. Klik tab Code. Di editor kode, masukkan kode Python berikut dan klik Deploy:

    # -*- 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"
  2. Klik Test Function, lalu klik Log Output untuk melihat log. Output log mengonfirmasi bahwa variabel lingkungan tersedia.

Konfigurasikan variabel lingkungan menggunakan Serverless Devs

Sebelum memulai, pastikan Anda telah:

Terapkan fungsi dengan variabel lingkungan

  1. Buat direktori proyek (misalnya, test) dengan struktur berikut:

    .
    ├── code
    │   └── index.py
    └── s.yaml
  2. Tambahkan bidang environmentVariables ke file s.yaml Anda:

    edition: 3.0.0
    name: hello-world-app
    access: "default"
    
    vars:
      region: "cn-hangzhou"
    
    resources:
      hello_world:
        component: fc3
        props:
          region: ${vars.region}
          functionName: envdemo
          description: 'hello world by serverless devs'
          runtime: python3
          code: ./code
          handler: index.handler
          memorySize: 128
          timeout: 30
          environmentVariables:
              BUCKET_NAME: MY_BUCKET
              TABLE_NAME: MY_TABLE
          codeUri: ./
  3. Jalankan perintah berikut untuk menerapkan:

    s deploy

Setelah penerapan, login ke Konsol Function Compute untuk mengonfirmasi bahwa fungsi dan variabel lingkungannya telah dibuat.

Konfigurasikan variabel lingkungan menggunakan SDK

Contoh berikut menggunakan SDK Python (pustaka fc2). Parameter environmentVariables menerima kamus pasangan kunci-nilai.

Semua contoh membaca kredensial dari variabel lingkungan untuk menghindari hardcoding nilai sensitif.

Create environment variables

# coding: utf-8
import os
import fc2

client = fc2.Client(
    endpoint='<your-endpoint>',
    # Baca kredensial dari variabel lingkungan.
    # Di runtime Function Compute, nilai ini diatur secara otomatis saat Anda mengonfigurasi izin eksekusi.
    accessKeyID=os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
    accessKeySecret=os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET')
)

client.create_service('test')

client.create_function(
    'test',             # Nama layanan
    'test_env',         # Nama fungsi
    'python3',          # Runtime
    'main.handler',     # Handler
    codeDir='/path/to/code/',
    environmentVariables={'testKey': 'testValue'}
)

res = client.get_function('test', 'test_env')
print(res.data)

Update environment variables

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)

Get environment variables

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

Gunakan variabel lingkungan dalam kode

Untuk contoh dalam berbagai runtime, lihat Gunakan variabel lingkungan dalam kode.

FAQ

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

Ya. Variabel lingkungan memiliki cakupan pada versi fungsi. Setelah Anda menerbitkan versi dari LATEST, Anda dapat memodifikasi variabel lingkungan versi LATEST secara independen—perubahan tersebut tidak memengaruhi versi yang telah diterbitkan.

Bagaimana cara melindungi nilai sensitif yang dikonfigurasi sebagai variabel lingkungan?

Enkripsi nilai sensitif tersebut dan simpan di Key Management Service (KMS). Sebelum fungsi Anda dieksekusi, panggil API KMS untuk mendekripsi nilai tersebut dan suntikkan ke dalam runtime. Hal ini menjaga rahasia teks biasa agar tidak masuk ke konfigurasi fungsi Anda.

Langkah selanjutnya