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 Aktualisierungen Ihrer Funktion direkt mit der 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 Event-Stream für diesen Dienst nach der Antwort von Lambda.
Die folgenden Themen enthalten Ratschläge zur Fehlerbehebung bei Fehlern und Problemen, die bei der Verwendung der Lambda-API, -Konsole oder -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
Themen
Allgemein: Die Erlaubnis wurde verweigert oder eine solche Datei kann nicht geladen werden
Allgemein: Ein Fehler tritt auf beim Aufrufen von UpdateFunctionCode
Lambda: oder InvalidParameterValueException RequestEntityTooLargeException
Lambda: Ungültige Aliaskonfiguration für bereitgestellte Gleichzeitigkeit
Allgemein: Die Erlaubnis wurde verweigert oder eine solche Datei kann nicht geladen werden
Fehler: EACCES: Erlaubnis verweigert, öffnen Sie '/ /index.js 'var/task
Fehler: kann eine derartige Datei nicht laden – Funktion
Fehler: [Errno 13] Berechtigung verweigert: '/ /function.py 'var/task
Die Lambda-Laufzeit benötigt die Berechtigung zum Lesen der Dateien in Ihrem Bereitstellungspaket. In der oktalen Linux-Notation der Berechtigungen benötigt Lambda 644 Berechtigungen für nicht ausführbare Dateien (rw-r--r--) und 755 Berechtigungen (rwxr-xr-x) für Verzeichnisse und ausführbare Dateien.
Verwenden Sie unter Linux und MacOS den chmod-Befehl, um Dateiberechtigungen für Dateien und Verzeichnisse in Ihrem Bereitstellungspaket zu ändern. Um beispielsweise einer nicht ausführbaren Datei die richtigen Berechtigungen zu geben, führen Sie den folgenden Befehl aus.
chmod 644 <filepath>
Informationen zum Ändern von Dateiberechtigungen in Windows finden Sie unter Festlegen, Anzeigen, Ändern oder Entfernen von Berechtigungen für ein Objekt
Anmerkung
Wenn Sie Lambda nicht die Berechtigungen gewähren, die es für den Zugriff auf Verzeichnisse in Ihrem Bereitstellungspaket benötigt, setzt Lambda die Berechtigungen für diese Verzeichnisse auf 755 (rwxr-xr-x).
Allgemein: Ein Fehler tritt auf beim Aufrufen von UpdateFunctionCode
Fehler: Beim Aufrufen der UpdateFunctionCode Operation ist ein Fehler aufgetreten (RequestEntityTooLargeException)
Wenn Sie ein Bereitstellungspaket oder ein Ebenenarchiv direkt in 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 dem AWS CLI AWS SDK oder auf andere Weise hochladen, wird die binäre ZIP-Datei in das Format Base64 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: Dabei 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-Objekt in einem Aufruf von angeben oder die Befehle Package und Deploy in der AWS SAM CLI AWS CLI oder verwenden. 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 '' kann nicht aus der Assembly Function.Handler '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 Methoden−`Handler' für #< > LambdaHandler:0x000055b76ccebf98
Fehler: Keine öffentliche Methode namens handleRequest mit der entsprechenden Methodensignatur für Klasse function.Handler gefunden
Fehler: Die Methode 'handleRequest' im Typ '' aus der Assembly 'Function' konnte nicht gefunden werden Function.Handler
Der Name der Handler-Methode in der Handler-Konfiguration Ihrer Funktion stimmt nicht mit Ihrem Code überein. Jede Laufzeit definiert eine Benennungskonvention für Handler, wie z. B. filename methodname. Der Handler ist die Methode im Code Ihrer Funktion, die von der Laufzeit ausführt wird, 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.
Allgemein: Speicherlimit für Lambda-Code überschritten
Fehler: Das Code-Speicherlimit wurde überschritten.
Lambda speichert eine Kopie Ihres Funktionscodes in einem internen S3-Bucket, der für Ihr Konto privat ist. Jedem AWS Konto werden in jeder Region 300 GB Codespeicher (entpackt) zugewiesen. Der Codespeicher umfasst den gesamten Speicherplatz, der sowohl von Lambda-Funktionen als auch von Lambda-Ebenen verwendet wird. Wenn Sie das Kontingent erreichen, erhalten Sie eine Meldung, CodeStorageExceededException wenn Sie versuchen, neue Funktionen bereitzustellen.
Um dieses Problem zu lösen, können Sie alte Versionen von Funktionen bereinigen, nicht verwendeten Code entfernen oder Lambda-Layer verwenden, um gemeinsamen Code zu deduplizieren, der von Funktionen gemeinsam genutzt wird. Darüber hinaus empfiehlt es sich, separate AWS Konten für separate Workloads zu verwenden, um die Speicherkontingente besser verwalten zu können.
Alternativ können Sie Ihre Funktionen und Ebenen so konfigurieren, dass sie den selbstverwalteten S3-Codespeicher verwenden. Beim selbstverwalteten S3-Codespeicher verweist Lambda direkt aus Ihrem S3-Bucket auf Ihren Code, was nicht auf Ihr Speicherkontingent angerechnet wird.
Sie können Ihre gesamte Speichernutzung in der Lambda-Konsole im Untermenü Dashboard einsehen:
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
Fehler InvalidParameterValueException: Lambda konnte Ihre Umgebungsvariablen nicht konfigurieren, da die von Ihnen angegebenen Umgebungsvariablen das 4-KB-Limit überschritten haben. Gemessene Zeichenfolge: {"A1":" u... SFeY5cyPiPn7AtnX5BsM
Fehler RequestEntityTooLargeException: Die Anfrage 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-Anforderungstexts ist ebenfalls begrenzt.
{ "FunctionName": "my-function", "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function", "Runtime": "nodejs24.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"}. Standard-ASCII-Zeichen in Umgebungsvariablenwerten verwenden jeweils ein Byte. Erweiterte ASCII- und Unicode-Zeichen können zwischen 2 und 4 Bytes pro Zeichen verwenden.
Lambda: InvalidParameterValueException
Fehler InvalidParameterValueException: 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: ConcurrentExecutions Für die Funktion angegeben, wird das Konto UnreservedConcurrentExecution unter den Mindestwert gesenkt
Fehler: Der Wert MemorySize '' erfüllte die Einschränkung nicht: 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: Ein Fehler kann auftreten, wenn Sie 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 übersteigt.
-
Speicher: Fehler treten auf, wenn die der Funktion zugewiesene Speichermenge das Speicherkontingent Ihres Kontos übersteigt.
Lambda: Ungültige Aliaskonfiguration für bereitgestellte Gleichzeitigkeit
Fehler: Ungültige Aliaskonfiguration für bereitgestellte Gleichzeitigkeit
Dieser Fehler tritt auf, wenn Sie versuchen, den Code oder die Konfiguration einer Lambda-Funktion zu aktualisieren, während ein Alias mit bereitgestellter Gleichzeitigkeit auf eine Version verweist, bei der Probleme auftreten. Lambda initialisiert Ausführungsumgebungen für die bereitgestellte Gleichzeitigkeit vorab. Wenn diese Umgebungen aufgrund von Codefehlern, Ressourcenbeschränkungen oder einem betroffenen Stack und Alias nicht ordnungsgemäß initialisiert werden können, schlägt die Bereitstellung fehl. Führen Sie in diesem Fall die folgenden Schritte aus:
-
Den Alias rückgängig machen: Aktualisieren Sie den Alias vorübergehend, sodass er auf die zuvor funktionierende Version verweist.
aws lambda update-alias \ --function-name <function-name> \ --name <alias-name> \ --function-version <known-good-version> -
Lambda-Initialisierungscode korrigieren: Stellen Sie sicher, dass der Initialisierungscode, der außerhalb des Handlers ausgeführt wird, keine nicht abgefangenen Ausnahmen enthält, und initialisieren Sie die Clients und Verbindungen.
-
Sicherheit erneut bereitstellen: Stellen Sie korrigierten Code bereit und veröffentlichen Sie eine neue Version. Aktualisieren Sie dann den Alias so, dass er auf die korrigierte Version verweist. Aktivieren Sie optional die bereitgestellte Gleichzeitigkeit erneut, falls erforderlich.
Falls verwendet AWS CloudFormation, aktualisieren Sie die Stack-Definition FunctionVersion:!GetAtt
version.Version so, dass der Alias auf die funktionierende Version verweist:
alias: Type: AWS::Lambda::Alias Properties:FunctionName: !Ref function FunctionVersion: !GetAtt version.Version Name: BLUE ProvisionedConcurrencyConfig: ProvisionedConcurrentExecutions: 1