Scopri come utilizzare il modulo dotenv crate e std:: env per interagire con le variabili d'ambiente in Rust e gestire le informazioni sensibili.
Le variabili di ambiente svolgono ruoli cruciali nella configurazione e personalizzazione del comportamento del software moderno, fornendo un modo flessibile per trasmettere informazioni alle app senza valori codificati.
Le variabili di ambiente sono coppie chiave-valore dinamiche impostate nell'ambiente di un sistema operativo o in un file di variabili di ambiente per l'accesso durante il runtime. A differenza dei valori hardcoded, le variabili di ambiente consentono una maggiore flessibilità e adattabilità poiché è possibile modificarle facilmente.
Ci sono molti pacchetti e moduli per interagire con le variabili d'ambiente nell'ecosistema di Rust, incluso il dotenv, invidia, E config casse di terze parti e usa il built-in di Rust std:: avv modulo.
Introduzione al dotenv Crate
IL dotenv crate è uno strumento prezioso per la gestione delle variabili d'ambiente nel tuo progetto Rust. IL
dotenv crate fornisce un'integrazione semplice e funzioni di facile utilizzo che semplificano il processo di caricamento e accesso alle variabili di ambiente dai file delle variabili di ambiente.Le funzionalità di dotenv crate includono il caricamento continuo delle variabili d'ambiente, approcci di gestione degli errori per le variabili mancanti, l'interoperabilità con il std:: avv modulo e altro ancora.
Aggiungi il dotenv cassa al tuo Cargo.toml sezione delle dipendenze del file per iniziare a interagire con le variabili di ambiente utilizzando il pacchetto.
[dipendenze]
dotenv = "0.15.0"
Esegui questo comando nel terminale della directory del tuo progetto per creare un file di variabili di ambiente e inserire una coppia chiave-valore.
eco DATABASE_URL=database.db > .env
Ecco come caricare il file di ambiente e recuperare il valore di una coppia dal file (in questo caso, il valore di DATABASE_URL chiave:
utilizzo std:: env;
utilizzo dotenv:: dotenv;fnprincipale() {
dotenv().ok(); // Carica il file .env
// Legge il valore dal file .env
permettere database_url = env:: var("URL_DATABASE").aspettarsi("Non hai impostato DATABASE_URL");// Stampa il valore
stampa!("URL database: {}", database_url);
}
IL principale funzione carica il file .env file con il OK funzione, legge il valore dal file con estensione env:: var funzione e gestisce possibili errori con il aspettarsi funzione.
Introduzione al modulo std:: env
In alternativa, invece di utilizzando pacchetti di terze parti, puoi usare il built-in di Rust std:: avv modulo per leggere le variabili d'ambiente dalla tua macchina.
Innanzitutto, dovrai importare il file avv module nel tuo file Rust in questo modo:
utilizzo std:: env;
Dopo aver importato il file std:: avv modulo, puoi leggere e scrivere variabili d'ambiente.
Ecco come leggere il PWD (Present Working Directory) variabile di ambiente con l'estensione std:: avv modulo.
utilizzo std:: env;
fnprincipale() {
// Recupera il valore della variabile di ambiente "PWD".
permettere variabile = env:: var("PWD").aspettarsi("Errore: variabile di ambiente della directory di lavoro non trovata");// Stampa il valore associato alla chiave "PWD".
stampa!("Valore associato alla chiave PWD: {}", variabile);
}
IL principale La funzione stampa il valore associato a PWD chiave dopo che la variabile recupera il valore con il env:: var funzione.
Inoltre, puoi usare il std:: avv del modulo set_var funzione per impostare le variabili di ambiente.
utilizzo std:: env;
fnprincipale() -> RisultatoScatola<din std:: errore:: errore>> {
// Imposta la variabile d'ambiente "DATABASE_URL" su "database.db"
env:: set_var("URL_DATABASE", "database.db");// Recupera il valore della variabile di ambiente "DATABASE_URL".
permettere env_variable = env:: var("URL_DATABASE");// Controlla se il recupero della variabile d'ambiente è andato a buon fine
Se env_variable.is_err() {// Se la variabile d'ambiente non è stata trovata, stampa un messaggio di errore
stampa!("Errore: DATABASE_URL non trovato");} altro {
// Se la variabile d'ambiente è stata trovata, stampa il suo valore
stampa!("DATABASE_URL impostato su: {}", env_variable.unwrap());}
OK(())
}
IL principale funzione imposta la variabile di ambiente con il set_var funzione che accetta la coppia chiave-valore. Dopo aver impostato la variabile di ambiente, la funzione stampa il valore associato alla chiave.
Le variabili d'ambiente sono versatili
Le variabili d'ambiente sono uno strumento prezioso per la gestione dei dati dinamici; facilitano lo sviluppo basato sui test poiché è possibile modificare facilmente i dati ed eseguire casi di test per più scenari.
Utilizzando le variabili di ambiente, puoi evitare l'hardcoding di informazioni riservate come nomi utente del database, password e URL di connessione direttamente nel codice sorgente, migliorando così la sicurezza dell'applicazione e consentendo una configurazione più semplice gestione.