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 do AWS IoT Greengrass em um contêiner do 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 com a execução do contêiner Docker
Use as informações a seguir para ajudá-lo a solucionar problemas comuns com a execução do AWS IoT Greengrass em um contêiner do Docker.
Tópicos
- Erro: não é possível realizar um login interativo em um dispositivo não TTY
- 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:: account-id:user/ <user-name>não está autorizado a realizar: ecr: on resource: * GetAuthorizationToken
- Erro: Você atingiu seu limite de taxa de pull
Erro: não é possível realizar um login interativo em um dispositivo não TTY
Esse erro pode ocorrer quando você executa o aws ecr get-login-password
comando. Verifique se você instalou a versão 2 ou a versão 1 mais recente do AWS CLI. É recomendável usar a versão 2 mais recente do AWS CLI. 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
Esse erro pode ocorrer quando você executa o aws ecr get-login
comando. Verifique se você tem a versão mais recente da AWS CLI instalada (por exemplo, execute: pip install awscli
--upgrade --user
). Para obter informações, consulte Instalar a AWS Command Line Interface no Microsoft Windows no Guia do usuário do AWS Command Line Interface.
Erro: Um firewall está bloqueando o compartilhamento de arquivos entre janelas e os contêineres.
Você pode receber esse erro ou uma Firewall Detected
mensagem ao executar o Docker em um computador Windows. Esse erro também poderá ocorrer se você estiver conectado em uma rede privada virtual (VPN), e as configurações de rede estiverem impedindo a montagem da unidade compartilhada. Nesse caso, desative a VPN e execute novamente o contêiner do Docker.
Erro: ocorreu um erro (AccessDeniedException) ao chamar a GetAuthorizationToken operação: Usuário: arn:aws:iam:: account-id:user/
<user-name>não está autorizado a realizar: ecr: on resource: * GetAuthorizationToken
É possível que você receba esse erro ao executar o comando aws ecr get-login-password
se não tiver permissões suficientes para acessar um repositório do Amazon ECR. Para obter mais informações, consulte Exemplos de políticas de repositório do Amazon ECR e Como acessar um repositório do Amazon ECR no Guia do usuário do Amazon ECR.
Erro: Você atingiu seu limite de taxa de pull
O Docker Hub limita o número de pull requests que usuários anônimos e gratuitos do Docker Hub podem fazer. Se você exceder os limites de taxa para pull requests de usuários anônimos ou gratuitos, receberá um dos seguintes erros:
-
ERROR: toomanyrequests: Too Many Requests.
-
You have reached your pull rate limit.
Para resolver esses erros, você pode esperar algumas horas antes de tentar outra pull request. Se você planeja enviar consistentemente um grande número de pull requests, consulte o site do Docker Hub
Depurar o AWS IoT Greengrass em um contêiner do 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.
Persiste os registros do Greengrass fora do contêiner 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
em seu/tmp/logs
:
/logs:ro/greengrass/v2
docker run
comando.Modifique o
volumes
bloco no arquivo Compose para incluir a seguinte linha antes de executar odocker-compose up
comando.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 obter informações sobre a execução de contêineres do Greengrass Docker, consulte e Execute AWS IoT Greengrass no Docker com provisionamento manual Execute AWS IoT Greengrass no Docker com provisionamento automático
Anexe um shell interativo ao contêiner Docker
Quando você usa docker exec
para executar comandos dentro do contêiner do Docker, esses comandos não são capturados nos registros do Docker. Registrar seus comandos nos registros do Docker pode ajudá-lo a investigar o estado do contêiner Greengrass Docker. Execute um destes procedimentos:
-
Execute o comando a seguir em um terminal separado para conectar a entrada, a saída e o erro padrão do seu terminal ao contêiner em execução. Isso permite que você visualize e controle o contêiner Docker a partir do seu terminal atual.
docker attach
container-id
-
Execute o comando a seguir em um terminal separado. Isso permite que você execute seus 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.