

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Variabili di ambiente
<a name="web-functions-revisions-env-vars"></a>

Le variabili di ambiente sono coppie chiave-valore disponibili per il codice dell'applicazione in fase di esecuzione. Utilizzate le variabili di ambiente per la configurazione non sensibile che desiderate modificare senza modificare il codice, ad esempio i flag di funzionalità, i livelli di registro e gli identificatori di risorse come il nome host del database. Per i valori sensibili come le chiavi API e le credenziali del database, non archiviarli nelle variabili di ambiente. Utilizzate invece Secrets Manager o AWS Systems Manager Parameter Store e recuperate i valori in fase di esecuzione.

Le variabili di ambiente vengono impostate al momento della creazione della revisione e sono immutabili dopo la creazione. Per modificare una variabile di ambiente, crea una nuova revisione. Nella nuova revisione, specificate ogni variabile di ambiente e ogni `serviceConfig` impostazione che desiderate mantenere, non solo i valori che cambiano. Le impostazioni che ometti assumono i loro valori predefiniti e le variabili di ambiente che ometti non vengono impostate.

Lambda imposta la seguente variabile di ambiente specificamente per Web Functions:
+ **`AWS_LAMBDA_HTTP_ENDPOINT`**— L'host e la porta su cui il server HTTP deve ascoltare, in `host:port` formato. Lambda imposta questa variabile e indirizza le richieste a quell'indirizzo. Leggila nel codice dell'applicazione e associa esattamente l'host e la porta. Non è possibile impostare questa variabile nelle variabili di ambiente di una revisione. Associa sempre l'indirizzo in questa variabile, non a una porta `localhost` codificata. Il runtime attende che il server accetti una connessione a questo indirizzo e l'inizializzazione fallisce se non lo fa mai. Utilizzate un indirizzo di fallback solo per le esecuzioni locali. In una funzione Web, Lambda imposta sempre questa variabile.

Le funzioni Web ricevono anche altre variabili di ambiente di runtime Lambda, come `AWS_LAMBDA_FUNCTION_MEMORY_SIZE``AWS_LAMBDA_METADATA_API`, e. `AWS_LAMBDA_METADATA_TOKEN` Per l'elenco generale, vedi[Variabili di ambiente di runtime definite](configuration-envvars.md#configuration-envvars-runtime). Se il tuo codice o una libreria legge una variabile da quell'elenco, verifica che Lambda la imposti in una funzione Web prima di fare affidamento su di essa. Le funzioni Web non ricevono tutte le variabili in quell'elenco.

I seguenti nomi di variabili di ambiente sono riservati a Lambda Web Functions e non possono essere impostati. Se ne specifichi una, Lambda rifiuta la richiesta di creazione di una funzione Web o di una revisione:
+ `AWS_ACCESS_KEY`, `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_SECRET_KEY`, `AWS_SECURITY_TOKEN` e `AWS_SESSION_TOKEN`
+ `AWS_DEFAULT_REGION` e `AWS_REGION`
+ `AWS_LAMBDA_HTTP_ENDPOINT`, `AWS_LAMBDA_RUNTIME_API`, `AWS_LAMBDA_INITIALIZATION_TYPE`, e `AWS_LAMBDA_FUNCTION_MEMORY_SIZE`
+ `AWS_LAMBDA_METADATA_API` e `AWS_LAMBDA_METADATA_TOKEN`

Alcuni framework leggono invece le proprie variabili di ambiente per l'indirizzo di ascolto. Ad esempio, la modalità Next.js standalone legge e. `HOSTNAME` `PORT` Per tali framework, utilizzate un file di `index.js` immissione che imposta tali variabili `AWS_LAMBDA_HTTP_ENDPOINT` prima di avviare il server.

Per impostazione predefinita, il runtime viene caricato `index.js` nella radice del pacchetto di distribuzione come file di ingresso dell'applicazione. Il runtime non legge il punto di ingresso da`package.json`. Se il file di immissione ha un nome o un percorso diverso (ad esempio,`dist/index.js`), impostate la variabile di `AWS_LAMBDA_NODEJS_ENTRYPOINT` ambiente sul relativo percorso, relativo alla radice del pacchetto.

L'esempio seguente mostra come leggere la variabile di `AWS_LAMBDA_HTTP_ENDPOINT` ambiente in un'Node.jsapplicazione:

```
// 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}`);
});
```

Per impostare variabili di ambiente personalizzate, aggiungete una `environmentVariables` mappa all'`serviceConfig`oggetto quando create una revisione, come nell'esempio seguente. Per il comando completo, vedete[Creare una revisione](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"
  }
}
```

Se si specifica una chiave gestita dal cliente, Lambda crittografa le variabili di ambiente inattive con quella chiave. Per ulteriori informazioni, consulta [Crittografia a riposo per Web Functions](web-functions-encryption.md).