Umgebungsvariablen

Das Modul env liest und aktualisiert von der Runtime bereitgestellte Umgebungsvariablen.

Diese Seite ist eine API-Referenz. Ihre Ausschnitte zeigen einzelne Operationen und setzen voraus, dass die genannten Variablen und Sicherheitsrichtlinien bereits vorhanden sind.

Variablen müssen im Umgebungssystem definiert sein, bevor darauf zugegriffen werden kann. Das System steuert, welche Speicher-Backends (OS, Datei, Speicher) Werte liefern und ob Variablen schreibgeschützt sind.

Laden

local env = require("env")

get

Holt einen Umgebungsvariablenwert.

-- Datenbankverbindungsstring holen
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
Parameter Typ Beschreibung
key string Variablenname

Gibt zurück: string, error

Gibt nil, error zurück, wenn Variable nicht existiert.

set

Setzt eine Umgebungsvariable.

-- Set runtime configuration
local updated, set_err = env.set("APP_MODE", "production")
if set_err then return nil, set_err end
return updated
Parameter Typ Beschreibung
key string Variablenname
value string Zu setzender Wert

Gibt zurück: boolean, error

get_all

Holt alle zugänglichen Umgebungsvariablen.

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

Gibt zurück: table, error

Berechtigungen

Umgebungszugriff unterliegt der Sicherheitsrichtlinienauswertung.

Sicherheitsaktionen

Aktion Ressource Beschreibung
env.get Variablenname Umgebungsvariable lesen
env.set Variablenname Umgebungsvariable schreiben

get_all hat keine eigene Sicherheitsaktion: Es gibt nur die Variablen zurück, für die die Aktion env.get erlaubt ist, und filtert jeden Variablennamen durch env.get.

Zugriff prüfen

local security = require("security")

if security.can("env.get", "DATABASE_URL") then
    local url = env.get("DATABASE_URL")
end

Siehe Sicherheitsmodell zur Richtlinienkonfiguration.

Fehler

Bedingung Art Wiederholbar
Leerer Schlüssel errors.INVALID nein
Variable nicht gefunden errors.NOT_FOUND nein
Berechtigung verweigert errors.PERMISSION_DENIED nein

Siehe Fehlerbehandlung für die Arbeit mit Fehlern.

Siehe auch

  • Umgebungssystem – Speicher-Backends und Variablendefinitionen konfigurieren