

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

# Implante aplicativos em contêineres em AWS IoT Greengrass V2 execução como um contêiner Docker
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container"></a>

*Salih Bakir, Giuseppe Di Bella e Gustav Svalander, da Amazon Web Services*

## Resumo
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-summary"></a>

AWS IoT Greengrass Version 2, quando implantado como um contêiner Docker, não oferece suporte nativo à execução de contêineres de aplicativos Docker. Esse padrão mostra como criar uma imagem de contêiner personalizada com base na versão mais recente AWS IoT Greengrass V2 que habilita a funcionalidade Docker-in-Docker (DiND). Com o DiND, você pode executar aplicativos em contêineres dentro do ambiente. AWS IoT Greengrass V2 

Você pode implantar esse padrão como uma solução independente ou integrá-lo a plataformas de orquestração de contêineres, como o Amazon ECS Anywhere. Em qualquer modelo de implantação, você mantém a AWS IoT Greengrass V2 funcionalidade completa, incluindo os recursos de processamento do AWS IoT SiteWise Edge, ao mesmo tempo em que permite implantações escaláveis baseadas em contêineres. 

## Pré-requisitos e limitações
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS.
+ Para AWS IoT Greengrass Version 2 pré-requisitos gerais, consulte [Pré-requisitos](https://docs.aws.amazon.com/greengrass/v2/developerguide/getting-started-prerequisites.html) na documentação. AWS IoT Greengrass Version 2 
+ Docker Engine, instalado e configurado no Linux, macOS ou Windows.
+ Docker Compose (se você usar a interface de linha de comando (CLI) do Docker Compose para executar imagens do Docker).
+ Um sistema operacional Linux.
+ Um hipervisor com um servidor host que oferece suporte à virtualização.
+ Requisitos do sistema:
  + 2 GB de RAM (mínimo)
  + 5 GB de espaço em disco disponível (mínimo)
  + Para o AWS IoT SiteWise Edge, uma CPU quad-core x86\$164 com 16 GB de RAM e 50 GB de espaço em disco disponível. Para obter mais informações sobre processamento de AWS IoT SiteWise dados, consulte [Requisitos do pacote de processamento de dados](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/configure-gateway-ggv2.html#w2aac17c19c13b7) na AWS IoT SiteWise documentação.

**Versões do produto**
+ AWS IoT Greengrass Version 2 versão 2.5.3 ou posterior
+ Docker-in-Docker versão 1.0.0 ou posterior
+ Docker Compose versão 1.22 ou posterior
+ Docker Engine versão 20.10.12 ou posterior

**Limitações**
+ Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte [AWS Services by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para endpoints específicos, consulte [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e clique no link correspondente ao serviço desejado.

## Arquitetura
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-architecture"></a>

**Pilha de tecnologias de destino**
+ **Fontes de dados** — dispositivos de IoT, sensores ou equipamentos industriais que geram dados para processamento
+ **AWS IoT Greengrass V2**— Funcionando como um contêiner Docker com D-in-D recursos, implantado em infraestruturas de ponta
+ Aplicativos em **contêineres — aplicativos** personalizados executados no AWS IoT Greengrass V2 ambiente como contêineres Docker aninhados
+ **(Opcional) Amazon ECS** Anywhere — orquestração de contêineres que gerencia a implantação do contêiner AWS IoT Greengrass V2 
+ **Outros Serviços da AWS** — AWS IoT Core, AWS IoT SiteWise, e outros Serviços da AWS para processamento e gerenciamento de dados

**Arquitetura de destino**

O diagrama a seguir mostra um exemplo de arquitetura de implantação de destino que usa o Amazon ECS Anywhere, que é uma ferramenta de gerenciamento de contêineres.

![\[Arquitetura de implantação usando o Amazon ECS Anywhere.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2ecf5354-40e0-4fd9-9798-086719059784/images/5ed2652e-9604-4809-8962-b167e1991658.png)


O diagrama mostra o seguinte fluxo de trabalho:

**1: Armazenamento de imagens de contêineres** — O Amazon ECR armazena as imagens de AWS IoT Greengrass contêineres e quaisquer contêineres de aplicativos personalizados necessários para o processamento de bordas.

**2** e **3: Implantação de contêineres** — O Amazon ECS Anywhere implanta a imagem AWS IoT Greengrass do contêiner do Amazon ECR no ponto de presença, gerenciando o ciclo de vida do contêiner e o processo de implantação.

**4: Implantação de componentes** — O AWS IoT Greengrass núcleo implantado implanta automaticamente seus componentes relevantes com base em sua configuração. Os componentes incluem o AWS IoT SiteWise Edge e outros componentes necessários de processamento de borda dentro do ambiente em contêineres.

**5: Ingestão de dados** — Depois de totalmente configurado, AWS IoT Greengrass começa a ingerir dados de telemetria e sensores de várias fontes de dados de IoT no ponto de borda.

**6: Processamento de dados e integração na nuvem** — O AWS IoT Greengrass núcleo conteinerizado processa os dados localmente usando seus componentes implantados (incluindo o AWS IoT SiteWise Edge para dados industriais). Em seguida, ele envia os dados processados aos Nuvem AWS serviços para análise e armazenamento adicionais.

## Ferramentas
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-tools"></a>

**Serviços da AWS**
+ [O Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch-type-external.html) Anywhere ajuda você a implantar, usar e gerenciar tarefas e serviços do Amazon ECS em sua própria infraestrutura.
+ [O Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) fornece capacidade de computação escalável no. Nuvem AWS Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.
+ O [Amazon Elastic Container Registry (Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) é um serviço gerenciado de registro de imagens de contêineres seguro, escalável e confiável.
+ [AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/what-is-iot-greengrass.html) é um serviço de nuvem e runtime de borda da Internet das Coisas (IoT) de código aberto que ajuda você a criar, implantar e gerenciar aplicações de IoT em seus dispositivos.
+ O [AWS IoT SiteWise](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/what-is-sitewise.html) auxilia na coleta, na modelagem, na análise e na visualização de dados de equipamentos industriais em grande escala.

**Outras ferramentas**
+ O [Docker](https://www.docker.com/) é um conjunto de produtos de plataforma como serviço (PaaS) que usam a virtualização no nível do sistema operacional para fornecer software em contêineres.
+ O [Docker Compose](https://docs.docker.com/compose/) é uma ferramenta para definir e executar aplicações com diversos contêineres.
+ [O Docker Engine](https://docs.docker.com/engine/) é uma tecnologia de conteinerização de código aberto para criar e armazenar aplicativos.

**Repositório de código**

O código desse padrão está disponível no Docker-in-Docker repositório GitHub [AWS IoT Greengrass v2](https://github.com/aws-samples/aws-iot-greengrass-docker-in-docker).

## Épicos
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-epics"></a>

### Crie a AWS IoT Greengrass V2 Docker-in-Docker imagem
<a name="build-the-gg2-docker-in-docker-image"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clone e navegue até o repositório. | Para clonar o repositório, use o seguinte comando: `git clone https://github.com/aws-samples/aws-iot-greengrass-v2-docker-in-docker.git`Para navegar até o `docker` diretório, use o seguinte comando:`cd aws-iot-greengrass-v2-docker-in-docker/docker` | DevOps engenheiro, AWS DevOps | 
| Crie a imagem do Docker. | Para criar a imagem do Docker com a versão padrão (mais recente), execute o seguinte comando:`docker build -t x86_64/aws-iot-greengrass:latest .`Ou, para criar a imagem do Docker com uma versão específica, execute o seguinte comando:`docker build --build-arg GREENGRASS_RELEASE_VERSION=2.12.0 -t x86_64/aws-iot-greengrass:2.12.0 .`Para verificar a compilação, execute o seguinte comando:`docker images \| grep aws-iot-greengrass`  | AWS DevOps, DevOps engenheiro, desenvolvedor de aplicativos | 
| (Opcional) Envie para o Amazon ECR. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | Desenvolvedor de aplicativos, AWS DevOps, DevOps engenheiro | 

### Configurar AWS credenciais
<a name="configure-aws-credentials"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Selecione o método de autenticação. | Escolha uma das seguintes opções:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | Administrador da AWS | 
| Configure o método de autenticação. | Para o método de autenticação selecionado, use as seguintes diretrizes de configuração:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | Administrador da AWS | 

### Execute com o Docker Compose
<a name="run-with-docker-compose"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure `docker-compose.yml`. | Atualize o `docker-compose.yml` arquivo com as variáveis de ambiente da seguinte forma:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | DevOps engenheiro | 
| Inicie e verifique o contêiner. | Para começar em primeiro plano, execute o seguinte comando:`docker-compose up --build`Ou, para começar em segundo plano, execute o seguinte comando:`docker-compose up --build -d`Para verificar o status, execute o seguinte comando:`docker-compose ps`Para monitorar os registros, execute o seguinte comando:`docker-compose logs -f` | DevOps engenheiro | 

### Execute com o Docker CLI
<a name="run-with-docker-cli"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Execute o contêiner com a CLI do Docker. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | DevOps engenheiro | 
| Verifique o contêiner. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | DevOps engenheiro | 

### Gerencie aplicativos em contêineres
<a name="manage-containerized-applications"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implemente aplicativos. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | Desenvolvedor de aplicativos | 
| Acesse e teste Docker-in-Docker. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | DevOps engenheiro | 

### (Opcional) Integre com o Amazon ECS Anywhere
<a name="optional-integrate-with-ecs-anywhere"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o cluster Amazon ECS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | Administrador da AWS | 
| Implante a tarefa do Amazon ECS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | Administrador da AWS | 

### Pare e limpe
<a name="stop-and-cleanup"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Pare o contêiner. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | DevOps engenheiro | 

## Solução de problemas
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| O contêiner não inicia com erros de permissão. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)`--privileged`concede privilégios estendidos ao contêiner. | 
| O provisionamento falha com erros de credencial. | Para verificar se as credenciais estão configuradas corretamente, use as seguintes etapas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)Certifique-se de que as permissões do IAM incluam `iot:CreateThing` `iot:CreatePolicy``iot:AttachPolicy`,`iam:CreateRole`,, `iam:AttachRolePolicy` e. | 
| Não é possível conectar-se ao daemon do Docker dentro do contêiner. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | 
| O contêiner fica sem espaço em disco. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)Garanta espaço mínimo em disco: 5 GB para operações básicas e 50 GB para o AWS IoT SiteWise Edge | 
| Problemas de construção. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html) | 
| Problemas de conectividade de rede. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)Verifique se o firewall permite tráfego de saída HTTPS (443) e MQTT (8883). | 
| Os componentes do Greengrass falham na implantação. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)Verifique os registros específicos do componente no `/greengrass/v2/logs/` diretório. | 
| O contêiner sai imediatamente após o início. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.html)Verifique se todas as variáveis de ambiente necessárias estão definidas corretamente se`PROVISION=true`. Certifique-se de que o `--init` sinalizador seja usado ao iniciar o contêiner. | 

## Recursos relacionados
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-resources"></a>

**AWS recursos**
+ [Amazon Elastic Container Service](https://aws.amazon.com/ecs/)
+ [Configure o processamento de dados AWS IoT SiteWise periféricos para modelos e ativos](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/edge-processing.html)
+ [O que é AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/what-is-iot-greengrass.html)

**Outros recursos**
+ [Documentação do Docker](https://docs.docker.com/)

## Mais informações
<a name="deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container-additional"></a>
+ Para o processamento de dados do AWS IoT SiteWise Edge, o Docker deve estar disponível no AWS IoT Greengrass ambiente.
+ Para executar um contêiner aninhado, você deve executar o AWS IoT Greengrass contêiner com credenciais de nível de administrador.