Beheben von Bereitstellungsproblemen in Lambda - AWS Lambda

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Beheben von Bereitstellungsproblemen in Lambda

Wenn Sie Ihre Funktion aktualisieren, stellt Lambda die Änderung durch Starten der neuen Instances der Funktion mit aktualisiertem Code oder aktualisierten Einstellungen bereit. Bereitstellungsfehler verhindern die Verwendung der neuen Version und können auf Probleme mit Bereitstellungspaket, Code, Berechtigungen oder Tools zurückzuführen sein.

Wenn Sie Updates für Ihre Funktion direkt mit dem Lambda API oder mit einem Client wie dem bereitstellen AWS CLI, können Sie Fehler von Lambda direkt in der Ausgabe sehen. Wenn Sie Dienste wie AWS CloudFormation, oder verwenden AWS CodeDeploy AWS CodePipeline, suchen Sie in den Protokollen oder im Eventstream für diesen Dienst nach der Antwort von Lambda.

Die folgenden Themen enthalten Hinweise zur Fehlerbehebung bei Fehlern und Problemen, die bei der Verwendung von LambdaAPI, der Konsole oder den Tools auftreten können. Wenn Sie auf ein Problem stoßen, das hier nicht aufgeführt ist, können Sie die Schaltfläche Feedback auf dieser Seite verwenden, um es zu melden.

Weitere Tipps zur Fehlerbehebung und Antworten auf häufig gestellte Supportfragen finden Sie im AWS - Wissenscenter.

Weitere Informationen zum Debuggen und zur Problembehandlung für Lambda-Anwendungen finden Sie bei Serverless Land unter Debugging.

Allgemein: Berechtigung wird verweigert/Kann solche Datei nicht laden

FehlerEACCES: Zugriff verweigert, '/var/task/index.js' öffnen

Fehler: kann eine derartige Datei nicht laden – Funktion

Fehler: [Fehler 13] Berechtigung verweigert: '/var/task/function.py'

Die Lambda-Laufzeit benötigt die Berechtigung zum Lesen der Dateien in Ihrem Bereitstellungspaket. In der oktalen Schreibweise von Linux-Berechtigungen benötigt Lambda 644 Berechtigungen für nicht ausführbare Dateien (rw-r--r--) und 755 Berechtigungen () für Verzeichnisse und ausführbare Dateien. rwxr-xr-x

Verwenden Sie unter Linux und MacOS den chmod-Befehl, um Dateiberechtigungen für Dateien und Verzeichnisse in Ihrem Bereitstellungspaket zu ändern. Führen Sie beispielsweise den folgenden Befehl aus, um einer ausführbaren Datei die richtigen Berechtigungen zu gewähren.

chmod 755 <filepath>

Informationen zum Ändern von Dateiberechtigungen in Windows finden Sie unter Festlegen, Anzeigen, Ändern oder Entfernen von Berechtigungen für ein Objekt in der Microsoft-Windows-Dokumentation.

Allgemein: Beim Aufrufen von tritt ein Fehler auf UpdateFunctionCode

Fehler: Beim Aufrufen der UpdateFunctionCode Operation ist ein Fehler aufgetreten (RequestEntityTooLargeException)

Wenn Sie ein Bereitstellungspaket oder ein Layer-Archiv direkt auf Lambda hochladen, ist die Größe der ZIP Datei auf 50 MB begrenzt. Um eine größere Datei hochzuladen, speichern Sie sie in Amazon S3 und verwenden Sie die S3Bucket- und S3Key--Parameter.

Anmerkung

Wenn Sie eine Datei direkt mit oder auf andere Weise hochladen AWS CLI AWS SDK, wird die ZIP Binärdatei in ein Base64-Format konvertiert, wodurch sich ihre Größe um etwa 30% erhöht. Um dies und die Größe anderer Parameter in der Anforderung zu ermöglichen, ist die tatsächliche von Lambda angewendete Größenbeschränkung der Anforderung größer. Aus diesem Grund ist der Grenzwert von 50 MB ein ungefährer Wert.

Amazon S3: Fehlercode PermanentRedirect.

Fehler: Während ist ein Fehler aufgetreten GetObject. S3-Fehlercode: PermanentRedirect. S3-Fehlermeldung: Der Bucket befindet sich in dieser Region: us-east-2. Verwenden Sie diese Region, um die Anfrage zu wiederholen

Wenn Sie das Bereitstellungspaket einer Funktion aus einem Amazon-S3-Bucket hochladen, muss sich der Bucket in derselben Region wie die Funktion befinden. Dieses Problem kann auftreten, wenn Sie ein Amazon S3 S3-Objekt in einem Aufruf von angeben oder die Befehle package und deploy im AWS CLI oder verwenden AWS SAM CLI. UpdateFunctionCode Erstellen Sie einen Bucket mit Bereitstellungsartefakt für jede Region, in der Sie Anwendungen entwickeln.

Allgemein: Kann nicht gefunden werden, kann nicht geladen werden, Klasse nicht gefunden, keine solche Datei oder kein Verzeichnis

Fehler: Modul 'function' kann nicht gefunden werden

Fehler: kann eine derartige Datei nicht laden – Funktion

Fehler: Modul 'function' kann nicht importiert werden

Fehler: Klasse nicht gefunden: function.Handler

Fehler: fork/exec /var/task/function: keine solche Datei oder kein solches Verzeichnis

Fehler: Der Typ 'Function.Handler' kann nicht aus der Assembly 'Function' geladen werden.'

Der Name der Datei oder Klasse in der Handler-Konfiguration Ihrer Funktion stimmt nicht mit Ihrem Code überein. Weitere Informationen finden Sie im folgenden Abschnitt.

Allgemein: Undefinierter Methodenhandler

Fehler: index.handler ist nicht definiert oder wurde nicht exportiert

Fehler: Handler 'handler' fehlt für Modul 'function'

Fehler: undefinierter Methodenhandler für #<:0x000055b76ccebf98> LambdaHandler

Fehler: In der Klasse handleRequest Function.Handler wurde keine öffentliche Methode mit der entsprechenden Methodensignatur gefunden

Fehler: Die Methode '' im Typ 'Function.HandlerhandleRequest' aus der Assembly 'Function' konnte nicht gefunden werden

Der Name der Handler-Methode in der Handler-Konfiguration Ihrer Funktion stimmt nicht mit Ihrem Code überein. Jede Laufzeit definiert eine Namenskonvention für Handler, wie z. B. filename.methodname. Der Handler ist die Methode im Code Ihrer Funktion, die die Runtime ausführt, wenn Ihre Funktion aufgerufen wird.

Lambda stellt für einige Sprachen eine Bibliothek mit einer Schnittstelle bereit, die erwartet, dass eine Handler-Methode einen bestimmten Namen hat. Weitere Informationen zur Handlerbenennung für jede Sprache finden Sie in den folgenden Themen.

Lambda: Ebenenkonvertierung ist fehlgeschlagen.

Fehler: Lambda-Ebenenkonvertierung ist fehlgeschlagen. Hinweise zur Lösung dieses Problems finden Sie auf der Seite „Beheben von Bereitstellungsproblemen in Lambda“ im Lambda-Benutzerhandbuch.

Wenn Sie eine Lambda-Funktion mit einer Ebene konfigurieren, führt Lambda die Ebene mit Ihrem Funktionscode zusammen. Wenn dieser Prozess nicht abgeschlossen wird, gibt Lambda diesen Fehler zurück. Führen Sie in diesem Fall die folgenden Schritte aus:

  • Löschen Sie alle ungenutzten Dateien von Ihrer Ebene.

  • Löschen Sie alle symbolischen Links in Ihrer Ebene.

  • Benennen Sie alle Dateien um, die denselben Namen wie ein Verzeichnis in einer der Ebenen Ihrer Funktion haben.

Lambda: oder InvalidParameterValueException RequestEntityTooLargeException

FehlerInvalidParameterValueException: Lambda konnte Ihre Umgebungsvariablen nicht konfigurieren, da die von Ihnen angegebenen Umgebungsvariablen das Limit von 4 KB überschritten haben. Gemessene Zeichenfolge: {"A1":“ uSFe Y5 7ATNx5BSM... cyPiPn

FehlerRequestEntityTooLargeException: Die Anforderung muss für den Vorgang kleiner als 5120 Byte sein UpdateFunctionConfiguration

Die maximale Größe des Variablenobjekts, das in der Konfiguration der Funktion gespeichert ist, darf 4096 Bytes nicht überschreiten. Dazu gehören Schlüsselnamen, Werte, Anführungszeichen, Kommas und Klammern. Die Gesamtgröße des HTTP Anfragetexts ist ebenfalls begrenzt.

{ "FunctionName": "my-function", "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function", "Runtime": "nodejs20.x", "Role": "arn:aws:iam::123456789012:role/lambda-role", "Environment": { "Variables": { "BUCKET": "amzn-s3-demo-bucket", "KEY": "file.txt" } }, ... }

In diesem Beispiel umfasst das Objekt 39 Zeichen und benötigt 39 Bytes, wenn es als Zeichenfolge gespeichert wird (ohne Leerzeichen {"BUCKET":"amzn-s3-demo-bucket","KEY":"file.txt"}. ASCIIStandardzeichen in Werten von Umgebungsvariablen verwenden jeweils ein Byte. Erweiterte Zeichen ASCII und Unicode-Zeichen können zwischen 2 Byte und 4 Byte pro Zeichen enthalten.

Lambda: InvalidParameterValueException

FehlerInvalidParameterValueException: Lambda konnte Ihre Umgebungsvariablen nicht konfigurieren, da die von Ihnen angegebenen Umgebungsvariablen reservierte Schlüssel enthalten, deren Änderung derzeit nicht unterstützt wird.

Lambda reserviert einige Umgebungsvariablenschlüssel zur internen Verwendung. Beispielsweise wird AWS_REGION von der Laufzeit verwendet, um die aktuelle Region zu bestimmen, und kann nicht außer Kraft gesetzt werden. Andere Variablen, wie z. B. PATH, werden von der Laufzeit verwendet, können aber in Ihrer Funktionskonfiguration erweitert werden. Eine vollständige Liste finden Sie unter Definierte Laufzeitumgebungsvariablen.

Lambda: Kontingente für Gleichzeitigkeit und Speicher

Fehler: Die ConcurrentExecutions für die Funktion angegebene Funktion senkt den Wert des Kontos UnreservedConcurrentExecution unter den Mindestwert

Fehler: Der Wert MemorySize '' hat die Einschränkung nicht erfüllt: Das Element muss einen Wert haben, der kleiner oder gleich 3008 ist

Diese Fehler treten auf, wenn Sie für Ihr Konto die Kontingente für Gleichzeitigkeit oder Speicher überschreiten. Bei neuen AWS Konten wurden Parallelität und Speicherkontingente reduziert. Um Fehler im Zusammenhang mit der Gleichzeitigkeit zu beheben, können Sie eine Kontingenterhöhung beantragen. Sie können keine Erhöhung des Speicherkontingents beantragen.

  • Parallelität: Möglicherweise wird eine Fehlermeldung angezeigt, wenn Sie versuchen, eine Funktion mit reservierter oder bereitgestellter Parallelität zu erstellen, oder wenn Ihre funktionsspezifische Parallelitätsanforderung (PutFunctionConcurrency) das Parallelitätskontingent Ihres Kontos überschreitet.

  • Speicher: Fehler treten auf, wenn die der Funktion zugewiesene Speichermenge das Speicherkontingent Ihres Kontos übersteigt.