Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Bekerja dengan variabel lingkungan Lambda

Mode fokus
Bekerja dengan variabel lingkungan Lambda - AWS Lambda

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Anda dapat menggunakan variabel lingkungan untuk menyesuaikan perilaku fungsi Anda tanpa memperbarui kode. Variabel lingkungan adalah sepasang string yang disimpan dalam konfigurasi spesifik versi fungsi. Runtime Lambda membuat variabel lingkungan tersedia bagi kode Anda dan mengatur variabel lingkungan tambahan yang berisi informasi tentang fungsi dan permintaan invokasi.

catatan

Untuk meningkatkan keamanan, sebaiknya Anda menggunakan AWS Secrets Manager variabel lingkungan untuk menyimpan kredensi database dan informasi sensitif lainnya seperti kunci API atau token otorisasi. Untuk informasi selengkapnya, lihat Menggunakan AWS Secrets Manager rahasia dalam AWS Lambda fungsi.

Variabel lingkungan tidak dievaluasi sebelum pemanggilan fungsi. Nilai apa pun yang Anda tentukan dianggap sebagai string harafiah dan tidak diperluas. Lakukan evaluasi variabel dalam kode fungsi Anda.

Membuat variabel lingkungan Lambda

Anda dapat mengonfigurasi variabel lingkungan di Lambda menggunakan konsol Lambda, (), AWS Command Line Interface AWS Serverless Application Model (AWS CLIAWS SAM), atau menggunakan SDK. AWS

Console

Anda menentukan variabel lingkungan pada versi fungsi yang belum dipublikasikan. Saat Anda mempublikasikan versi, variabel lingkungan dikunci untuk versi tersebut bersama dengan pengaturan konfigurasi khusus versi lainnya.

Anda membuat variabel lingkungan untuk fungsi Anda dengan mendefinisikan kunci dan nilai. Fungsi Anda menggunakan nama kunci untuk mengambil nilai variabel lingkungan.

Untuk mengatur variabel lingkungan di konsol Lambda
  1. Buka Halaman fungsi di konsol Lambda.

  2. Pilih fungsi.

  3. Pilih tab Konfigurasi, lalu pilih variabel Lingkungan.

  4. Pada Variabel lingkungan, pilih Edit.

  5. Pilih Tambahkan variabel lingkungan.

  6. Masukkan kunci dan nilai.

    Persyaratan
    • Kunci dimulai dengan huruf dan setidaknya dua karakter.

    • Kunci hanya berisi huruf, angka, dan karakter garis bawah (_).

    • Kunci tidak dicadangkan oleh Lambda.

    • Ukuran total semua variabel lingkungan tidak lebih dari 4 KB.

  7. Pilih Simpan.

Untuk menghasilkan daftar variabel lingkungan di editor kode konsol

Anda dapat membuat daftar variabel lingkungan di editor kode Lambda. Ini adalah cara cepat untuk mereferensikan variabel lingkungan Anda saat Anda membuat kode.

  1. Pilih tab Kode.

  2. Gulir ke bawah ke bagian VARIABEL LINGKUNGAN dari editor kode. Variabel lingkungan yang ada tercantum di sini:

    Variabel lingkungan bagian dari editor kode konsol Lambda
  3. Untuk membuat variabel lingkungan baru, pilih pilih tanda plus ( plus sign ):

    Tambahkan variabel lingkungan di editor kode konsol Lambda

Variabel lingkungan tetap dienkripsi saat terdaftar di editor kode konsol. Jika Anda mengaktifkan pembantu enkripsi untuk enkripsi dalam perjalanan, maka pengaturan tersebut tetap tidak berubah. Untuk informasi selengkapnya, lihat Mengamankan variabel lingkungan Lambda.

Daftar variabel lingkungan hanya-baca dan hanya tersedia di konsol Lambda. File ini tidak disertakan saat Anda mengunduh arsip file.zip fungsi, dan Anda tidak dapat menambahkan variabel lingkungan dengan mengunggah file ini.

AWS CLI

Contoh berikut menetapkan dua variabel lingkungan pada fungsi yang diberi nama my-function.

aws lambda update-function-configuration \ --function-name my-function \ --environment "Variables={BUCKET=amzn-s3-demo-bucket,KEY=file.txt}"

Ketika Anda menerapkan variabel lingkungan dengan perintah update-function-configuration, seluruh isi dari struktur Variables digantikan. Untuk mempertahankan variabel lingkungan yang ada saat Anda menambahkan yang baru, sertakan semua nilai yang ada dalam permintaan Anda.

Untuk mendapatkan konfigurasi saat ini, gunakan perintah get-function-configuration.

aws lambda get-function-configuration \ --function-name my-function

Anda akan melihat output berikut:

{
    "FunctionName": "my-function",
    "FunctionArn": "arn:aws:lambda:us-east-2:111122223333:function:my-function",
    "Runtime": "nodejs22.x",
    "Role": "arn:aws:iam::111122223333:role/lambda-role",
    "Environment": {
        "Variables": {
            "BUCKET": "amzn-s3-demo-bucket",
            "KEY": "file.txt"
        }
    },
    "RevisionId": "0894d3c1-2a3d-4d48-bf7f-abade99f3c15",
    ...
}

Anda dapat meneruskan ID revisi dari output get-function-configuration sebagai parameter keupdate-function-configuration. Ini memastikan bahwa nilai tidak berubah antara saat Anda membaca konfigurasi dan saat Anda memperbaruinya.

Untuk mengonfigurasi kunci enkripsi fungsi, atur opsi KMSKeyARN.

aws lambda update-function-configuration \ --function-name my-function \ --kms-key-arn arn:aws:kms:us-east-2:111122223333:key/055efbb4-xmpl-4336-ba9c-538c7d31f599
AWS SAM

Anda dapat menggunakan AWS Serverless Application Modeluntuk mengkonfigurasi variabel lingkungan untuk fungsi Anda. Perbarui properti Lingkungan dan Variabel dalam template.yaml file Anda dan kemudian jalankan sam deploy.

contoh template.yaml
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: An AWS Serverless Application Model template describing your function. Resources: my-function: Type: AWS::Serverless::Function Properties: CodeUri: . Description: '' MemorySize: 128 Timeout: 120 Handler: index.handler Runtime: nodejs22.x Architectures: - x86_64 EphemeralStorage: Size: 10240 Environment: Variables: BUCKET: amzn-s3-demo-bucket KEY: file.txt # Other function properties...
AWS SDKs

Untuk mengelola variabel lingkungan menggunakan AWS SDK, gunakan operasi API berikut.

Untuk mempelajari lebih lanjut, lihat dokumentasi AWS SDK untuk bahasa pemrograman pilihan Anda.

Anda menentukan variabel lingkungan pada versi fungsi yang belum dipublikasikan. Saat Anda mempublikasikan versi, variabel lingkungan dikunci untuk versi tersebut bersama dengan pengaturan konfigurasi khusus versi lainnya.

Anda membuat variabel lingkungan untuk fungsi Anda dengan mendefinisikan kunci dan nilai. Fungsi Anda menggunakan nama kunci untuk mengambil nilai variabel lingkungan.

Untuk mengatur variabel lingkungan di konsol Lambda
  1. Buka Halaman fungsi di konsol Lambda.

  2. Pilih fungsi.

  3. Pilih tab Konfigurasi, lalu pilih variabel Lingkungan.

  4. Pada Variabel lingkungan, pilih Edit.

  5. Pilih Tambahkan variabel lingkungan.

  6. Masukkan kunci dan nilai.

    Persyaratan
    • Kunci dimulai dengan huruf dan setidaknya dua karakter.

    • Kunci hanya berisi huruf, angka, dan karakter garis bawah (_).

    • Kunci tidak dicadangkan oleh Lambda.

    • Ukuran total semua variabel lingkungan tidak lebih dari 4 KB.

  7. Pilih Simpan.

Untuk menghasilkan daftar variabel lingkungan di editor kode konsol

Anda dapat membuat daftar variabel lingkungan di editor kode Lambda. Ini adalah cara cepat untuk mereferensikan variabel lingkungan Anda saat Anda membuat kode.

  1. Pilih tab Kode.

  2. Gulir ke bawah ke bagian VARIABEL LINGKUNGAN dari editor kode. Variabel lingkungan yang ada tercantum di sini:

    Variabel lingkungan bagian dari editor kode konsol Lambda
  3. Untuk membuat variabel lingkungan baru, pilih pilih tanda plus ( plus sign ):

    Tambahkan variabel lingkungan di editor kode konsol Lambda

Variabel lingkungan tetap dienkripsi saat terdaftar di editor kode konsol. Jika Anda mengaktifkan pembantu enkripsi untuk enkripsi dalam perjalanan, maka pengaturan tersebut tetap tidak berubah. Untuk informasi selengkapnya, lihat Mengamankan variabel lingkungan Lambda.

Daftar variabel lingkungan hanya-baca dan hanya tersedia di konsol Lambda. File ini tidak disertakan saat Anda mengunduh arsip file.zip fungsi, dan Anda tidak dapat menambahkan variabel lingkungan dengan mengunggah file ini.

Contoh skenario untuk variabel lingkungan

Anda dapat menggunakan variabel lingkungan untuk menyesuaikan perilaku fungsi di lingkungan pengujian Anda dan lingkungan produksi. Misalnya, Anda dapat membuat dua fungsi dengan kode yang sama, tetapi konfigurasi yang berbeda. Satu fungsi terhubung ke basis data uji, dan fungsi lainnya terhubung ke basis data produksi. Dalam situasi ini, Anda menggunakan variabel lingkungan untuk meneruskan nama host dan detail koneksi lainnya untuk database ke fungsi.

Contoh berikut menunjukkan cara menentukan host basis data dan nama basis data sebagai variabel lingkungan.

Variabel lingkungan di konsol Lambda.

Jika Anda ingin lingkungan pengujian Anda menghasilkan lebih banyak informasi debug daripada lingkungan produksi, Anda dapat mengatur variabel lingkungan untuk mengonfigurasi lingkungan pengujian Anda untuk menggunakan lebih banyak log verbose atau pelacakan yang lebih terperinci.

Misalnya, di lingkungan pengujian, Anda dapat menyetel variabel lingkungan dengan kunci LOG_LEVEL dan nilai yang menunjukkan tingkat log debug atau jejak. Dalam kode fungsi Lambda Anda, Anda kemudian dapat menggunakan variabel lingkungan ini untuk mengatur tingkat log.

Contoh kode berikut dalam Python dan Node.js menggambarkan bagaimana Anda dapat mencapai ini. Contoh-contoh ini mengasumsikan variabel lingkungan Anda memiliki nilai DEBUG dalam Python atau debug di Node.js.

Python
contoh Kode Python untuk mengatur level log
import os import logging # Initialize the logger logger = logging.getLogger() # Get the log level from the environment variable and default to INFO if not set log_level = os.environ.get('LOG_LEVEL', 'INFO') # Set the log level logger.setLevel(log_level) def lambda_handler(event, context): # Produce some example log outputs logger.debug('This is a log with detailed debug information - shown only in test environment') logger.info('This is a log with standard information - shown in production and test environments')
Node.js (ES module format)
contoh Kode Node.js untuk mengatur tingkat log

Contoh ini menggunakan pustaka winston logging. Gunakan npm untuk menambahkan pustaka ini ke paket penerapan fungsi Anda. Untuk informasi selengkapnya, lihat Membuat paket penerapan.zip dengan dependensi.

import winston from 'winston'; // Initialize the logger using the log level from environment variables, defaulting to INFO if not set const logger = winston.createLogger({ level: process.env.LOG_LEVEL || 'info', format: winston.format.json(), transports: [new winston.transports.Console()] }); export const handler = async (event) => { // Produce some example log outputs logger.debug('This is a log with detailed debug information - shown only in test environment'); logger.info('This is a log with standard information - shown in production and test environment'); };
contoh Kode Python untuk mengatur level log
import os import logging # Initialize the logger logger = logging.getLogger() # Get the log level from the environment variable and default to INFO if not set log_level = os.environ.get('LOG_LEVEL', 'INFO') # Set the log level logger.setLevel(log_level) def lambda_handler(event, context): # Produce some example log outputs logger.debug('This is a log with detailed debug information - shown only in test environment') logger.info('This is a log with standard information - shown in production and test environments')

Mengambil variabel lingkungan Lambda

Untuk mengambil variabel lingkungan dalam kode fungsi Anda, gunakan metode standar untuk bahasa pemrograman Anda.

Node.js
let region = process.env.AWS_REGION
Python
import os region = os.environ['AWS_REGION']
catatan

Pada beberapa kasus, Anda mungkin perlu menggunakan format berikut:

region = os.environ.get('AWS_REGION')
Ruby
region = ENV["AWS_REGION"]
Java
String region = System.getenv("AWS_REGION");
Go
var region = os.Getenv("AWS_REGION")
C#
string region = Environment.GetEnvironmentVariable("AWS_REGION");
PowerShell
$region = $env:AWS_REGION
let region = process.env.AWS_REGION

Lambda menyimpan variabel lingkungan secara aman dengan mengenkripsinya saat istirahat. Anda dapat mengonfigurasi Lambda untuk menggunakan kunci enkripsi yang berbeda, mengenkripsi nilai variabel lingkungan di sisi klien, atau mengatur variabel lingkungan AWS CloudFormation dalam templat dengan. AWS Secrets Manager

Variabel lingkungan runtime yang ditetapkan

Runtime Lambda menetapkan beberapa variabel lingkungan selama inisialisasi. Sebagian besar variabel lingkungan memberikan informasi tentang fungsi atau runtime. Kunci untuk variabel lingkungan ini dicadangkan dan tidak dapat diatur dalam konfigurasi fungsi Anda.

Variabel lingkungan yang tersimpan
  • _HANDLER – Lokasi handler dikonfigurasi pada fungsi.

  • _X_AMZN_TRACE_IDHeader pelacakan X-Ray. Variabel lingkungan ini berubah dengan setiap pemanggilan.

    • Variabel lingkungan ini tidak ditentukan untuk runtime khusus OS (keluarga runtime). provided Anda dapat mengatur _X_AMZN_TRACE_ID runtime kustom menggunakan header Lambda-Runtime-Trace-Id respons dari file. Invokasi berikutnya

    • Untuk Java runtime versi 17 dan yang lebih baru, variabel lingkungan ini tidak digunakan. Sebaliknya, Lambda menyimpan informasi penelusuran di properti sistem. com.amazonaws.xray.traceHeader

  • AWS_DEFAULT_REGION— Default Wilayah AWS di mana fungsi Lambda dijalankan.

  • AWS_REGION— Wilayah AWS Tempat fungsi Lambda dijalankan. Jika didefinisikan, nilai ini mengesampingkan. AWS_DEFAULT_REGION

    • Untuk informasi selengkapnya tentang penggunaan variabel Wilayah AWS lingkungan dengan AWS SDKs, lihat AWS Wilayah dalam AWS SDKs dan Panduan Referensi Alat.

  • AWS_EXECUTION_ENVPengidentifikasi runtime, diawali oleh AWS_Lambda_ (misalnya,). AWS_Lambda_java8 Variabel lingkungan ini tidak ditentukan untuk runtime khusus OS (keluarga runtime). provided

  • AWS_LAMBDA_FUNCTION_NAME – Nama fungsi.

  • AWS_LAMBDA_FUNCTION_MEMORY_SIZE – Jumlah memori yang tersedia untuk fungsi dalam MB.

  • AWS_LAMBDA_FUNCTION_VERSION – Versi fungsi yang sedang dijalankan.

  • AWS_LAMBDA_INITIALIZATION_TYPE— Jenis inisialisasi fungsi, yaitu, on-demandprovisioned-concurrency, atausnap-start. Untuk selengkapnya, lihat Mengonfigurasi konkurensi yang disediakan atau. Meningkatkan kinerja startup dengan Lambda SnapStart

  • AWS_LAMBDA_LOG_GROUP_NAME, AWS_LAMBDA_LOG_STREAM_NAME — Nama grup Amazon CloudWatch Logs dan streaming untuk fungsi tersebut. Variabel AWS_LAMBDA_LOG_GROUP_NAME dan AWS_LAMBDA_LOG_STREAM_NAME lingkungan tidak tersedia dalam fungsi Lambda SnapStart .

  • AWS_ACCESS_KEY,AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN — Kunci akses yang diperoleh dari peran eksekusi fungsi.

  • AWS_LAMBDA_RUNTIME_API – (Runtime kustom) Host dan port API runtime.

  • LAMBDA_TASK_ROOT – Jalur ke kode fungsi Lambda Anda.

  • LAMBDA_RUNTIME_DIR – Jalur ke pustaka runtime.

Variabel lingkungan tambahan berikut ini tidak dicadangkan dan dapat diperluas dalam konfigurasi fungsi Anda.

Variabel lingkungan yang tidak dicadangkan
  • LANG – Lokal runtime (en_US.UTF-8).

  • PATH – Jalur eksekusi (/usr/local/bin:/usr/bin/:/bin:/opt/bin).

  • LD_LIBRARY_PATH – Jalur pustaka sistem (/var/lang/lib:/lib64:/usr/lib64:$LAMBDA_RUNTIME_DIR:$LAMBDA_RUNTIME_DIR/lib:$LAMBDA_TASK_ROOT:$LAMBDA_TASK_ROOT/lib:/opt/lib).

  • NODE_PATH – (Node.js) Jalur pustaka Node.js (/opt/nodejs/node12/node_modules/:/opt/nodejs/node_modules:$LAMBDA_RUNTIME_DIR/node_modules).

  • PYTHONPATH— (Python) Jalur perpustakaan Python (). $LAMBDA_RUNTIME_DIR

  • GEM_PATH – (Ruby) Jalur pustaka Ruby ($LAMBDA_TASK_ROOT/vendor/bundle/ruby/3.3.0:/opt/ruby/gems/3.3.0).

  • AWS_XRAY_CONTEXT_MISSING Untuk pelacakan X-Ray, Lambda mengatur ini menjadi LOG_ERROR untuk menghindari membuang kesalahan runtime dari X-Ray SDK.

  • AWS_XRAY_DAEMON_ADDRESS – Untuk pelacakan X-Ray, alamat IP dan port daemon X-Ray.

  • AWS_LAMBDA_DOTNET_PREJIT— (.NET) Atur variabel ini untuk mengaktifkan atau menonaktifkan optimasi runtime tertentu.NET. Nilai mencakup always, never, dan provisioned-concurrency. Untuk informasi selengkapnya, lihat Mengkonfigurasi konkurensi yang disediakan untuk suatu fungsi.

  • TZ – Zona waktu lingkungan (:UTC). Lingkungan eksekusi menggunakan NTP untuk menyinkronkan jam sistem.

Nilai sampel yang ditampilkan mencerminkan runtime terbaru. Adanya variabel tertentu atau nilainya dapat bervariasi pada runtime awal.

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.