Variabili d’Ambiente
Le variabili d’ambiente sono utili per fornire all’applicazione informazioni esterne all’esecuzione dell’applicazione stessa. In genere vengono utilizzate per impostare elementi come i dati di connessione al database e le chiavi API.
Caratteri Speciali nelle Variabili d’Ambiente
Nelle chiavi delle variabili d’ambiente si possono usare solo le lettere a-z, 0-9 o il trattino basso (_
). I valori delle variabili d’ambiente vengono applicati letteralmente, a eccezione di parentesi, virgole e doppi apici.
Parentesi
Le parentesi possono causare il fallimento del processo di build o di rollout, a seconda di quando sono disponibili durante la distribuzione. Non possono essere usate nelle variabili d’ambiente.
Virgole
Senza escape, le virgole sono interpretate come delimitatori e non possono essere utilizzate nelle variabili d’ambiente.
- Per esempio:
write_stock,read_orders
causerà il fallimento del processo di rollout. - Per mantenere una virgola all’interno di una stringa, è necessario eseguire l’escape della virgola con un backslash (
\
) in questo modo:write_stock\,read_orders
— che verrà applicato comewrite_stock,read_orders
.
Doppi apici
I doppi apici senza escape vengono ignorati o causano il fallimento del processo di rollout.
- Per esempio,
"my_example_variable"
sarà applicato comemy_example_variable
. - Per mantenere i doppi apici intorno a una variabile, eseguire l’escape con un backslash (
\
) in questo modo:\"my_example_var\"
— che verrà applicato come"my_example_var"
. - Se i doppi apici sono all’interno di una stringa (ad esempio:
my_exampl"e_text
), il processo di rollout fallirà. - Per mantenere i doppi apici all’interno di una stringa, eseguire l’escape con un backslash (
\
) in questo modo:my_examp\"le_var
— che verrà applicato comemy_examp"le_var
.
Variabili con Codifica Base64
Se la variabile d’ambiente è codificata Base64 e si verificano problemi (ad esempio, errori 500 nel browser, errori di compilazione, errori di esecuzione, ecc.
Aggiungere le Variabili d’Ambiente
Le variabili d’ambiente possono essere aggiunte in Dati applicazione, quando si aggiunge un’applicazione o nella pagina Impostazioni dell’applicazione dopo la distribuzione.
Nei Dati dell’Applicazione
Per aggiungere le variabili d’ambiente durante la creazione di un’applicazione, bisogna espandere la sezione Variabili d’ambiente, inserire le coppie chiave-valore e decidere se le variabili devono essere disponibili durante l’esecuzione e/o il processo di build.
Dopo la Distribuzione
Per aggiungere variabili d’ambiente dopo la distribuzione, bisogna andare alla pagina delle Impostazioni dell’applicazione, scorrere fino alla sezione Variabili d’ambiente e cliccare su Aggiungi variabile d’ambiente. Aggiungere, poi, le coppie chiave-valore nella finestra modale/pop-up Aggiungi variabile d’ambiente e stabilire se le variabili devono essere disponibili durante il runtime e/o il processo di build. Fare clic su Distribuisci modifiche per aggiungere le variabili e distribuire automaticamente l’applicazione.
Modificare le variabili d’ambiente
È possibile modificare i nomi (chiavi) o i valori delle variabili nella pagina Impostazioni. Per modificare una variabile, fare clic sull’icona Modifica (matita), apportare le modifiche e fare clic su Distribuisci modifiche per aggiornare le variabili e distribuire automaticamente l’applicazione.
Quando si crea una connessione interna si seleziona la casella Aggiungi variabili d’ambiente…, i nomi delle variabili (chiavi) vengono creati automaticamente. Alcune applicazioni possono aspettarsi variabili d’ambiente con nomi diversi. Per esempio, se si vuole utilizzare un database con Laravel, il file database.php contiene nomi di variabili diversi da quelli creati automaticamente in MyKinsta. Per utilizzare i nomi delle variabili definiti nell’applicazione, modificare ogni variabile come necessario e cambiare la chiave in modo che corrisponda a quella definita nel file database.php.
Utilizzare le Variabili d’Ambiente
L’utilizzo delle variabili d’ambiente dipende dall’applicazione. In Node, ad esempio, è possibile accedere a una variabile di nome API_KEY
con process.env.API_KEY
. In PHP, si utilizzerà getenv('API_KEY')
.
Connessioni Interne e Processo di Build
Le connessioni interne sono disponibili solo in fase di runtime; non sono disponibili durante il processo di build.
Se, durante il processo di build, l’applicazione tenta di connettersi a un database utilizzando una connessione interna, si verifica un errore che indica che il database non è in esecuzione e la build fallisce. Questo è previsto perché la connessione interna non è attiva durante la build, ma può essere utilizzata solo in fase di esecuzione.
Ci sono un paio di modi per risolvere il problema.
Opzione 1: spostare la logica di connessione al database dal comando di build dell’applicazione al comando di avvio. Ad esempio, se nel processo di build si ha un comando come prisma migrate
e lo si sposta nel comando di avvio, l’applicazione accederà al database solo in fase di esecuzione e la compilazione avrà successo.
Opzione 2: aggiungere variabili d’ambiente separate per la connessione al database, una disponibile per il processo di build e l’altra solo per l’esecuzione. Le chiavi possono essere le stesse (ad esempio DB_CONNECTION_URL
), purché una sia disponibile solo durante il processo di build e l’altra solo durante l’esecuzione. Utilizzare i dati della connessione esterna del database (Database > dbname > Info > Connessioni esterne) per i valori delle variabili da utilizzare nel processo di build.
Variabili d’Ambiente Impostate da Kinsta
Kinsta imposta sempre PORT
come porta utilizzata dal server web. Se si desidera che l’applicazione interagisca con il server web, bisognerà utilizzare questa variabile d’ambiente. Ad esempio, in Node.js, questo è il modo in cui si avvia un server:
app.listen(process.env.PORT, () => {
console.log("Weather server is up and running")
})
Variabili d’ambiente non impostate da Kinsta
Per impostazione predefinita, la variabile d’ambiente NODE_ENV
non è impostata su production
per le applicazioni Node.js; è necessario aggiungere questa variabile environment.
Esempi di Variabili d’Ambiente
Il modo in cui utilizzare le variabili d’ambiente dipende dall’applicazione. La tabella che segue mostra come chiamare una variabile d’ambiente chiamata API_KEY in diversi linguaggi:
Lingua | Codice |
---|---|
Ruby | ENV["API_KEY"] |
Node.js | process.env.API_KEY; |
Python | os.environ.get('API_KEY') |
Java | System.getenv("API_KEY"); |
Scala | System.getenv("API_KEY"); |
PHP | getenv('API_KEY'); |
Go | os.Getenv("API_KEY") |