Variables de Entorno
Variables de Entorno
Sección titulada «Variables de Entorno»Acceder a variables de entorno para valores de configuración, secretos y ajustes de tiempo de ejecución.
Las variables deben definirse en el Sistema de Entorno antes de poder acceder a ellas. El sistema controla que backends de almacenamiento (OS, archivo, memoria) proporcionan valores y si las variables son de solo lectura.
local env = require("env")Obtiene el valor de una variable de entorno.
-- Obtener cadena de conexión de base de datoslocal db_url = env.get("DATABASE_URL")if not db_url then return nil, errors.new("INVALID", "DATABASE_URL not configured")end
-- Obtener con valor predeterminadolocal port = env.get("PORT") or "8080"local host = env.get("HOST") or "localhost"
-- Obtener secretoslocal api_key = env.get("API_SECRET_KEY")local jwt_secret = env.get("JWT_SECRET")
-- Configuraciónlocal log_level = env.get("LOG_LEVEL") or "info"local debug_mode = env.get("DEBUG") == "true"| Parámetro | Tipo | Descripción |
|---|---|---|
key | string | Nombre de variable |
Devuelve: string, error
Devuelve nil, error si la variable no existe.
Establece una variable de entorno.
-- Establecer configuración de tiempo de ejecuciónenv.set("APP_MODE", "production")
-- Sobrescribir para pruebasenv.set("API_URL", "http://localhost:8080")
-- Establecer basado en condicionesif is_development then env.set("LOG_LEVEL", "debug")end| Parámetro | Tipo | Descripción |
|---|---|---|
key | string | Nombre de variable |
value | string | Valor a establecer |
Devuelve: boolean, error
get_all
Sección titulada «get_all»Obtiene todas las variables de entorno accesibles.
local vars = env.get_all()
-- Registrar configuración (cuidado de no registrar secretos)for key, value in pairs(vars) do if not key:match("SECRET") and not key:match("KEY") then logger.debug("env", {[key] = value}) endend
-- Verificar variables requeridaslocal required = {"DATABASE_URL", "REDIS_URL", "API_KEY"}for _, key in ipairs(required) do if not vars[key] then return nil, errors.new("INVALID", "Missing required env var: " .. key) endendDevuelve: table, error
Permisos
Sección titulada «Permisos»El acceso a entorno esta sujeto a evaluacion de politica de seguridad.
Acciones de Seguridad
Sección titulada «Acciones de Seguridad»| Accion | Recurso | Descripción |
|---|---|---|
env.get | Nombre de variable | Leer variable de entorno |
env.set | Nombre de variable | Escribir variable de entorno |
env.get_all | * | Listar todas las variables |
Verificar Acceso
Sección titulada «Verificar Acceso»local security = require("security")
if security.can("env.get", "DATABASE_URL") then local url = env.get("DATABASE_URL")endConsulte Modelo de Seguridad para configuración de politicas.
Errores
Sección titulada «Errores»| Condición | Tipo | Reintentable |
|---|---|---|
| Clave vacia | errors.INVALID | no |
| Variable no encontrada | errors.NOT_FOUND | no |
| Permiso denegado | errors.PERMISSION_DENIED | no |
Consulte Manejo de Errores para trabajar con errores.
Vea También
Sección titulada «Vea También»- Sistema de Entorno - Configurar backends de almacenamiento y definiciones de variables