Puoi impostare variabili di ambiente arbitrarie per un servizio Cloud Run. Cloud Run inietta queste coppie chiave-valore nel contenitore e le rende accessibili al tuo codice. Puoi anche utilizzarli per trasmettere informazioni di configurazione ai buildpack quando esegui il deployment di una funzione dal codice sorgente.
Le variabili di ambiente sono associate a un singolo servizio e non sono visibili agli altri servizi del tuo progetto Google Cloud. Ogni variabile viene archiviata nel servizio di cui è stato eseguito il deployment ed esiste nello stesso ciclo di vita del servizio a cui è associata.
Numero massimo di variabili di ambiente
Puoi impostare un massimo di 1000 variabili di ambiente per un servizio Cloud Run.
Ciclo di vita delle variabili
Tutte le variabili di ambiente sono associate a un deployment di un servizio; puoi impostarle o modificarle solo con un deployment. Se un deployment non va a buon fine per qualsiasi motivo, le modifiche alle variabili di ambiente non verranno applicate. Le modifiche alle variabili di ambiente richiedono un deployment riuscito.
Best practice
La sezione seguente mette in evidenza alcune best practice per la configurazione delle variabili di ambiente.
Gestire i secret
Puoi utilizzare le variabili di ambiente per la configurazione del servizio, ma non è consigliabile usarle per archiviare secret come credenziali di database o chiavi API. I valori sensibili devono essere archiviati al di fuori del codice sorgente e al di fuori delle variabili di ambiente. Alcuni ambienti di esecuzione o l'utilizzo di alcuni framework possono comportare l'invio dei contenuti delle variabili di ambiente ai log. Inoltre, non consigliamo di memorizzare le credenziali sensibili nei file YAML, negli script di deployment o nei sistemi di controllo dei file sorgente. Ricorda che le variabili di ambiente sono visibili a chiunque disponga delle autorizzazioni Visualizzatore progetto o superiori.
Per archiviare i segreti, ti consigliamo di utilizzare Secret Manager. Per configurare i servizi in modo che accedano ai secret archiviati in Secret Manager, consulta Configurare i secret.
Non esiste un'integrazione specifica di Cloud Run con Cloud KMS.
Variabili di ambiente riservate
Le variabili di ambiente definite nel
contratto del runtime del contenitore
sono riservate e non possono essere impostate. In particolare, la variabile di ambiente PORT
viene inserita all'interno del contenitore da Cloud Run. Non devi impostarlo
da solo.
Variabili di ambiente riservate per le funzioni
Cloud Run imposta automaticamente le seguenti variabili di ambiente di runtime quando esegui il deployment delle funzioni:
Chiave | Descrizione |
---|---|
FUNCTION_TARGET |
Riservato: la funzione da eseguire. |
FUNCTION_SIGNATURE_TYPE |
Riservato: il tipo di funzione: http per le funzioni HTTP e event per le funzioni basate sugli eventi.
|
K_SERVICE |
Riservato: il nome della risorsa funzione. |
K_REVISION |
Riservato: l'identificatore della versione della funzione. |
PORT |
Riservato: la porta su cui viene richiamata la funzione. |
Alcune variabili di ambiente aggiuntive vengono impostate automaticamente in base al runtime utilizzato dalla funzione. Questi valori si basano sul sistema operativo del runtime, ad esempio DEBIAN_FRONTEND
, SHLVL
o PATH
, e sul runtime del linguaggio, ad esempio NODE_ENV
, VIRTUAL_ENV
o GOPATH
.
Le variabili di ambiente fornite dall'ambiente, diverse da quelle impostate automaticamente, potrebbero cambiare nelle versioni future del runtime. Come best practice, ti consigliamo di non fare affidamento su o modificare le variabili di ambiente che non hai impostato esplicitamente.
La modifica delle variabili di ambiente fornite dall'ambiente potrebbe portare a risultati imprevedibili. I tentativi di modificare queste variabili di ambiente potrebbero essere bloccati o, peggio, portare a conseguenze indesiderate come funzioni che non possono essere avviate. Come best practice, ti consigliamo di anteporre un prefisso a tutte le variabili di ambiente con una chiave univoca per evitare conflitti.
Inoltre, non puoi utilizzare le seguenti variabili di ambiente:
Chiave | Descrizione |
---|---|
Vuoto ("'") | Le chiavi non possono essere una stringa vuota. |
= |
Le chiavi non possono contenere il carattere "=". |
X_GOOGLE_ |
Le chiavi non possono contenere il prefisso X_GOOGLE_ . |
Limiti di dimensioni delle variabili per le funzioni
Il numero totale di byte utilizzati dai nomi e dai valori delle variabile di ambiente di runtime per una singola funzione è limitato a 32 KB. Non esistono limiti specifici per singole chiavi o valori all'interno di questa capacità complessiva.
Per le variabili di ambiente di compilazione, puoi definire fino a 100 variabili, con la stringa di definizione foo=bar
limitata a 64 KB.
Utilizzare variabili di ambiente portatili nelle funzioni
È possibile che le variabili di ambiente che funzionano con le tue funzioni non funzionino con un ambiente di runtime diverso, ad esempio in un linguaggio diverso o con determinati strumenti o librerie. È anche possibile che non vengano accettati da un'altra piattaforma.
Puoi evitare questi problemi seguendo lo
standard POSIX per le variabili di ambiente.
Se utilizzi la console Google Cloud per modificare le variabili,
la console Google Cloud ti avviserà ogni volta che definisci una variabile che potrebbe
avere problemi di portabilità, ma non impedirà il deployment. Consigliamo che le chiavi variabile di ambiente siano costituite esclusivamente da lettere maiuscole, cifre e <underscore>
(_
), come definito nel Portable Character Set, e che non inizino con un numero.