Ich möchte feststellen, ob mein Code in der AWS Lambda-Umgebung ausgeführt wird. Gibt es einen guten, dokumentierten Weg, dies zu tun?
Derzeit bin ich abhängig vom Vorhandensein der Umgebungsvariablen LAMBDA_TASK_ROOT, die im beschrieben wurde Erkunden der AWS Lambda-Laufzeitumgebung Blogpost, der sich falsch anfühlt.
Antworten:
3 für die Antwort № 1Der beste Weg, um damit umzugehen, ist, es selbst zu verfolgen. Insbesondere können Sie eine globale Variable oder eine Umgebungsvariable nach dem Lambda-Einstiegspunkt setzen. Zum Beispiel in node.js:
exports.handler = function(event, context, callback) {
process.env["LAMBDA_ENV"] = "true";
...
};
4 für die Antwort № 2
Es gibt eine process.env -Eigenschaft, die Sie überprüfen können:
const isLambda = !!(process.env.LAMBDA_TASK_ROOT || false);
if (isLambda) {
// You"re on AWS Lambda
} else {
// Local or elsewhere
}
Kredit an Watson / Is-Lambda für die Entdeckung.
Bearbeiten: Offizielle AWS-Quelle (mit mehr Umgebungen) https://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html
1 für die Antwort № 3
Wenn Sie einen Lambda-Umgebungsfaker verwenden, gefällt das hervorragend Lambda-Lokal Paket, Überprüfung gegen z. LAMBDA_TASK_ROOT funktioniert nicht.
Benutze das stattdessen:
const isLambda = Boolean(process.env["AWS_LAMBDA_FUNCTION_NAME"]);