Variables de Entorno
El módulo env lee y actualiza las variables de entorno expuestas por el entorno de ejecución.
Esta es una referencia de API. Sus fragmentos son operaciones aisladas y suponen que las variables y políticas de seguridad indicadas ya existen.
Las variables deben definirse en el Sistema de Entorno antes de poder acceder a ellas. El sistema controla qué backends de almacenamiento (OS, archivo, memoria) proporcionan valores y si las variables son de solo lectura.
Carga
local env = require("env")
get
Obtiene el valor de una variable de entorno.
-- Obtener cadena de conexión de base de datos
local db_url = env.get("DATABASE_URL")
if not db_url then
return nil, errors.new({ kind = errors.INVALID, message = "DATABASE_URL not configured" })
end
local port, port_err = get_or("PORT", "8080")
if port_err then return nil, port_err end
| Parámetro | Tipo | Descripción |
|---|---|---|
key |
string | Nombre de variable |
Devuelve: string, error
Devuelve nil, error si la variable no existe.
set
Establece una variable de entorno.
-- Set runtime configuration
local updated, set_err = env.set("APP_MODE", "production")
if set_err then return nil, set_err end
return updated
| Parámetro | Tipo | Descripción |
|---|---|---|
key |
string | Nombre de variable |
value |
string | Valor a establecer |
Devuelve: boolean, error
get_all
Obtiene todas las variables de entorno accesibles.
local logger = require("logger")
local vars, vars_err = env.get_all()
if vars_err then return nil, vars_err end
-- Log names only. Values such as connection URLs may contain credentials even
-- when their keys do not include words like SECRET or KEY.
local accessible_keys = {}
for key in pairs(vars) do table.insert(accessible_keys, key) end
logger:debug("accessible environment variables", {keys = accessible_keys})
-- Check required variables
local required = {"DATABASE_URL", "REDIS_URL", "API_KEY"}
for _, key in ipairs(required) do
if not vars[key] then
return nil, errors.new({ kind = errors.INVALID, message = "Missing required env var: " .. key })
end
end
Devuelve: table, error
Permisos
El acceso a entorno esta sujeto a evaluacion de politica de seguridad.
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 |
get_all no tiene una acción de seguridad dedicada: devuelve solo las variables para las que la acción env.get está permitida, filtrando cada nombre de variable a través de env.get.
Verificar Acceso
local security = require("security")
if security.can("env.get", "DATABASE_URL") then
local url = env.get("DATABASE_URL")
end
Consulte Modelo de Seguridad para configuración de politicas.
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
- Sistema de Entorno - Configurar backends de almacenamiento y definiciones de variables