Ausgabe
Ich erstelle eine Lambda-Erweiterung, um geheime Werte vom Secret Manager abzurufen, indem ich diese als Vorlage verwende:
https://github.com/hariohmprasath/aws-lambda-extensions
Ich habe die Dateien in die folgende Struktur gezippt.
extension.zip
--> extensions
--> secret-extension
--> secret-extension
--> node_modules
--> extensions-api.js
--> index.js
--> package.json
--> package-lock.json
--> secrets.js
Fehler:
{
"errorMessage": "RequestId: e5c06575-cf7d-46c0-b168-624e8e9cf572 Error: exit status 127",
"errorType": "Extension.Crash"
}
Der Fehler ist, dass /usr/bin/env: node : No such file or directory Am Anfang der Datei index.js steht der Befehl #!/usr/bin/env node (um die Datei im Knoten zu interpretieren)
Die Laufzeitumgebung ist Nodejs 12 und habe es auch mit 14 versucht. (Die Erweiterungsdokumentation besagt, dass die Laufzeit von Knoten 12 erforderlich ist.)
Was könnte dieses Problem verursachen?
- Die Lambda-Laufzeit ist eine Node-Laufzeit, daher sollte node installiert werden.
- Ich habe
ls
den Ordner und/env
Ordner existiert. - Ich weiß, dass Knoten innerhalb der Laufzeit vorhanden sind, da
node -v
v14.20.0 oder v12.22.11 zurückgegeben werden - Ich befinde mich auf einem Windows-Computer, der die Erweiterung erstellt (glaube nicht, dass die Bereitstellung dies verursachen könnte, da sie auf einem Windows-Computer geschrieben wurde.
Jede Hilfe wäre willkommen.
Lösung
Habe also herausgefunden, dass es mit einer benutzerdefinierten Umgebung zu tun hat, die sie für das von AWS bereitgestellte Beispiel verwenden. Stattdessen bin ich den Weg gegangen, eine laufzeitunabhängige Lösung zu verwenden, die wie erwartet funktioniert hat.
Beantwortet von – landon_slalom
Antwort geprüft von – Clifford M. (FixError Volunteer)