All Products
Search
Document Center

Function Compute:Konfigurasikan variabel lingkungan

Last Updated:Apr 24, 2026

Anda dapat menggunakan variabel lingkungan untuk menyesuaikan perilaku fungsi FC tanpa mengubah kodenya. Variabel lingkungan adalah pasangan kunci-nilai berupa string yang disimpan dalam konfigurasi fungsi. Setiap fungsi memiliki kumpulan variabel lingkungan sendiri. Topik ini menjelaskan dasar-dasar variabel lingkungan dan cara mengonfigurasikannya.

Keamanan

Saat Anda membuat atau memperbarui variabel lingkungan, Function Compute mengenkripsi data tersebut saat disimpan menggunakan Advanced Encryption Standard 256 (AES-256). Saat instans fungsi diinisialisasi, variabel tersebut didekripsi dan dimasukkan ke dalam lingkungan instans.

Batasan

  • Aturan set karakter

    • Kunci harus diawali dengan huruf dan hanya boleh berisi huruf, angka, serta garis bawah (_).

  • Batas ukuran

    Total ukuran semua variabel lingkungan tidak boleh melebihi 4 KB.

  • Variabel lingkungan sistem yang dicadangkan

    Untuk mencegah konflik sistem, Anda tidak dapat menggunakan variabel lingkungan dengan awalan yang dicadangkan FC_*.

    Function Compute mendukung variabel lingkungan sistem berikut:

    • FC_FUNC_CODE_PATH: Direktori penerapan kode.

    • ALIBABA_CLOUD_ACCESS_KEY_ID, ALIBABA_CLOUD_ACCESS_KEY_SECRET, dan ALIBABA_CLOUD_SECURITY_TOKEN: Kredensial temporary yang diperoleh dari role eksekusi fungsi, termasuk ID AccessKey, Rahasia AccessKey, dan token temporary.

    • FC_ACCOUNT_ID: ID pengguna.

    • FC_FUNCTION_HANDLER: Penanganan fungsi.

    • FC_FUNCTION_MEMORY_SIZE: Ukuran memori yang dikonfigurasi untuk fungsi, dalam MB.

    • FC_FUNCTION_NAME: Nama fungsi.

    • FC_REGION: Wilayah tempat fungsi berada.

    • FC_CUSTOM_LISTEN_PORT: Port listening kustom fungsi.

    • FC_INSTANCE_ID: ID instans fungsi.

    • FC_VER_ID: ID versi fungsi. Variabel ini tersedia untuk runtime bawaan pada Debian 10 dan sebelumnya.

    • FC_FUNCTION_VERSION: ID versi fungsi. Variabel ini tersedia untuk runtime bawaan pada Debian 11 dan seterusnya.

Kasus penggunaan

  • Berbagi kode lintas platform atau layanan

    Anda dapat menggunakan variabel lingkungan untuk mengelola konfigurasi berbeda antara lingkungan pengujian dan produksi, seperti menentukan bucket Object Storage Service (OSS), database, atau tabel yang berbeda. Hal ini memungkinkan Anda menerapkan basis kode yang sama di berbagai platform tanpa modifikasi.

  • Mengonfigurasi kredensial

    Anda dapat mengatur kredensial koneksi database, AccessKey Alibaba Cloud Anda, atau informasi otentikasi sensitif lainnya menggunakan variabel lingkungan.

  • Mengonfigurasi variabel sistem

    Anda dapat menggunakan pustaka sistem secara lebih fleksibel dengan mengonfigurasi direktori seperti PATH dan HOME.

Konfigurasikan variabel lingkungan

Konsol

Prasyarat

Fungsi telah dibuat. Untuk informasi selengkapnya, lihat Buat fungsi.

Prosedur

  1. Masuk ke Konsol Function Compute. Di panel navigasi kiri, pilih Function Management > Functions.

  2. Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik fungsi yang dituju.

  3. Pada halaman detail fungsi, klik tab Configuration, lalu di bagian Advanced Settings, klik Modify.

  4. Pada panel Advanced Settings, di bawah Environment Variables, konfigurasikan variabel menggunakan salah satu metode berikut, lalu klik Deploy.

    • Gunakan editor formulir

      1. Klik + Add Variable.

      2. Konfigurasikan pasangan kunci-nilai untuk variabel lingkungan:

        • Variable: Masukkan kunci kustom.

        • Value: Masukkan nilai kustom.

    • Gunakan editor JSON

      1. Klik Use JSON format to edit.

      2. Pada kotak teks, masukkan pasangan kunci-nilai dalam format JSON, seperti pada contoh berikut:

        {
            "key": "value"
        }

        Contoh:

        {
            "BUCKET_NAME": "MY_BUCKET",
            "TABLE_NAME": "MY_TABLE"
        }
  5. Verifikasi bahwa variabel lingkungan telah berlaku.

    1. Pada halaman detail fungsi, klik tab Code.

    2. Di editor kode, tulis kode Anda, klik Deploy. Setelah penerapan berhasil, klik Test Function.

      Kode contoh berikut untuk fungsi event Python menunjukkan cara memverifikasi variabel lingkungan:

      # -*- 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, lihat Log Output. Setelah fungsi dieksekusi dengan sukses, variabel lingkungan yang dikonfigurasi akan muncul di log.

Serverless Devs

Prasyarat

Serverless Devs telah diinstal dan dikonfigurasi. Untuk informasi selengkapnya, lihat Quick start.

Prosedur

  1. Buat direktori kode untuk pengujian, misalnya test.

  2. Masuk ke direktori test dan buat file index.py serta file s.yaml.

    Struktur direktori kode sebagai berikut:

    .
    ├── code
    │   └── index.py
    └── s.yaml

    File index.py berisi kode fungsi Anda. Untuk contoh kodenya, lihat contoh pada bagian Konsol.

    File s.yaml adalah file konfigurasi fungsi. Berikut contohnya:

    edition: 3.0.0
    name: hello-world-app
    # access: menentukan informasi kredensial yang diperlukan untuk aplikasi.
    # Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial, lihat https://www.serverless-devs.com/serverless-devs/command/config
    # Untuk informasi lebih lanjut tentang prioritas kredensial, lihat https://www.serverless-devs.com/serverless-devs/tool#credential-priority-and-specifications
    access: "default"
    
    vars: # Variabel global
      region: "cn-hangzhou"
    
    resources:
      hello_world:
        # Untuk melakukan operasi hanya pada layanan tertentu seperti hello_world, tentukan namanya dalam perintah. Contoh:
        # Build hanya untuk layanan hello_world: s hello_world build
        # Jika Anda menjalankan perintah s build tanpa menentukan layanan, Serverless Devs akan melakukan operasi build pada semua layanan yang berada pada level yang sama dengan hello_world dalam file YAML.
        component: fc3 # Nama komponen. Serverless Devs menggunakan komponen untuk memperluas kemampuannya. Komponen ini mengaktifkan fitur Function Compute.
        # actions: # Logika eksekusi kustom. Untuk informasi lebih lanjut, lihat https://docs.serverless-devs.com/serverless-devs/yaml#actions.
        props:
          region: ${vars.region} # Untuk informasi lebih lanjut tentang cara menggunakan variabel, lihat https://docs.serverless-devs.com/serverless-devs/yaml#variable-assignment.
          functionName: envdemo # Mendeklarasikan fungsi bernama envdemo.
          description: 'hello world by serverless devs'
          runtime: python3 # Menentukan runtime fungsi.
          code: ./code
          handler: index.handler # Menentukan penanganan fungsi.
          memorySize: 128
          timeout: 30
          environmentVariables: # Mengonfigurasi dua variabel lingkungan untuk fungsi.
              BUCKET_NAME: MY_BUCKET
              TABLE_NAME: MY_TABLE
          codeUri: ./ # Menerapkan fungsi dari direktori saat ini "./". Selama penerapan, Serverless Devs akan memaketkan dan mengunggah direktori saat ini.
  3. Jalankan perintah s deploy untuk menerapkan proyek.

    Setelah penerapan berhasil, Anda dapat masuk ke Konsol Function Compute untuk melihat fungsi yang telah dibuat beserta variabel lingkungannya.

SDK

Contoh berikut menggunakan Python SDK. Parameter environmentVariables, yang menerima dictionary, menentukan variabel lingkungan. Kode contoh menunjukkan cara membuat, memperbarui, dan mengambilnya.

  • Buat variabel lingkungan

    # coding: utf-8
    import fc2
    import os
    
    client = fc2.Client(
        endpoint='your endpoint', # Titik akhir.
        # Kami menyarankan agar Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey di dalam kode Anda.
        # Kebocoran informasi sensitif ini dapat membahayakan keamanan sumber daya Anda.
        # Contoh ini menggunakan variabel lingkungan untuk otentikasi.
        # Sebelum menjalankan kode ini, atur variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET secara lokal.
        accessKeyID=os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), # ID AccessKey Anda, digunakan untuk otentikasi. Anda dapat membuat dan mengelolanya di Konsol RAM.
        accessKeySecret=os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET') # Rahasia AccessKey Anda, digunakan untuk otentikasi. Anda dapat membuat dan mengelolanya di Konsol RAM.
    )
    
    client.create_service('test')
    
    client.create_function(
        'test', # Nama layanan.
        'test_env', # Nama fungsi.
        'python3',  # Runtime.
        'main.handler', # Penanganan.
        codeDir='/path/to/code/', # Direktori kode.
        environmentVariables={'testKey': 'testValue'} # Variabel lingkungan yang akan dikonfigurasi.
    )
    
    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)           
  • Ambil variabel lingkungan

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

Gunakan variabel lingkungan dalam kode Anda

Dengan asumsi Anda telah mengonfigurasi variabel lingkungan {"key":"val"}, contoh berikut menunjukkan cara membaca nilainya di berbagai runtime.

var value = process.env.key
console.log(value)
import os
value = os.environ.get('key')
print(value)
$value = getenv('key');
System.out.println("value: "+ System.getenv("key"));
string value = Environment.GetEnvironmentVariable("key");
Console.WriteLine("value: {0}", value);
var value = os.Getenv("key")
fmt.Printf("value: %s\n", value)

FAQ

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

Ya. Setelah Anda mengatur variabel lingkungan untuk versi LATEST dan menerbitkan versi baru, Anda dapat memodifikasi variabel versi LATEST tersebut. Hasilnya, versi LATEST akan memiliki pengaturan yang berbeda dari versi yang telah diterbitkan.

Bagaimana cara mencegah nilai variabel lingkungan ditampilkan dalam teks biasa di konsol? Bagaimana cara mengenkripsi data sensitif?

Anda dapat menyimpan variabel lingkungan di Key Management Service untuk memastikan informasi sensitif disimpan dalam bentuk terenkripsi. Sebelum fungsi dieksekusi, kode Anda dapat memanggil API KMS untuk mendekripsi informasi tersebut dan menyetelnya di lingkungan runtime fungsi. Untuk informasi selengkapnya, lihat Apa itu Key Management Service (KMS)?.

Bagaimana cara mengubah zona waktu menggunakan variabel lingkungan?

Saat membuat fungsi, Anda dapat memilih zona waktu. Secara default, instans fungsi berjalan dalam Coordinated Universal Time (UTC). Setelah fungsi dibuat, Anda dapat mengubah zona waktu dengan mengatur variabel lingkungan TZ. Misalnya, untuk menggunakan China Standard Time (UTC+8), atur TZ menjadi Asia/Shanghai.