Opcional: configurar o contêiner do Docker para IDT para o AWS IoT Greengrass - AWS IoT Greengrass

AWS IoT Greengrass Version 1 entrou na fase de vida útil prolongada em 30 de junho de 2023. Para obter mais informações, consulte política de manutenção do AWS IoT Greengrass V1. Após essa data, AWS IoT Greengrass V1 não lançaremos atualizações que forneçam recursos, aprimoramentos, correções de erros ou patches de segurança. Os dispositivos que funcionam AWS IoT Greengrass V1 não serão interrompidos e continuarão operando e se conectando à nuvem. É altamente recomendável que você migre para AWS IoT Greengrass Version 2, o que adiciona novos recursos significativos e suporte para plataformas adicionais.

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á.

Opcional: configurar o contêiner do Docker para IDT para o AWS IoT Greengrass

O AWS IoT Greengrass fornece uma imagem do Docker e um arquivo do Docker que facilitam a execução do software do AWS IoT Greengrass Core em um contêiner do Docker. Depois de configurar o contêiner do AWS IoT Greengrass, é possível executar testes de IDT. No momento, somente arquiteturas x86_64 do Docker são compatíveis com a execução do IDT para o AWS IoT Greengrass.

Esse atributo exige o IDT v2.3.0 ou posterior.

O processo de configuração do contêiner do Docker para executar testes de IDT depende se você usa a imagem do Docker ou o arquivo do Docker fornecidos pelo AWS IoT Greengrass.

  • Use a imagem do Docker. A imagem do Docker tem as dependências e o software do AWS IoT Greengrass Core instalados.

  • Use o arquivo do Docker. O arquivo do Docker contém o código-fonte que pode ser usado para criar imagens de contêiner do AWS IoT Greengrass personalizadas. A imagem pode ser modificada para funcionar com diferentes arquiteturas de plataforma ou para reduzir o tamanho da imagem.

    nota

    O AWS IoT Greengrass não fornece Dockerfiles ou imagens do Docker para a versão 1.11.1 do software AWS IoT Greengrass Core. Para executar testes de IDT nas suas próprias imagens de contêiner personalizadas, a imagem deve incluir as dependências definidas no arquivo do Docker fornecido pelo AWS IoT Greengrass.

Os atributos a seguir não estão disponíveis ao executar o AWS IoT Greengrass em um contêiner do Docker:

  • Conectores executados no modo de contêiner do Greengrass. Para executar um conector em um contêiner do Docker, o conector deve ser executado no modo Sem contêiner. Para localizar conectores compatíveis com o modo Sem contêiner consulte Conectores do Greengrass fornecidos pela AWS. Alguns desses conectores têm um parâmetro de modo de isolamento que você deve definir como Sem contêiner.

  • Recursos de volume e dispositivo locais. Suas funções do Lambda definidas pelo usuário executadas no contêiner do Docker devem acessar dispositivos e volumes diretamente no núcleo.

Configurar a imagem do Docker fornecida pelo AWS IoT Greengrass

Siga estas etapas a fim de configurar a imagem do Docker do AWS IoT Greengrass para executar testes de IDT.

Pré-requisitos

Antes de começar este tutorial, você deve fazer o seguinte.

  • Você deve instalar os seguintes softwares e versões em seu computador host com base na versão AWS Command Line Interface (AWS CLI) que você escolher.

    AWS CLI version 2
    • Docker, versão 18.09 ou posterior. Versões anteriores também podem funcionar, mas recomendamos a versão 18.09 ou posterior.

    • AWS CLI versão 2.0.0 ou posterior

      nota

      Para atualizar para uma versão 2 mais recente do AWS CLI em um computador Windows, você deve repetir o processo de instalação do MSI.

    AWS CLI version 1
    • Docker, versão 18.09 ou posterior. Versões anteriores também podem funcionar, mas recomendamos a versão 18.09 ou posterior.

    • Python, versão 3.6 ou posterior.

    • pip versão 18.1 ou posterior.

    • AWS CLI versão 1.17.10 ou posterior

      • Para instalar a versão 1 do AWS CLI, consulte Instalando a versão 1 do AWS CLI.

      • Para configurar a AWS CLI, consulte Configurando a AWS CLI.

      • Para atualizar para a versão mais recente da versão 1 do AWS CLI, execute o comando a seguir.

        pip install awscli --upgrade --user
      nota

      Se você usa a instalação do MSI da versão 1 do AWS CLI no Windows, esteja ciente do seguinte:

      • Se a instalação da versão 1 do AWS CLI em instalar o botocore falhar, tente usar a instalação do Python e pip.

      • Para atualizar para uma versão 1 mais recente do AWS CLI, repita o processo de instalação MSI.

  • Para acessar os recursos do Amazon Elastic Container Registry (Amazon ECR), você deve conceder a seguinte permissão.

    • O Amazon ECR exige que os usuários concedam a permissão ecr:GetAuthorizationToken por meio de uma política do IAM AWS Identity and Access Management antes que possam fazer a autenticação para um registro e enviar ou extrair imagens de um repositório do Amazon ECR. Para obter mais informações, consulte Exemplos de políticas do repositório do Amazon ECR e Acessando um repositório do Amazon ECR no Guia do usuário do Amazon Elastic Container Registry.

 

  1. Faça download da imagem do Docker e configure o contêiner. Você pode fazer download da imagem pré-criada no Hub do Docker ou no Amazon Elastic Container Registry (Amazon ECR) e executá-la em plataformas do Windows, macOS e Linux (x86_64).

    Para fazer download da imagem do Docker do Amazon ECR, conclua todas as etapas em Etapa 1: obtenha a imagem de contêiner do AWS IoT Greengrass do Amazon ECR. Depois, retorne a este tópico para continuar a configuração.

  2. Somente usuários do Linux: verifique se o usuário que executa o IDT tem permissão para executar comandos do Docker. Para obter mais informações, consulte Manage Docker as a non-root user na documentação do Docker.

  3. Para executar o contêiner do AWS IoT Greengrass, use o comando para seu sistema operacional:

    Linux
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ -v <host-path-to-kernel-config-file>:<container-path> \ <image-repository>:<tag>
    • Substitua <host-path-to-kernel-config-file> pelo caminho para o arquivo de configuração do kernel no host e <container-path> pelo caminho onde o volume está montado no contêiner.

      O arquivo de configuração do kernel no host geralmente está localizado em /proc/config.gz ou em /boot/config-<kernel-release-date>. É possível executar uname -r para encontrar o valor de <kernel-release-date>.

      Exemplo: para montar o arquivo de configuração de /boot/config-<kernel-release-date>

      -v /boot/config-4.15.0-74-generic:/boot/config-4.15.0-74-generic \

      Exemplo: para montar o arquivo de configuração de proc/config.gz

      -v /proc/config.gz:/proc/config.gz \
    • Substitua <image-repository>:<tag> no comando pelo nome do repositório e pela tag da imagem de destino.

      Exemplo: para apontar para a versão mais recente do software do AWS IoT Greengrass Core

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      Para obter a lista de imagens do Docker do AWS IoT Greengrass, execute o comando a seguir.

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    macOS
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ <image-repository>:<tag>
    • Substitua <image-repository>:<tag> no comando pelo nome do repositório e pela tag da imagem de destino.

      Exemplo: para apontar para a versão mais recente do software do AWS IoT Greengrass Core

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      Para obter a lista de imagens do Docker do AWS IoT Greengrass, execute o seguinte comando:

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    Windows
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ <image-repository>:<tag>
    • Substitua <image-repository>:<tag> no comando pelo nome do repositório e pela tag da imagem de destino.

      Exemplo: para apontar para a versão mais recente do software do AWS IoT Greengrass Core

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      Para obter a lista de imagens do Docker do AWS IoT Greengrass, execute o seguinte comando:

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    Importante

    Ao testar com o IDT, não inclua o argumento --entrypoint /greengrass-entrypoint.sh \ usado para executar a imagem para uso geral do AWS IoT Greengrass.

  4. Próxima etapa: configure as credenciais da AWS e o arquivo device.json.

Configurar o arquivo do Docker fornecido pelo AWS IoT Greengrass

Siga estas etapas a fim de configurar a imagem do Docker criada com o arquivo do Docker do AWS IoT Greengrass para executar testes de IDT.

  1. Em AWS IoT Greengrass Software Docker, faça download do pacote do arquivo do Docker para o computador host e extraia-o.

  2. Aberto README.md. As próximas três etapas se referem a seções desse arquivo.

  3. Verifique se você atende aos requisitos na seção Pré-requisitos.

  4. Somente usuários do Linux: conclua as etapas Habilitar as proteções symlink e hardlink e Habilitar o encaminhamento da rede IPv4.

  5. Para criar a imagem do Docker, conclua todas as etapas na Etapa 1. Crie a imagem do Docker AWS IoT Greengrass. Depois, retorne a este tópico para continuar a configuração.

  6. Para executar o contêiner do AWS IoT Greengrass, use o comando para seu sistema operacional:

    Linux
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ -v <host-path-to-kernel-config-file>:<container-path> \ <image-repository>:<tag>
    • Substitua <host-path-to-kernel-config-file> pelo caminho para o arquivo de configuração do kernel no host e <container-path> pelo caminho onde o volume está montado no contêiner.

      O arquivo de configuração do kernel no host geralmente está localizado em /proc/config.gz ou em /boot/config-<kernel-release-date>. É possível executar uname -r para encontrar o valor de <kernel-release-date>.

      Exemplo: para montar o arquivo de configuração de /boot/config-<kernel-release-date>

      -v /boot/config-4.15.0-74-generic:/boot/config-4.15.0-74-generic \

      Exemplo: para montar o arquivo de configuração de proc/config.gz

      -v /proc/config.gz:/proc/config.gz \
    • Substitua <image-repository>:<tag> no comando pelo nome do repositório e pela tag da imagem de destino.

      Exemplo: para apontar para a versão mais recente do software do AWS IoT Greengrass Core

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      Para obter a lista de imagens do Docker do AWS IoT Greengrass, execute o comando a seguir.

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    macOS
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ <image-repository>:<tag>
    • Substitua <image-repository>:<tag> no comando pelo nome do repositório e pela tag da imagem de destino.

      Exemplo: para apontar para a versão mais recente do software do AWS IoT Greengrass Core

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      Para obter a lista de imagens do Docker do AWS IoT Greengrass, execute o seguinte comando:

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    Windows
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ <image-repository>:<tag>
    • Substitua <image-repository>:<tag> no comando pelo nome do repositório e pela tag da imagem de destino.

      Exemplo: para apontar para a versão mais recente do software do AWS IoT Greengrass Core

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      Para obter a lista de imagens do Docker do AWS IoT Greengrass, execute o seguinte comando:

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    Importante

    Ao testar com o IDT, não inclua o argumento --entrypoint /greengrass-entrypoint.sh \ usado para executar a imagem para uso geral do AWS IoT Greengrass.

  7. Próxima etapa: configure as credenciais da AWS e o arquivo device.json.

Solucionar problemas da configuração do contêiner do Docker para o IDT do AWS IoT Greengrass

Use as informações a seguir para ajudar a solucionar problemas comuns com a execução de um contêiner do Docker para o IDT de testes do AWS IoT Greengrass.

AVISO: erro ao carregar o arquivo de configuração:/home/user/.docker/config.json - stat /home/<user>/.docker/config.json: permissão negada

Se você receber esse erro ao executar comandos docker no Linux, execute o comando a seguir. Substitua <user> no comando a seguir pelo usuário que executa o IDT.

sudo chown <user>:<user> /home/<user>/.docker -R sudo chmod g+rwx /home/<user>/.docker -R