Ausgabe
Also versuche ich, eine Funktion in AWS Lambda einzurichten, um einen Python-Code auszuführen, den ich aus einer ZIP-Datei importiert habe.
Ich habe den Handler bearbeitet, um die Datei und dann die Funktion auszuführen, die ich ausführen möchte
Ich habe versucht, die Datei in dem Verzeichnis zu haben, das beim Importieren des Zip-Ordners erstellt wurde, und danach habe ich sie in das Hauptfunktionsverzeichnis verschoben. Beides funktionierte nicht
Ich bin mir nicht sicher, was hier falsch ist, der vollständige Fehler, der zurückgegeben wird, wenn ich den Test ausführe, ist:
Response
{
"errorMessage": "Unable to import module 'main': No module named 'main'",
"errorType": "Runtime.ImportModuleError",
"stackTrace": []
}
Bearbeiten: Lambda ist wirklich neu, also entschuldigen Sie bitte alle dummen Fehler
Lösung
Das Problem ist, dass Sie zwar ein Modul mit dem Namen main zu haben scheinen , dieses aber noch nicht für den Lambda-Dienst bereitgestellt wurde. Wenn Sie auf Test klicken, führt Lambda den bereitgestellten Code aus. Vielleicht wurde Ihr Modul einige Zeit nach Ihrer ersten Bereitstellung in main umbenannt?
Lokale Änderungen am Code müssen gespeichert und dann bereitgestellt werden . Der Bereitstellungsschritt ist wichtig, da der Lambda-Dienst bis zur Bereitstellung des Codes weiterhin den vorherigen Code ausführt.
Dies war in der Vergangenheit ein häufiges Problem in der Lambda-Konsole, aber es wurden Verbesserungen vorgenommen, um deutlicher zu machen, dass eine Bereitstellung erforderlich ist. Beispielsweise zeigt die Konsole jetzt „Änderungen nicht bereitgestellt“ an, nachdem Sie eine Änderung vorgenommen haben, bis Sie auf die Schaltfläche „Bereitstellen“ klicken.
Beantwortet von – jarmod
Antwort geprüft von – Katrina (FixError Volunteer)