Variables de ambiente en Go con godotenv
Clase 28 de 29 • Curso de Go
Resumen
Las variables de ambiente son vitales para mantener tu proyecto seguro al proteger información sensible como cadenas de conexión y claves de acceso. En Go, manejarlas es particularmente sencillo gracias a algunos métodos específicos que aprenderás aquí.
¿Qué es un archivo .env y cuál es su utilidad?
El archivo .env
almacena datos críticos como nombres de aplicación, entornos de desarrollo y puertos de comunicación. Usar estas variables de ambiente te permite mantener protegido tu código, asegurando información sensible en externos y evitando exponer secretos en texto plano.
¿Cómo configurar y utilizar variables de ambiente en Go?
Configurar variables de ambiente en Go es muy fácil:
- Primero, se crea un archivo
.env
con variables como: - Nombre de la aplicación.
- Entorno de trabajo.
- Puerto de comunicación.
Un archivo .env
podría lucir así:
APP_NAME=Goamine
APP_ENV=desarrollo
APP_PORT=8080
Luego, desde Go, puedes acceder a estos valores eficazmente mediante un paquete externo.
¿Cómo agregar paquetes externos con Go?
Go permite integrar fácilmente paquetes externos, aunque a diferencia de lenguajes como Node con NPM o Python con pip, Go no posee un repositorio centralizado.
Para agregar un paquete externo:
- Inicializa un módulo con el siguiente comando:
go mod init nombre_modulo
- Luego instala el paquete desde GitHub usando:
go get github.com/joho/godotenv
Este comando descargará e integrará automáticamente el nuevo paquete en tu proyecto.
¿Cómo implementar el paquete godotenv en código Go?
Ya instalado el paquete, simplemente importa y utiliza una sola línea de código para cargar las variables del archivo .env
:
package main
import (
"fmt"
"log"
"github.com/joho/godotenv"
"os"
)
func main() {
err := godotenv.Load()
if err != nil {
log.Fatal("Error cargando el archivo env")
}
appName := os.Getenv("APP_NAME")
appEnv := os.Getenv("APP_ENV")
appPort := os.Getenv("APP_PORT")
fmt.Println("Nombre de la aplicación:", appName)
fmt.Println("Entorno de la aplicación:", appEnv)
fmt.Println("Puerto de la aplicación:", appPort)
}
Al ejecutarlo con go run main.go
, verás impresas las variables fácilmente y de forma segura.
¿Puedo usar variables del sistema operativo?
Sí. Este método permite no solo obtener valores desde el archivo .env
, sino también acceder eficientemente a variables de ambiente del propio sistema operativo, añadiendo flexibilidad y seguridad adicional a tu aplicación en Go.
¿Has experimentado ya con variables de ambiente en tus proyectos en Go? ¡Comparte tu experiencia en los comentarios!