

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

# Variabel lingkungan
<a name="web-functions-revisions-env-vars"></a>

Variabel lingkungan adalah pasangan nilai kunci yang tersedia untuk kode aplikasi Anda saat runtime. Gunakan variabel lingkungan untuk konfigurasi non-sensitif yang ingin Anda ubah tanpa memodifikasi kode, seperti flag fitur, tingkat log, dan pengidentifikasi sumber daya seperti nama host database. Untuk nilai sensitif seperti kunci API dan kredenal database, jangan menyimpannya dalam variabel lingkungan. Sebagai gantinya, gunakan Secrets Manager atau AWS Systems Manager Parameter Store dan ambil nilai saat runtime.

Variabel lingkungan diatur saat Anda membuat revisi dan tidak dapat diubah setelah pembuatan. Untuk mengubah variabel lingkungan, buat revisi baru. Dalam revisi baru, tentukan setiap variabel lingkungan dan setiap `serviceConfig` pengaturan yang ingin Anda pertahankan, tidak hanya nilai yang berubah. Pengaturan yang Anda hilangkan mengambil nilai defaultnya, dan variabel lingkungan yang Anda hilangkan tidak disetel.

Lambda menetapkan variabel lingkungan berikut khusus untuk Fungsi Web:
+ **`AWS_LAMBDA_HTTP_ENDPOINT`**— Host dan port yang harus didengarkan server HTTP Anda, dalam `host:port` format. Lambda menetapkan variabel ini dan merutekan permintaan ke alamat itu. Baca di kode aplikasi Anda dan ikat persis host dan port itu. Anda tidak dapat mengatur variabel ini dalam variabel lingkungan revisi. Selalu mengikat ke alamat dalam variabel ini, bukan `localhost` atau port hardcode. Runtime menunggu server Anda menerima koneksi di alamat ini, dan inisialisasi gagal jika tidak pernah terjadi. Gunakan alamat fallback hanya untuk proses lokal. Dalam Fungsi Web, Lambda selalu menetapkan variabel ini.

Fungsi Web juga menerima variabel lingkungan runtime Lambda lainnya, seperti`AWS_LAMBDA_FUNCTION_MEMORY_SIZE`,, dan. `AWS_LAMBDA_METADATA_API` `AWS_LAMBDA_METADATA_TOKEN` Untuk daftar umum, lihat[Variabel lingkungan runtime yang ditetapkan](configuration-envvars.md#configuration-envvars-runtime). Jika kode atau pustaka membaca variabel dari daftar tersebut, konfirmasikan bahwa Lambda menyetelnya dalam Fungsi Web sebelum Anda mengandalkannya. Fungsi Web tidak menerima setiap variabel dalam daftar itu.

Nama variabel lingkungan berikut dicadangkan untuk Lambda Web Functions dan tidak dapat diatur. Jika Anda menentukan satu, Lambda menolak permintaan untuk membuat Fungsi Web atau revisi:
+ `AWS_ACCESS_KEY`, `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_SECRET_KEY`, `AWS_SECURITY_TOKEN`, dan `AWS_SESSION_TOKEN`
+ `AWS_DEFAULT_REGION` dan `AWS_REGION`
+ `AWS_LAMBDA_HTTP_ENDPOINT`, `AWS_LAMBDA_RUNTIME_API`, `AWS_LAMBDA_INITIALIZATION_TYPE`, dan `AWS_LAMBDA_FUNCTION_MEMORY_SIZE`
+ `AWS_LAMBDA_METADATA_API` dan `AWS_LAMBDA_METADATA_TOKEN`

Beberapa kerangka kerja membaca variabel lingkungan mereka sendiri untuk alamat mendengarkan sebagai gantinya. Misalnya, mode Next.js mandiri membaca `HOSTNAME` dan`PORT`. Untuk kerangka kerja seperti itu, gunakan file `index.js` entri yang menetapkan variabel-variabel tersebut `AWS_LAMBDA_HTTP_ENDPOINT` sebelum memulai server.

Secara default, runtime dimuat `index.js` di root paket deployment Anda sebagai file entri aplikasi Anda. Runtime tidak membaca titik masuk dari`package.json`. Jika file entri Anda memiliki nama atau jalur yang berbeda (misalnya,`dist/index.js`), atur variabel `AWS_LAMBDA_NODEJS_ENTRYPOINT` lingkungan ke jalurnya, relatif terhadap root paket Anda.

Contoh berikut menunjukkan cara membaca variabel `AWS_LAMBDA_HTTP_ENDPOINT` lingkungan dalam Node.js aplikasi:

```
// Lambda provides the address to bind in AWS_LAMBDA_HTTP_ENDPOINT ("host:port").
// The fallback applies only when running locally.
const [host, port] = (process.env.AWS_LAMBDA_HTTP_ENDPOINT || 'localhost:3000').split(':');
app.listen(port, host, () => {
  console.log(`Server listening on ${host}:${port}`);
});
```

Untuk mengatur variabel lingkungan Anda sendiri, tambahkan `environmentVariables` peta ke `serviceConfig` objek saat Anda membuat revisi, seperti pada contoh berikut. Untuk perintah lengkapnya, lihat[Membuat revisi](web-functions-revisions.md#web-functions-revisions-create).

```
{
  "executionRoleArn": "arn:aws:iam::{{111122223333}}:role/{{my-web-function-role}}",
  "environmentVariables": {
    "DATABASE_URL": "{{my-database-endpoint}}",
    "LOG_LEVEL": "info",
    "FEATURE_FLAG_NEW_UI": "true"
  }
}
```

Jika Anda menentukan kunci yang dikelola pelanggan, Lambda mengenkripsi variabel lingkungan saat istirahat dengan kunci itu. Lihat informasi yang lebih lengkap di [Enkripsi saat istirahat untuk Fungsi Web](web-functions-encryption.md).