AWS SAMCLIProblembehandlung - AWS Serverless Application Model

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.

AWS SAMCLIProblembehandlung

Dieser Abschnitt enthält Einzelheiten zur Behebung von Fehlermeldungen bei der Verwendung, Installation und Verwaltung der AWS Serverless Application Model Befehlszeilenschnittstelle (AWS SAMCLI).

Fehlerbehebung

Anleitungen zur Problembehandlung in Bezug auf AWS SAMCLI finden Sie unterBehebung von Installationsfehlern.

Fehlermeldungen

Curl-Fehler: „curl: (6) Konnte nicht auflösen:...“

Beim Versuch, den API Gateway-Endpunkt aufzurufen, wird der folgende Fehler angezeigt:

curl: (6) Could not resolve: endpointdomain (Domain name not found)

Das bedeutet, dass Sie versucht haben, eine Anfrage an eine ungültige Domain zu senden. Dies kann passieren, wenn Ihre serverlose Anwendung nicht erfolgreich bereitgestellt werden konnte oder wenn Sie einen Tippfehler in Ihrem curl Befehl haben. Stellen Sie mithilfe der AWS CloudFormation Konsole oder des sicher, dass die Anwendung erfolgreich bereitgestellt wurde AWS CLI, und stellen Sie sicher, dass Ihr curl Befehl korrekt ist.

Fehler: Es können keine genauen Ressourceninformationen mit dem angegebenen Stack-Namen gefunden werden

Wenn sam remote invoke Sie den Befehl in einer Anwendung ausführen, die eine einzelne Lambda-Funktionsressource enthält, wird der folgende Fehler angezeigt:

Error: Can't find exact resource information with given <stack-name>. Please provide full resource ARN or --stack-name to resolve the ambiguity.
Mögliche Ursache: Sie haben die --stack-name Option nicht angegeben.

Wenn eine Funktion nicht als Argument angegeben ARN wird, erfordert der sam remote invoke Befehl, dass die --stack-name Option angegeben wird.

Lösung: Geben Sie die --stack-name Option an.

Im Folgenden wird ein Beispiel gezeigt:

$ sam remote invoke --stack-name sam-app Invoking Lambda Function HelloWorldFunction START RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82 Version: $LATEST END RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82 REPORT RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82 Duration: 11.31 ms Billed Duration: 12 ms Memory Size: 128 MB Max Memory Used: 67 MB Init Duration: 171.71 ms {"statusCode":200,"body":"{\"message\":\"hello world\"}"}%

Fehler: Ressourceninformationen können nicht aus dem Stacknamen gefunden werden

Wenn sam remote invoke Sie den Befehl ausführen und eine Lambda-Funktion ARN als Argument übergeben, wird der folgende Fehler angezeigt:

Error: Can't find resource information from stack name (<stack-name>) and resource id (<function-id>)
Mögliche Ursache: Sie haben den Wert des Stack-Namens in Ihrer samconfig.toml Datei definiert.

Der AWS SAMCLI erste überprüft Ihre samconfig.toml Datei auf einen Stacknamen. Falls angegeben, wird das Argument als logischer ID-Wert übergeben.

Lösung: Übergeben Sie stattdessen die logische ID der Funktion.

Sie können die logische ID der Funktion anstelle der der Funktion als Argument übergebenARN.

Lösung: Entfernen Sie den Wert des Stack-Namens aus Ihrer Konfigurationsdatei.

Sie können den Wert des Stack-Namens aus Ihrer Konfigurationsdatei entfernen. Dadurch wird verhindert, dass Ihre Funktion ARN als logischen ID-Wert übergeben wird. AWS SAMCLI

Führen Sie es aus, sam build nachdem Sie Ihre Konfigurationsdatei geändert haben.

Fehler: Verwaltete Ressourcen konnten nicht erstellt werden: Anmeldeinformationen konnten nicht gefunden werden

Beim Ausführen des sam deploy Befehls wird der folgende Fehler angezeigt:

Error: Failed to create managed resources: Unable to locate credentials

Das bedeutet, dass Sie keine AWS Anmeldeinformationen eingerichtet haben, mit denen AWS SAMCLI Sie AWS Serviceanfragen tätigen können. Um dieses Problem zu beheben, müssen Sie AWS Anmeldeinformationen einrichten. Weitere Informationen finden Sie unter AWS Zugangsdaten einrichten.

Fehler: FileNotFoundError in Windows

Wenn Sie Befehle AWS SAMCLI unter Windows ausführen, wird möglicherweise der folgende Fehler angezeigt:

Error: FileNotFoundError

Mögliche Ursache: Sie interagieren AWS SAMCLI möglicherweise mit Dateipfaden, die die maximale Pfadbeschränkung von Windows überschreiten.

Lösung: Um dieses Problem zu beheben, muss das neue Verhalten für lange Pfade aktiviert werden. Informationen dazu finden Sie unter Enable Long Paths in Windows 10, Version 1607 und höher in der Dokumentation zur Entwicklung von Microsoft Windows-Apps.

Fehler: Der Abhängigkeitsauflöser von pip...

Beispiel-Fehlertext:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. 
aws-sam-cli 1.58.0 requires aws-sam-translator==1.51.0, but you have aws-sam-translator 1.58.0 which is incompatible. 
aws-sam-cli 1.58.0 requires typing-extensions==3.10.0.0, but you have typing-extensions 4.4.0 which is incompatible.
Mögliche Ursache: Bei der Installation von Paketen können Abhängigkeiten zwischen Paketen zu Konflikten führen. pip

Jede Version des aws-sam-cli Pakets hängt von einer Version des aws-sam-translator Pakets ab. Zum Beispiel kann aws-sam-cli v1.58.0 von v1.51.0 abhängenaws-sam-translator.

Wenn Sie das Paket AWS SAMCLI verwenden und dann ein anderes Paket installierenpip, das von einer neueren Version von abhängtaws-sam-translator, passiert Folgendes:

  • Die neuere Version von aws-sam-translator wird installiert.

  • Die aktuelle Version von aws-sam-cli und die neuere Version von sind aws-sam-translator möglicherweise nicht kompatibel.

  • Wenn Sie den verwenden AWS SAMCLI, tritt der Abhängigkeitsauflösungsfehler auf.

Lösungen:
  1. Verwenden Sie das AWS SAMCLI native Paketinstallationsprogramm.

    1. Deinstallieren Sie das AWS SAMCLI mit Pip. Anweisungen finden Sie unter Deinstallation des AWS SAMCLI.

    2. Installieren Sie das AWS SAMCLI mit dem nativen Paketinstallationsprogramm. Anweisungen finden Sie unter Installiere das AWS SAMCLI.

    3. Falls erforderlich, führen Sie ein Upgrade AWS SAMCLI mit dem systemeigenen Paketinstallationsprogramm durch. Anweisungen finden Sie unter Aktualisierung des AWS SAMCLI.

  2. Wenn Sie es verwenden müssenpip, empfehlen wir Ihnen, das AWS SAM CLI in einer virtuellen Umgebung zu installieren. Dies gewährleistet eine saubere Installationsumgebung und eine isolierte Umgebung, falls Fehler auftreten. Anweisungen finden Sie unter Installation des AWS SAMCLI in einer virtuellen Umgebung mit pip.

Fehler: Kein solcher Befehl 'remote'

Wenn Sie den sam remote invoke Befehl ausführen, wird der folgende Fehler angezeigt:

$ sam remote invoke ... 2023-06-20 08:15:07 Command remote not available Usage: sam [OPTIONS] COMMAND [ARGS]... Try 'sam -h' for help. Error: No such command 'remote'.
Mögliche Ursache: Ihre Version von AWS SAMCLI ist veraltet.

Der AWS SAMCLI sam remote invoke Befehl wurde mit AWS SAMCLI Version 1.88.0 veröffentlicht. Sie können Ihre Version überprüfen, indem Sie den sam --version Befehl ausführen.

Lösung: Führen Sie ein Upgrade AWS SAMCLI auf die neueste Version durch.

Anweisungen finden Sie unter Aktualisierung des AWS SAMCLI.

Fehler: Das lokale Ausführen von AWS SAM Projekten erfordertDocker. Hast du es installiert?

Wenn Sie den sam local start-api Befehl ausführen, wird der folgende Fehler angezeigt:

Error: Running AWS SAM projects locally requires Docker. Have you got it installed?

Das bedeutet, dass Sie es nicht Docker richtig installiert haben. Dockerist erforderlich, um Ihre Anwendung lokal zu testen. Um dieses Problem zu beheben, folgen Sie den Anweisungen zur Installation von Docker für Ihren Entwicklungshost. Weitere Informationen finden Sie unter Installieren von Docker.

Fehler: Sicherheitseinschränkungen nicht erfüllt

Beim Ausführen sam deploy --guided wird Ihnen die Frage angezeigtFunction may not have authorization defined, Is this okay? [y/N]. Wenn Sie auf diese Aufforderung mit N (der Standardantwort) antworten, wird der folgende Fehler angezeigt:

Error: Security Constraints Not Satisfied

Die Aufforderung informiert Sie darüber, dass die Anwendung, die Sie bereitstellen möchten, möglicherweise über ein öffentlich zugängliches Amazon API Gateway verfügt, das ohne Autorisierung API konfiguriert ist. Wenn Sie N auf diese Aufforderung antworten, sagen Sie, dass dies nicht in Ordnung ist.

Um dieses Problem zu beheben, haben Sie die folgenden Optionen:

  • Konfigurieren Sie Ihre Anwendung mit Autorisierung. Informationen zur Konfiguration der Autorisierung finden Sie unterSteuern API Sie den Zugriff mit Ihrer AWS SAM Vorlage.

  • Wenn Sie beabsichtigen, einen öffentlich zugänglichen API Endpunkt ohne Autorisierung einzurichten, starten Sie Ihre Bereitstellung neu und beantworten Sie diese Frage mit, Y um anzugeben, dass Sie mit der Bereitstellung einverstanden sind.

Nachricht: Fehlendes Authentifizierungstoken

Beim Versuch, den API Gateway-Endpunkt aufzurufen, wird der folgende Fehler angezeigt:

{"message":"Missing Authentication Token"}

Das bedeutet, dass Sie versucht haben, eine Anfrage an die richtige Domain zu senden, aber die URI ist nicht erkennbar. Um dieses Problem zu beheben, überprüfen Sie die vollständigen URL Angaben und aktualisieren Sie den curl Befehl mit dem richtigenURL.

Warnmeldungen

Warnung:... AWS wird das Homebrew Installationsprogramm für AWS SAM ... nicht mehr verwalten

Bei der AWS SAMCLI Installation des Homebrew Using wird die folgende Warnmeldung angezeigt:

Warning: ... AWS will no longer maintain the Homebrew installer for AWS SAM (aws/tap/aws-sam-cli). 
				For AWS supported installations, use the first party installers ...
Mögliche Ursache: Der Homebrew Support wird nicht AWS mehr aufrechterhalten.

Ab September 2023 AWS wird das Homebrew Installationsprogramm für das nicht mehr gewartet AWS SAMCLI.

Lösung: Verwenden Sie eine AWS unterstützte Installationsmethode.
Lösung: Verwenden Sie das von der Community verwaltete InstallationsprogrammHomebrew, um die Nutzung fortzusetzen.
  • Sie können das von der Community verwaltete Homebrew Installationsprogramm nach eigenem Ermessen verwenden. Detaillierte Anweisungen finden Sie unter Verwaltung des AWS SAMCLI mit Homebrew.