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á.
Execute AWS IoT Greengrass em um contêiner Docker com provisionamento automático de recursos
Este tutorial mostra como instalar e executar o software AWS IoT Greengrass Core em um contêiner Docker com AWS recursos provisionados automaticamente e ferramentas de desenvolvimento local. Você pode usar esse ambiente de desenvolvimento para explorar os AWS IoT Greengrass recursos em um contêiner do Docker. O software requer AWS credenciais para provisionar esses recursos e implantar as ferramentas de desenvolvimento local.
Se você não puder fornecer AWS credenciais para o contêiner, poderá provisionar os AWS recursos que o dispositivo principal precisa para operar. Você também pode implantar as ferramentas de desenvolvimento em um dispositivo principal para usar como dispositivo de desenvolvimento. Isso permite que você forneça menos permissões ao dispositivo ao executar o contêiner. Para obter mais informações, consulte Execute AWS IoT Greengrass em um contêiner Docker com provisionamento manual de recursos.
Pré-requisitos
Para concluir este tutorial, você precisa do seguinte.
-
Um Conta da AWS. Se você não tiver uma, consulte Configurar um Conta da AWS.
-
Um AWS IAM usuário com permissões para provisionar os IAM recursos AWS IoT e para um dispositivo principal do Greengrass. O instalador do software AWS IoT Greengrass Core usa suas AWS credenciais para provisionar automaticamente esses recursos. Para obter informações sobre a IAM política mínima para provisionar recursos automaticamente, consultePolítica mínima de IAM para o instalador provisionar recursos.
-
Uma imagem AWS IoT Greengrass do Docker. Você pode criar uma imagem a partir do AWS IoT Greengrass Dockerfile.
-
O computador host em que você executa o contêiner Docker deve atender aos seguintes requisitos:
-
Um sistema operacional baseado em Linux com conexão à Internet.
-
Docker Engine
versão 18.09 ou posterior. -
(Opcional) Docker Compose
versão 1.22 ou posterior. O Docker Compose é necessário somente se você quiser usar o Docker Compose CLI para executar suas imagens do Docker.
-
Configurar as credenciais da AWS
Nesta etapa, você cria um arquivo de credencial no computador host que contém suas credenciais AWS
de segurança. Ao executar a imagem do AWS IoT Greengrass Docker, você deve montar a pasta que contém esse arquivo de credencial /root/.aws/
no contêiner do Docker. O AWS IoT Greengrass instalador usa essas credenciais para provisionar recursos no seu Conta da AWS. Para obter informações sobre a IAM política mínima exigida pelo instalador para provisionar recursos automaticamente, consultePolítica mínima de IAM para o instalador provisionar recursos.
-
Recupere um dos seguintes.
-
Credenciais de longo prazo para um IAM usuário. Para obter informações sobre como recuperar credenciais de longo prazo, consulte Gerenciamento de chaves de acesso para IAM usuários no Guia do IAMusuário.
-
(Recomendado) Credenciais temporárias para uma IAM função. Para obter informações sobre como recuperar credenciais temporárias, consulte Usando credenciais de segurança temporárias com o AWS CLI no Guia do IAM Usuário.
-
-
Crie uma pasta onde você coloca seu arquivo de credencial.
mkdir ./greengrass-v2-credentials
-
Use um editor de texto para criar um arquivo de configuração nomeado
credentials
na./greengrass-v2-credentials
pasta.Por exemplo, você pode executar o comando a seguir para usar o GNU nano para criar o
credentials
arquivo.nano ./greengrass-v2-credentials/credentials
-
Adicione suas AWS credenciais ao
credentials
arquivo no formato a seguir.[default] aws_access_key_id =
AKIAIOSFODNN7EXAMPLE
aws_secret_access_key =wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token =AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
aws_session_token
Inclua somente para credenciais temporárias.
Importante
Remova o arquivo de credencial do computador host depois de iniciar o AWS IoT Greengrass contêiner. Se você não remover o arquivo de credenciais, suas AWS credenciais permanecerão montadas dentro do contêiner. Para obter mais informações, consulte Execute o software AWS IoT Greengrass principal em um contêiner.
Criar um arquivo de ambiente
Este tutorial usa um arquivo de ambiente para definir as variáveis de ambiente que serão passadas para o instalador do software AWS IoT Greengrass Core dentro do contêiner Docker. Você também pode usar o --env
argumento -e
oudocker run
comando para definir variáveis de ambiente no contêiner do Docker ou definir as variáveis em um environment
blocodocker-compose.yml
arquivo.
-
Use um editor de texto para criar um arquivo de ambiente chamado
.env
.Por exemplo, em um sistema baseado em Linux, você pode executar o comando a seguir para usar o GNU nano para criar o
.env
no diretório atual.nano .env
-
Copie o conteúdo a seguir no arquivo.
GGC_ROOT_PATH=
AWS_REGION=/greengrass/v2
region
PROVISION=true THING_NAME=MyGreengrassCore
THING_GROUP_NAME=MyGreengrassCoreGroup
TES_ROLE_NAME=GreengrassV2TokenExchangeRole
TES_ROLE_ALIAS_NAME=GreengrassCoreTokenExchangeRoleAlias
COMPONENT_DEFAULT_USER=ggc_user:ggc_groupEm seguida, substitua os valores a seguir.
-
. A pasta raiz do Greengrass que você deseja usar para instalação. Você usa a variável de/greengrass/v2
GGC_ROOT
ambiente para definir esse valor. -
region
. O Região da AWS local onde você criou os recursos. -
MyGreengrassCore
. O nome da AWS IoT coisa. Se a coisa não existir, o instalador a cria. O instalador baixa os certificados para autenticar a AWS IoT coisa. -
MyGreengrassCoreGroup
. O nome do grupo de AWS IoT coisas. Se o grupo de coisas não existir, o instalador o cria e adiciona a coisa a ele. Se o grupo de coisas existir e tiver uma implantação ativa, o dispositivo principal baixará e executará o software especificado pela implantação. -
GreengrassV2TokenExchangeRole
. Substitua pelo nome da função de troca de IAM tokens que permite que o dispositivo principal do Greengrass obtenha credenciais temporárias AWS . Se a função não existir, o instalador a cria, cria e anexa uma política chamadaGreengrassV2TokenExchangeRole
Acesso. Para obter mais informações, consulte Autorize os dispositivos principais a interagir com os serviços AWS. -
GreengrassCoreTokenExchangeRoleAlias
. O alias da função de troca de tokens. Se o alias da função não existir, o instalador o cria e o direciona para a função de troca de IAM tokens que você especificar. Para obter mais informações, consulte
nota
Você pode definir a variável de
DEPLOY_DEV_TOOLS
ambientetrue
para implantar o CLIcomponente Greengrass, que permite desenvolver componentes personalizados dentro do contêiner Docker. Recomendamos que você use esse componente somente em ambientes de desenvolvimento, não em ambientes de produção. Esse componente fornece acesso a informações e operações que você normalmente não precisará em um ambiente de produção. Siga o princípio do menor privilégio implantando esse componente somente nos dispositivos principais onde você precisar dele. -
Execute o software AWS IoT Greengrass principal em um contêiner
Este tutorial mostra como iniciar a imagem do Docker que você criou em um contêiner do Docker. Você pode usar o Docker CLI ou o Docker Compose CLI para executar a imagem do software AWS IoT Greengrass Core em um contêiner do Docker.
Próximas etapas
AWS IoT Greengrass O software principal agora está sendo executado em um contêiner Docker. Execute o comando a seguir para recuperar o ID do contêiner em execução no momento.
docker ps
Em seguida, você pode executar o comando a seguir para acessar o contêiner e explorar o software AWS IoT Greengrass principal executado dentro do contêiner.
docker exec -it
container-id
/bin/bash
Para obter informações sobre a criação de um componente simples, consulte Etapa 4: desenvolver e testar um componente em seu dispositivo em Tutorial: Conceitos básicos do AWS IoT Greengrass V2
nota
Quando você usa docker exec
para executar comandos dentro do contêiner do Docker, esses comandos não são registrados nos registros do Docker. Para registrar seus comandos nos registros do Docker, anexe um shell interativo ao contêiner do Docker. Para obter mais informações, consulte Anexe um shell interativo ao contêiner Docker.
O arquivo de log AWS IoT Greengrass principal é chamado greengrass.log
e está localizado em
. Os arquivos de log de componentes também estão localizados no mesmo diretório. Para copiar os registros do Greengrass para um diretório temporário no host, execute o seguinte comando:
/logs/greengrass/v2
docker cp
container-id
:/greengrass/v2/logs/tmp/logs
Se você quiser manter os registros após a saída ou remoção de um contêiner, recomendamos que você vincule e monte somente o
diretório no diretório de registros temporários no host, em vez de montar todo o diretório Greengrass. Para obter mais informações, consulte Persiste os registros do Greengrass fora do contêiner Docker.
/logs/greengrass/v2
Para interromper a execução de um contêiner AWS IoT Greengrass Docker, execute docker
stop
oudocker-compose -f docker-compose.yml stop
. Essa ação é enviada SIGTERM
para o processo do Greengrass e encerra todos os processos associados que foram iniciados no contêiner. O contêiner Docker é inicializado com o docker-init
executável como processo PID 1, o que ajuda a remover qualquer processo zumbi restante. Para obter mais informações, consulte Especificar um processo de inicialização
Para obter informações sobre como solucionar problemas com a execução AWS IoT Greengrass em um contêiner Docker, consulteSolução de problemas do AWS IoT Greengrass em um contêiner do Docker.