As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Solução de problemas AWS IoT Greengrass em um contêiner Docker
Use as informações a seguir para ajudá-lo a solucionar problemas com a execução AWS IoT Greengrass em um contêiner do Docker e para depurar problemas AWS IoT Greengrass no contêiner do Docker.
Tópicos
Solução de problemas ao executar o contêiner do Docker
Use as informações a seguir para ajudar a solucionar problemas com a execução AWS IoT Greengrass em um contêiner do Docker.
Tópicos
- Erro: Não é possível realizar um login interativo a partir de um dispositivo que não seja um TTY dispositivo
- Erro: Opções desconhecidas: - no-include-email
- Erro: Um firewall está bloqueando o compartilhamento de arquivos entre janelas e os contêineres.
- Erro: ocorreu um erro (AccessDeniedException) ao chamar a GetAuthorizationToken operação: Usuário: arn:aws:iam: ::user/ <user-name>não account-id está autorizado a executar: ecr: on resource: * GetAuthorizationToken
- Erro: você atingiu seu limite de taxa de pull
Erro: Não é possível realizar um login interativo a partir de um dispositivo que não seja um TTY dispositivo
Este erro pode ocorrer ao executar o comando aws ecr get-login-password
. Verifique se você instalou a AWS CLI versão mais recente 2 ou a versão 1. Recomendamos que você use a AWS CLI versão 2. Para obter mais informações, consulte Instalar a AWS CLI no Guia do usuário da AWS Command Line Interface .
Erro: Opções desconhecidas: - no-include-email
Este erro pode ocorrer ao executar o comando aws ecr get-login
. Verifique se você tem a AWS CLI versão mais recente instalada (por exemplo, Executar:pip install awscli
--upgrade --user
). Para obter mais informações, consulte Instalando o AWS Command Line Interface no Microsoft Windows no Guia AWS Command Line Interface do Usuário.
Erro: Um firewall está bloqueando o compartilhamento de arquivos entre janelas e os contêineres.
Esse erro ou uma mensagem Firewall Detected
podem ser recebidos ao executar o Docker em um computador Windows. Isso também pode ocorrer se você estiver conectado em uma rede privada virtual (VPN) e suas configurações de rede estiverem impedindo que o drive compartilhado seja montado. Nessa situação, desligue VPN e execute novamente o contêiner Docker.
Erro: ocorreu um erro (AccessDeniedException) ao chamar a GetAuthorizationToken operação: Usuário: arn:aws:iam: ::user/ <user-name>não account-id
está autorizado a executar: ecr: on resource: * GetAuthorizationToken
Você pode receber esse erro ao executar o aws ecr get-login-password
comando se não tiver permissões suficientes para acessar um ECR repositório da Amazon. Para obter mais informações, consulte Exemplos de políticas de ECR repositório da Amazon e Acesso a um ECR repositório da Amazon no Guia ECRdo usuário da Amazon.
Erro: você atingiu seu limite de taxa de pull
O Docker Hub limita o número de solicitações de pull que usuários anônimos e gratuitos do Docker Hub podem fazer. Se você exceder os limites de taxa para solicitações de pull de usuários anônimos ou gratuitos, você receberá um dos seguintes erros:
-
ERROR: toomanyrequests: Too Many Requests.
-
You have reached your pull rate limit.
Para resolver esses erros, espere algumas horas antes de tentar outra solicitação de pull. Se você planeja enviar um grande número de solicitações de pull, consulte o site do Docker Hub
Depuração em um contêiner AWS IoT Greengrass Docker
Para depurar problemas com um contêiner do Docker, você pode manter os logs de runtime do Greengrass ou anexar um shell interativo ao contêiner do Docker.
Manter os logs do Greengrass fora do contêiner do Docker
Depois de parar um AWS IoT Greengrass contêiner, você pode usar o docker cp
comando a seguir para copiar os registros do Greengrass do contêiner Docker para um diretório de registros temporário.
docker cp
container-id
:/greengrass/v2/logs/tmp/logs
Para manter os registros mesmo após a saída ou remoção de um contêiner, você deve executar o contêiner do AWS IoT Greengrass Docker após a montagem do diretório.
/logs/greengrass/v2
Para vincular e montar o
diretório, faça o seguinte ao executar um novo AWS IoT Greengrass contêiner do Docker.
/logs/greengrass/v2
-
Inclua
-v
no comando/tmp/logs
:
/logs:ro/greengrass/v2
docker run
.Modifique o bloco
volumes
no arquivo Compose para incluir a linha a seguir antes de executar o comandodocker-compose up
.volumes: -
/tmp/logs
:
/logs:ro/greengrass/v2
Em seguida, você pode verificar seus registros
em seu host para ver os registros do Greengrass enquanto AWS IoT Greengrass está sendo executado dentro do contêiner do Docker./tmp/logs
Para informações sobre a execução de contêineres do Docker do Greengrass, consulte Execute o AWS IoT Greengrass no Docker com provisionamento manual e Execute AWS IoT Greengrass no Docker com provisionamento automático
Anexar um shell interativo ao contêiner do Docker
Quando você usa docker exec
para executar comandos dentro do contêiner do Docker, esses comandos não são capturados nos logs do Docker. Registrar seus comandos nos logs do Docker ajuda a investigar o estado do contêiner do Docker do Greengrass. Execute um destes procedimentos:
-
Execute o seguinte comando em um terminal separado para conectar a entrada, a saída e o erro padrão do terminal ao contêiner em execução. Isso permite visualizar e controlar o contêiner do Docker a partir do terminal atual.
docker attach
container-id
-
Execute o comando a seguir em um terminal separado. Isso permite executar os comandos no modo interativo, mesmo que o contêiner não esteja conectado.
docker exec -it
container-id
sh -c "command
> /proc/1/fd/1"
Para AWS IoT Greengrass solução geral de problemas, consulteSolução de problemas AWS IoT Greengrass V2.