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