Lavorare con le variabili d’ambiente in Go

Lavorare con le variabili d’ambiente in Go

Le variabili di ambiente sono coppie chiave-valore denominate in modo dinamico riservate nell’ambiente host utilizzate per influenzare le operazioni in esecuzione dei programmi.

Le variabili di ambiente sono popolari per l’interazione con i dati sensibili all’applicazione in quanto forniscono un’astrazione sull’interfaccia dell’ambiente. Puoi utilizzare le variabili di ambiente per aumentare la sicurezza delle tue applicazioni.

Go fornisce il supporto integrato per lavorare con le variabili di ambiente e ci sono molti pacchetti per lavorare con le variabili di ambiente e i file delle variabili di ambiente ( .env ) nell’ecosistema Go.

Variabili d’ambiente e pacchetto os

panoramica del pacchetto os-1

Il pacchetto os fornisce funzionalità per l’interazione con il sistema operativo dell’ambiente host. Il pacchetto os fornisce metodi per l’impostazione e il recupero di coppie chiave-valore di variabili di ambiente.

Importa questi pacchetti per impostare, caricare e stampare le variabili di ambiente sul tuo computer host.

import (
    "fmt"
    "log"
    "os"
    "strings"
)

È possibile impostare coppie chiave-valore della variabile di ambiente con il metodo Setenv del pacchetto os . Il metodo Setenv accetta la coppia e restituisce possibili errori.

err: = os.Setenv("NAME", "John")
err = os.Setenv("OTHER", "DOE")
if err! = nil {
        return
    }

È possibile recuperare le variabili di ambiente tramite le chiavi (nomi) con il metodo Getenv . Il metodo Getenv accetta il nome della variabile di ambiente e restituisce il valore associato alla chiave.

name: = os.Getenv("NAME")
other: = os.Getenv("OTHER")

Il metodo Environ ti consente di accedere a tutte le variabili di ambiente sul tuo computer host. Il metodo Environ restituisce una porzione di stringhe che è possibile scorrere e accedere alle chiavi delle variabili di ambiente.

for _, variables: = range os.Environ() {
        envPair: = strings.SplitN(variables, "=", 2)
        fmt.Println(envPair[0])
}

Il metodo SplitN del pacchetto strings aiuta con la suddivisione in base a un delimitatore. In questo caso, divide il nome della variabile dal valore.

elenco delle variabili d'ambiente

Come caricare le variabili d’ambiente da env File

anteprima del collegamento env godot

Il pacchetto godotenv è una porta Go del progetto Ruby dotenv per il caricamento delle variabili di ambiente dal file dotenv.

Il pacchetto godotenv fornisce funzionalità per lavorare con i file dotenv sul pacchetto os , puoi scrivere e leggere dai file .env .

Esegui questo comando per creare un file .env nella tua directory di lavoro.

touch. env

Il comando touch viene utilizzato per creare nuovi file. Aggiungi le seguenti righe di codice al file dotenv. Utilizzerai il pacchetto godotenv per leggere queste variabili d’ambiente nel tuo programma Go.

# env
NAME="John"
OTHER="James"

Esegui questo comando nel terminale della directory del tuo progetto per installare il pacchetto godotenv come dipendenza del progetto.

go get github.com/joho/godotenv

Importa questi pacchetti nel tuo file Go. Li userai insieme al pacchetto godotenv per caricare le variabili d’ambiente e stamparle sulla console o registrare gli errori.

import (
    "fmt"
    "github.com/joho/godotenv"
    "log"
    "os"
)

Puoi caricare un file .env con il metodo Load del pacchetto godotenv . Il metodo Load accetta il nome del file e restituisce possibili errori.

err: = godotenv.Load(".env")
if err! = nil {
        log.Fatalf("Error loading environment variables file")
    }

Dopo aver caricato il file dotenv, è possibile utilizzare il metodo Getenv del pacchetto os per caricare le variabili di ambiente.

name: = os.Getenv("NAME")
other: = os.Getenv("OTHER")
fmt.Println(name)
fmt.Println(other)

Puoi scrivere nei file dotenv con il metodo Write del pacchetto godotenv . Il metodo Write accetta una mappa di stringhe in stringhe e restituisce possibili errori.

func writeToDotEnv(){
    env, _: = godotenv.Unmarshal("KEY=value")
    err: = godotenv.Write(env, ".env")
    if err! = nil {
        log.Println("There was an error writing to the dotenv file")
}
}

Il pacchetto godotenv esegue l’unmarshal della stringa della coppia chiave-valore con il metodo Unmarshal e la variabile env diventa una mappa di tipo da stringa a stringa.

La funzione writeToDotEnv scrive il contenuto della mappa nel file .env nella directory di lavoro. Questa operazione sovrascrive i dati esistenti.

Le variabili d’ambiente sono sempre utili

Le variabili di ambiente semplificano l’impostazione e la modifica dei parametri di esecuzione dell’applicazione senza alterare il codice o le configurazioni, aumentando così la portabilità dell’applicazione.

È possibile disporre di più variabili di ambiente e file dotenv per scenari diversi per testare l’esecuzione dell’applicazione in condizioni o parametri variabili.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *