Risoluzione dei problemi di AWS IoT Greengrass in un container Docker - AWS IoT Greengrass

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risoluzione dei problemi di AWS IoT Greengrass in un container Docker

Utilizza le seguenti informazioni per aiutarti a risolvere i problemi relativi all'esecuzione AWS IoT Greengrass in un contenitore Docker e per eseguire il debug dei problemi AWS IoT Greengrass nel contenitore Docker.

Risoluzione dei problemi relativi all'esecuzione del contenitore Docker

Utilizza le informazioni riportate di seguito per risolvere i problemi più comuni con l'esecuzione di AWS IoT Greengrass in un container Docker.

Errore: impossibile eseguire un accesso interattivo da un dispositivo non TTY

Questo errore può verificarsi quando si esegue il aws ecr get-login-password comando. Assicurati di aver installato la versione 2 o la AWS CLI versione 1 più recente. Ti consigliamo di utilizzare la AWS CLI versione 2. Per ulteriori informazioni, consulta Installazione dell'AWS CLI nella Guida per l'utente di AWS Command Line Interface.

Errore: opzioni sconosciute: - no-include-email

Questo errore può verificarsi quando si esegue il aws ecr get-login comando. Verifica che sia installata la versione AWS CLI più recente (per esempio, esegui: pip install awscli --upgrade --user). Per ulteriori informazioni, vedere Installazione di AWS Command Line Interface su Microsoft Windows nella Guida per l'AWS Command Line Interfaceutente.

Errore: un firewall sta bloccando la condivisione di file tra finestre e contenitori.

Potresti ricevere questo errore o un Firewall Detected messaggio quando esegui Docker su un computer Windows. Questo errore può inoltre verificarsi se sei connesso a una rete privata virtuale (VPN, Virtual Private Network) e le impostazioni di rete impediscono il montaggio dell'unità condivisa. In tal caso, disattivare la rete VPN e riavviare il container Docker.

Errore: si è verificato un errore (AccessDeniedException) durante la chiamata dell' GetAuthorizationToken operazione: User: arn:aws:iam:: account-id:user/ is <user-name>not authorized to perform: ecr: on resource: * GetAuthorizationToken

Potresti ricevere questo errore durante l'esecuzione del aws ecr get-login-password comando se non disponi di autorizzazioni sufficienti per accedere a un repository Amazon ECR. Per ulteriori informazioni, consulta Esempi di policy per i repository di Amazon ECR e Accesso a un repository Amazon ECR nella Amazon ECR User Guide.

Errore: hai raggiunto il limite di pull rate

Docker Hub limita il numero di richieste pull che gli utenti anonimi e gratuiti di Docker Hub possono effettuare. Se superi i limiti di velocità per le pull request anonime o gratuite degli utenti, ricevi uno dei seguenti errori:

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

Per risolvere questi errori, puoi attendere qualche ora prima di provare un'altra pull request. Se prevedi di inviare costantemente un numero elevato di pull request, consulta il sito Web di Docker Hub per informazioni sui limiti di velocità e sulle opzioni per l'autenticazione e l'aggiornamento del tuo account Docker.

Debug di AWS IoT Greengrass in un container Docker

Per il debug dei problemi relativi a un container Docker, puoi rendere persistenti i log di runtime Greengrass o collegare una shell interattiva al container Docker.

Mantieni i log Greengrass all'esterno del contenitore Docker

Dopo aver fermato un AWS IoT Greengrass contenitore, puoi usare il seguente docker cp comando per copiare i log di Greengrass dal contenitore Docker in una directory di log temporanea.

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

Per mantenere i log anche dopo l'uscita o la rimozione di un contenitore, è necessario eseguire il contenitore Docker dopo aver montato la AWS IoT Greengrass directory tramite bind. /greengrass/v2/logs

Per montare in modo bind-mount la /greengrass/v2/logs directory, esegui una delle seguenti operazioni quando esegui un nuovo contenitore Docker. AWS IoT Greengrass

  • Includi -v /tmp/logs:/greengrass/v2/logs:ro nel tuo comando. docker run

    Modifica il volumes blocco nel file Compose per includere la riga seguente prima di eseguire il docker-compose up comando.

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

Puoi quindi controllare i log /tmp/logs sul tuo host per vedere i log di Greengrass AWS IoT Greengrass mentre è in esecuzione all'interno del contenitore Docker.

Per informazioni sull'esecuzione dei contenitori Greengrass Docker, vedere e Esegui AWS IoT Greengrass in Docker con provisioning manuale Esegui AWS IoT Greengrass in Docker con provisioning automatico

Collega una shell interattiva al contenitore Docker

Quando esegui comandi all'interno del contenitore Docker, tali comandi non vengono acquisiti nei log Docker. docker exec La registrazione dei comandi nei registri Docker può aiutarti a esaminare lo stato del contenitore Greengrass Docker. Esegui una di queste operazioni:

  • Esegui il comando seguente in un terminale separato per collegare l'input, l'output e l'errore standard del tuo terminale al contenitore in esecuzione. Ciò consente di visualizzare e controllare il contenitore Docker dal terminale corrente.

    docker attach container-id
  • Esegui il comando seguente in un terminale separato. Ciò consente di eseguire i comandi in modalità interattiva, anche se il contenitore non è collegato.

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

Per una AWS IoT Greengrass risoluzione generale dei problemi, vedereRisoluzione dei problemi AWS IoT Greengrass V2.