/ / Wie kann ich feststellen, ob ich in einer AWS Lambda-Umgebung laufe? - amazon-web-services, aws-lambda

Wie erkenne ich, ob ich in einer AWS Lambda-Umgebung laufe? - amazon-web-services, aws-lambda

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 № 1

Der 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"]);