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à.
Utilizzo delle variabili di ambiente Lambda
È possibile utilizzare le variabili di ambiente per regolare il comportamento della funzione senza aggiornare il codice. Una variabile di ambiente è una coppia di stringhe archiviata nella configurazione specifica della versione di una funzione. Il runtime Lambda rende le variabili di ambiente disponibili per il codice e imposta variabili di ambiente aggiuntive che contengono informazioni sulla richiesta di funzione e invocazione.
Nota
Per aumentare la sicurezza, consigliamo di utilizzare AWS Secrets Manager al posto delle variabili di ambiente per archiviare le credenziali del database e altre informazioni sensibili come chiavi API o token di autorizzazione. Per ulteriori informazioni, consulta Uso dei segreti in Secrets Manager nelle funzioni Lambda.
Le variabili di ambiente non vengono valutate prima dell'invocazione della funzione. Qualsiasi valore definito è considerato una stringa letterale e non espanso. Eseguire la valutazione della variabile nel codice funzione.
Creazione delle variabili di ambiente Lambda
Puoi configurare le variabili di ambiente in Lambda utilizzando la console Lambda, (), AWS Command Line Interface (AWS CLI) o utilizzando un AWS SAM SDK. AWS Serverless Application Model AWS
Scenario di esempio per le variabili di ambiente
È possibile utilizzare le variabili di ambiente per personalizzare il comportamento delle funzioni nell'ambiente di test e nell'ambiente di produzione. Ad esempio, puoi creare due funzioni con stesso codice ma configurazione diversa. Una funzione si connette a un database di test e l'altra a un database di produzione. In questo caso, puoi utilizzare le variabili di ambiente per passare alla funzione il nome host e altri dettagli di connessione per il database.
Nell'esempio seguente viene illustrato come definire l'host del database e il nome del database come variabili di ambiente.
Se si desidera che l'ambiente di test generi più informazioni di debug rispetto all'ambiente di produzione, è possibile impostare una variabile di ambiente per configurare l'ambiente di test in modo da utilizzare una registrazione più dettagliata o una traccia più dettagliata.
Ad esempio, nell'ambiente di test, è possibile impostare una variabile di ambiente con la chiave LOG_LEVEL e un valore che indica un livello di log di debug o trace. Nel codice della funzione Lambda, puoi quindi utilizzare questa variabile di ambiente per impostare il livello di log.
I seguenti esempi di codice in Python Node.js illustrano come è possibile raggiungere questo obiettivo. Questi esempi presuppongono che la variabile di ambiente abbia un valore DEBUG in Python o debug in. Node.js
Recupero delle variabili di ambiente Lambda
Per recuperare le variabili di ambiente nel codice della funzione, utilizza il metodo standard per il linguaggio di programmazione.
Lambda memorizza le variabili di ambiente in modo sicuro crittografandole quando inattive. Puoi configurare Lambda per utilizzare una chiave di crittografia diversa, crittografare i valori delle variabili di ambiente sul lato client o impostare le variabili di ambiente in un CloudFormation modello con. AWS Secrets Manager
Variabili di ambiente di runtime definite
I tempi di esecuzione Lambda impostano diverse variabili di ambiente durante l'inizializzazione. La maggior parte delle variabili di ambiente fornisce informazioni sulla funzione o sul runtime. Le chiavi per queste variabili di ambiente sono riservate e non possono essere impostate nella configurazione della funzione.
Variabili d'ambiente riservate
-
_HANDLER: la posizione del gestore configurata nella funzione. -
_X_AMZN_TRACE_ID– L'intestazione di tracciamento X-Ray . Questa variabile di ambiente cambia a ogni invocazione.-
Questa variabile di ambiente non è definita per i OS-only runtime (la famiglia di
providedruntime). Puoi impostare_X_AMZN_TRACE_IDper runtime personalizzati utilizzando l'intestazione di rispostaLambda-Runtime-Trace-Iddal Chiamata successiva. -
Per le versioni di runtime Java 17 e successive, questa variabile di ambiente non viene utilizzata. Lambda archivia invece le informazioni di tracciamento nella proprietà di sistema
com.amazonaws.xray.traceHeader.
-
-
AWS_DEFAULT_REGION— L'impostazione predefinita Regione AWS in cui viene eseguita la funzione Lambda. -
AWS_REGION— Il Regione AWS luogo in cui viene eseguita la funzione Lambda. Se immesso, questo valore sovrascriveAWS_DEFAULT_REGION.-
Per ulteriori informazioni sull'utilizzo delle variabili di Regione AWS ambiente con gli AWS SDK, consulta AWS Region nella Guida di riferimento agli AWS SDK and Tools.
-
-
AWS_EXECUTION_ENV: l'identificatore di runtime, preceduto daAWS_Lambda_, ad esempioAWS_Lambda_java8. Questa variabile di ambiente non è definita per i OS-only runtime (la famiglia diprovidedruntime). -
AWS_LAMBDA_FUNCTION_NAME: il nome della funzione. -
AWS_LAMBDA_FUNCTION_MEMORY_SIZE: la quantità di memoria disponibile per la funzione in MB. -
AWS_LAMBDA_FUNCTION_VERSION: la versione della funzione in esecuzione. -
AWS_LAMBDA_INITIALIZATION_TYPE— Il tipo di inizializzazione della funzione, che èon-demand,provisioned-concurrencysnap-start, o.lambda-managed-instancesPer informazioni, vedere Configurazione della concorrenza fornita, o. Migliorare le prestazioni di avvio con Lambda SnapStart Istanze Lambda gestite -
AWS_LAMBDA_LOG_GROUP_NAME,AWS_LAMBDA_LOG_STREAM_NAME— Il nome del gruppo e dello stream Amazon CloudWatch Logs per la funzione. Le variabili di AWS_LAMBDA_LOG_STREAM_NAME ambiente AWS_LAMBDA_LOG_GROUP_NAME e non sono disponibili nelle funzioni Lambda SnapStart . -
AWS_ACCESS_KEY,AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,AWS_SESSION_TOKEN: le chiavi di accesso ottenute dal ruolo di esecuzione della funzione. -
AWS_LAMBDA_RUNTIME_API: (Runtime personalizzato) L'host e la porta dell'API di runtime. -
LAMBDA_TASK_ROOT: il percorso del codice della funzione Lambda. -
LAMBDA_RUNTIME_DIR: il percorso delle librerie di runtime. -
AWS_LAMBDA_MAX_CONCURRENCY— (Solo istanze gestite Lambda) Il numero massimo di chiamate simultanee che Lambda invierà a un ambiente di esecuzione. -
AWS_LAMBDA_METADATA_API— L'indirizzo del server endpoint dei metadati nel formato (ad esempio,).{ipv4_address}:{port}169.254.100.1:9001 -
AWS_LAMBDA_METADATA_TOKEN— Un token di autenticazione unico per l'ambiente di esecuzione corrente utilizzato per autenticare le richieste all'endpoint di metadati. Lambda genera questo token automaticamente al momento dell'inizializzazione.
Le seguenti variabili di ambiente aggiuntive non sono riservate e possono essere estese nella configurazione della funzione.
Variabili d'ambiente non riservate
-
LANG– Le impostazioni locali del runtime (en_US.UTF-8). -
PATH: il percorso di esecuzione (/usr/local/bin:/usr/bin/:/bin:/opt/bin). -
LD_LIBRARY_PATH: il percorso della libreria di sistema (/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) Il percorso della Node.js libreria (/opt/nodejs/node12/node_modules/:/opt/nodejs/node_modules:$LAMBDA_RUNTIME_DIR/node_modules). -
NODE_OPTIONS— (Node.js) Per i Node.js runtime, è possibile utilizzare perNODE_OPTIONSriattivare le funzionalità sperimentali che Lambda disabilita per impostazione predefinita. -
PYTHONPATH: (Python) il percorso della libreria Python ($LAMBDA_RUNTIME_DIR). -
GEM_PATH– (Ruby) Il percorso della libreria Ruby ($LAMBDA_TASK_ROOT/vendor/bundle/ruby/3.3.0:/opt/ruby/gems/3.3.0). -
AWS_XRAY_CONTEXT_MISSING— Per il X-Ray tracciamento, Lambda lo imposta per evitareLOG_ERRORdi generare errori di runtime dall'SDK. X-Ray -
AWS_XRAY_DAEMON_ADDRESS— Per il X-Ray tracciamento, l'indirizzo IP e la porta del demone. X-Ray -
AWS_LAMBDA_DOTNET_PREJIT: (.NET) imposta questa variabile per abilitare o disabilitare le ottimizzazioni di runtime specifiche di .NET. I valori includonoalways,nevereprovisioned-concurrency. Per ulteriori informazioni, consulta Configurazione della simultaneità fornita per una funzione. -
TZ: il fuso orario dell'ambiente (:UTC). L'ambiente di esecuzione utilizza NTP per sincronizzare l'orologio di sistema.
I valori di esempio mostrati riflettono i runtime più recenti. La presenza di variabili specifiche o dei loro valori può variare nei runtime precedenti.