Fehlerbehebung bei AWS IoT Greengrass in einem Docker-Container - AWS IoT Greengrass

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.

Fehlerbehebung bei AWS IoT Greengrass in einem Docker-Container

Verwenden Sie die folgenden Informationen, um Probleme mit der Ausführung AWS IoT Greengrass in einem Docker-Container zu beheben und Probleme mit AWS IoT Greengrass im Docker-Container zu beheben.

Beheben von Problemen beim Ausführen des Docker-Containers

Verwenden Sie die folgenden Informationen für die Problembehandlung mit der AWS IoT Greengrass-Ausführung in einem Docker-Container.

Fehler: Interaktive Anmeldung von einem Nicht-TTY-Gerät aus nicht möglich

Dieser Fehler kann auftreten, wenn Sie den aws ecr get-login-password Befehl ausführen. Stellen Sie sicher, dass Sie die neueste AWS CLI Version 2 oder Version 1 installiert haben. Wir empfehlen Ihnen, die AWS CLI Version 2 zu verwenden. Weitere Informationen finden Sie unter Installieren der AWS CLI im AWS Command Line Interface-Benutzerhandbuch.

Fehler: Unbekannte Optionen: -no-include-email

Dieser Fehler kann auftreten, wenn Sie den aws ecr get-login Befehl ausführen. Stellen Sie sicher, dass die neueste AWS CLI-Version (z. B. run: pip install awscli --upgrade --user) installiert ist. Weitere Informationen finden Sie unter Installieren der AWS Command Line Interface unter Microsoft Windows im AWS Command Line Interface -Benutzerhandbuch.

Fehler: Eine Firewall blockiert die Freigabe von Dateien zwischen Fenstern und den Containern.

Möglicherweise erhalten Sie diesen Fehler oder eine Firewall Detected Meldung, wenn Sie Docker auf einem Windows-Computer ausführen. Dies kann auch auftreten, wenn Sie an einem Virtual Private Network (VPN) angemeldet sind und Ihre Netzwerkeinstellungen die Bereitstellung des freigegebenen Laufwerks verhindern. Deaktivieren Sie in diesem Fall das VPN und führen Sie den Docker-Container erneut aus.

Fehler: Beim Aufrufen der - GetAuthorizationToken Operation ist ein Fehler (AccessDeniedException) aufgetreten: Benutzer: arn:aws:iam::account-id :user/<user-name> ist nicht zur Ausführung autorisiert: ecr:GetAuthorizationToken on Ressource: *

Dieser Fehler wird möglicherweise angezeigt, wenn Sie den aws ecr get-login-password Befehl ausführen, wenn Sie nicht über ausreichende Berechtigungen für den Zugriff auf ein Amazon-ECR-Repository verfügen. Weitere Informationen finden Sie unter Beispiele für Amazon-ECR-Repository-Richtlinien und Zugriff auf ein Amazon-ECR-Repository im Amazon-ECR-Benutzerhandbuch.

Fehler: Sie haben Ihr Pull-Rate-Limit erreicht

Docker Hub begrenzt die Anzahl der Pull-Anforderungen, die anonyme und kostenlose Docker-Hub-Benutzer stellen können. Wenn Sie die Ratenlimits für anonyme oder freie Pull-Anfragen von Benutzern überschreiten, erhalten Sie einen der folgenden Fehler:

ERROR: toomanyrequests: Too Many Requests.
You have reached your pull rate limit.

Um diese Fehler zu beheben, können Sie einige Stunden warten, bevor Sie eine weitere Pull-Anforderung versuchen. Wenn Sie vorhaben, konsistent eine große Anzahl von Pull-Anforderungen einzureichen, finden Sie auf der Docker-Hub-Website Informationen zu Ratenlimits sowie Optionen für die Authentifizierung und Aktualisierung Ihres Docker-Kontos.

Debuggen von AWS IoT Greengrass in einem Docker-Container

Zum Debuggen von Problemen mit einem Docker-Container können Sie die Greengrass-Laufzeitprotokolle erhalten oder eine interaktive Shell an den Docker-Container anfügen.

Greengrass-Protokolle außerhalb des Docker-Containers beibehalten

Nachdem Sie einen AWS IoT Greengrass Container gestoppt haben, können Sie den folgenden docker cp Befehl verwenden, um die Greengrass-Protokolle aus dem Docker-Container in ein temporäres Protokollverzeichnis zu kopieren.

docker cp container-id:/greengrass/v2/logs /tmp/logs

Um Protokolle auch nach dem Beenden oder Entfernen eines Containers beizubehalten, müssen Sie den AWS IoT Greengrass Docker-Container nach dem Bind-Mounting des /greengrass/v2/logs Verzeichnisses ausführen.

Um das /greengrass/v2/logs Verzeichnis zu binden, führen Sie einen der folgenden Schritte aus, wenn Sie einen neuen AWS IoT Greengrass Docker-Container ausführen.

  • Nehmen Sie -v /tmp/logs:/greengrass/v2/logs:ro in Ihren docker run Befehl auf.

    Ändern Sie den -volumesBlock in der Compose-Datei so, dass er die folgende Zeile enthält, bevor Sie Ihren docker-compose up Befehl ausführen.

    volumes: - /tmp/logs:/greengrass/v2/logs:ro

Anschließend können Sie Ihre Protokolle unter /tmp/logs auf Ihrem Host überprüfen, um Greengrass-Protokolle anzuzeigen, während im Docker-Container ausgeführt AWS IoT Greengrass wird.

Informationen zum Ausführen von Greengrass-Docker-Containern finden Sie unter In AWS IoT Greengrass Docker mit manueller Bereitstellung ausführen und In AWS IoT Greengrass Docker mit automatischer Bereitstellung ausführen

Anfügen einer interaktiven Shell an den Docker-Container

Wenn Sie verwenden, docker exec um Befehle im Docker-Container auszuführen, werden diese Befehle nicht in den Docker-Protokollen erfasst. Die Protokollierung Ihrer Befehle in den Docker-Protokollen kann Ihnen helfen, den Status des Greengrass-Docker-Containers zu untersuchen. Führen Sie eine der folgenden Aktionen aus:

  • Führen Sie den folgenden Befehl in einem separaten Terminal aus, um die Standardeingabe, -ausgabe und den Fehler Ihres Terminals an den laufenden Container anzuhängen. Auf diese Weise können Sie den Docker-Container von Ihrem aktuellen Terminal aus anzeigen und steuern.

    docker attach container-id
  • Führen Sie den folgenden Befehl in einem separaten Terminal aus. Auf diese Weise können Sie Ihre Befehle im interaktiven Modus ausführen, auch wenn der Container nicht angefügt ist.

    docker exec -it container-id sh -c "command > /proc/1/fd/1"

Allgemeine Informationen zur AWS IoT Greengrass Fehlerbehebung finden Sie unter Problembehebung AWS IoT Greengrass V2.