Criar a imagem de contêiner do AWS IoT Greengrass a partir de um Dockerfile - AWS IoT Greengrass

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

Criar a imagem de contêiner do AWS IoT Greengrass a partir de um Dockerfile

A AWS fornece um Dockerfile que você pode baixar e usar para executar o software de núcleo do AWS IoT Greengrass em um contêiner do Docker. Os Dockerfiles contêm código-fonte para criar imagens de contêiner do AWS IoT Greengrass.

Antes de criar uma imagem de contêiner do AWS IoT Greengrass, é necessário configurar o Dockerfile para selecionar a versão do software de núcleo do AWS IoT Greengrass que você deseja instalar. Também é possível configurar variáveis de ambiente para escolher como provisionar recursos durante a instalação e personalizar outras opções de instalação. Esta seção descreve como configurar e criar uma imagem do Docker do AWS IoT Greengrass a partir de um Dockerfile.

Baixar o pacote do Dockerfile

É possível baixar o pacote do Dockerfile do AWS IoT Greengrass no GitHub:

Repositório Docker do AWS Greengrass

Depois de baixar o pacote, extraia o conteúdo para a pasta download-directory/aws-greengrass-docker-nucleus-version no seu computador. O Dockerfile usa uma versão mais antiga do Greengrass. Você deve atualizar o arquivo para usar a versão do Greengrass que deseja.

Especificar a versão do software de núcleo do AWS IoT Greengrass

Use o argumento de compilação a seguir no Dockerfile para especificar a versão do software de núcleo do AWS IoT Greengrass que você deseja usar na imagem do Docker do AWS IoT Greengrass. Por padrão, o Dockerfile usa a versão mais recente do software de núcleo do AWS IoT Greengrass.

GREENGRASS_RELEASE_VERSION

A versão do software de núcleo do AWS IoT Greengrass. Por padrão, o Dockerfile baixa a versão mais recente disponível do núcleo do Greengrass. Defina o valor para a versão do núcleo que deseja baixar.

Definição de variáveis de ambiente

As variáveis de ambiente permitem que você personalize como o software de núcleo do AWS IoT Greengrass é instalado no contêiner do Docker. É possível definir variáveis de ambiente para a imagem do Docker do AWS IoT Greengrass de várias maneiras.

  • Para usar as mesmas variáveis de ambiente para criar várias imagens, defina as variáveis de ambiente diretamente no Dockerfile.

  • Se você usa docker run para iniciar o contêiner, passe variáveis de ambiente como argumentos no comando ou defina variáveis de ambiente em um arquivo de variáveis de ambiente e, em seguida, passe o arquivo como argumento. Para obter mais informações sobre como configurar variáveis de ambiente no Docker, consulte as variáveis de ambiente na documentação do Docker.

  • Se você usa docker-compose up para iniciar o contêiner, defina variáveis de ambiente em um arquivo de variáveis de ambiente e, em seguida, passe o arquivo como argumento. Para obter mais informações sobre como configurar variáveis de ambiente no Compose, consulte a documentação do Docker.

Você pode configurar as variáveis de ambiente a seguir para a imagem do Docker do AWS IoT Greengrass.

nota

Não modifique a variável TINI_KILL_PROCESS_GROUP no Dockerfile. Essa variável permite o encaminhamento de SIGTERM para todos os PIDs no grupo PID para que o software de núcleo do AWS IoT Greengrass possa ser desligado corretamente quando o contêiner do Docker for interrompido.

GGC_ROOT_PATH

(Opcional) O caminho para a pasta dentro do contêiner a ser usada como raiz do software de núcleo do AWS IoT Greengrass.

Padrão: /greengrass/v2

PROVISION

(Opcional) Determina se o núcleo do AWS IoT Greengrass provisiona recursos da AWS.

Padrão: false

AWS_REGION

(Opcional) A Região da AWS que o software de núcleo do AWS IoT Greengrass usa para recuperar ou criar os recursos da AWS necessários.

Padrão: us-east-1.

THING_NAME

(Opcional) O nome da coisa do AWS IoT que você registra como esse dispositivo principal. Se a coisa com esse nome não existir na sua Conta da AWS, o software de núcleo do AWS IoT Greengrass a criará.

Especifique PROVISION=true para aplicar esse argumento.

Padrão: GreengrassV2IotThing_ mais um UUID aleatório.

THING_GROUP_NAME

(Opcional) O nome do grupo de coisas do AWS IoT em que você adiciona a coisa do AWS IoT desse dispositivo principal. Se uma implantação for direcionada a esse grupo, esse e outros dispositivos principais desse grupo receberão essa implantação quando se conectarem ao AWS IoT Greengrass. Se o grupo de coisas com esse nome não existir na sua Conta da AWS, o software de núcleo do AWS IoT Greengrass o criará.

Especifique PROVISION=true para aplicar esse argumento.

TES_ROLE_NAME

(Opcional) O nome do perfil do IAM a ser usado para adquirir credenciais da AWS que permitem que o dispositivo principal do Greengrass interaja com os serviços da AWS. Se o perfil com esse nome não existir na sua Conta da AWS, o software de núcleo do AWS IoT Greengrass o criará com a política GreengrassV2TokenExchangeRoleAccess. Esse perfil não tem acesso aos buckets do S3 nos quais você hospeda artefatos de componentes. Portanto, adicione permissões aos buckets e objetos do S3 dos seus artefatos ao criar um componente. Para obter mais informações, consulte Autorize os dispositivos principais a interagir com os serviços da AWS.

Padrão: GreengrassV2TokenExchangeRole

TES_ROLE_ALIAS_NAME

(Opcional) O nome do alias do perfil do AWS IoT que aponta para o perfil do IAM que fornece credenciais da AWS para o dispositivo principal do Greengrass. Se o alias do perfil com esse nome não existir na Conta da AWS, o software AWS IoT Greengrass Core o criará e o apontará para o perfil do IAM especificado por você.

Padrão: GreengrassV2TokenExchangeRoleAlias

COMPONENT_DEFAULT_USER

(Opcional) O nome ou ID do grupo e usuário do sistema que o software de núcleo do AWS IoT Greengrass usa para executar componentes. Especifique o usuário e o grupo, separados por dois pontos. O grupo é opcional. Por exemplo, é possível especificar ggc_user:ggc_group ou ggc_user.

  • Se você executar como raiz, o padrão será o usuário e o grupo definidos pelo arquivo de configuração. Se o arquivo de configuração não definir um usuário e grupo, o padrão será ggc_user:ggc_group. Se ggc_user ou ggc_group não existirem, o software os criará.

  • Se você executar como um usuário não raiz, o software AWS IoT Greengrass Core usará esse usuário para executar componentes.

  • Caso um grupo não seja especificado, o software AWS IoT Greengrass Core usará o grupo primário do usuário do sistema.

Para obter mais informações, consulte Configurar o usuário que executa os componentes.

DEPLOY_DEV_TOOLS

Define se o componente CLI do Greengrass deve ser baixado e implantado na imagem do contêiner. É possível usar a CLI do Greengrass para desenvolver e depurar componentes localmente.

Importante

Recomendamos que você use este componente somente em ambientes de desenvolvimento, não em ambientes de produção. Este 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 privilégio mínimo implantando este componente somente nos dispositivos principais em que você precisar dele.

Padrão: false

INIT_CONFIG

(Opcional) O caminho para o arquivo de configuração a ser usado para instalar o software de núcleo do AWS IoT Greengrass. Por exemplo, você pode usar essa opção para configurar novos dispositivos principais do Greengrass com uma configuração de núcleo específica ou para especificar recursos provisionados manualmente. Monte o arquivo de configuração no caminho especificado nesse argumento.

TRUSTED_PLUGIN

Este atributo está disponível para a versão 2.4.0 e posterior do componente de núcleo do Greengrass.

(Opcional) O caminho para um arquivo JAR a ser carregado como um plug-in confiável. Use esta opção para fornecer arquivos JAR do plug-in de provisionamento, como para instalação com provisionamento de frota ou provisionamento personalizado.

THING_POLICY_NAME

Este atributo está disponível para a versão 2.4.0 e posterior do componente de núcleo do Greengrass.

(Opcional) O nome da política do AWS IoT a ser anexada ao certificado de coisa do AWS IoT desse dispositivo principal. Se a política do AWS IoT com esse nome não existir na sua Conta da AWS, o software de núcleo do AWS IoT Greengrass a criará.

Especifique PROVISION=true para aplicar esse argumento.

nota

O software de núcleo do AWS IoT Greengrass cria uma política permissiva do AWS IoT por padrão. Você pode restringir essa política ou criar uma política personalizada na qual você restringe as permissões para seu caso de uso. Para obter mais informações, consulte AWS IoT Política mínima para dispositivos AWS IoT Greengrass V2 principais.

Especificar as dependências a serem instaladas

A instrução RUN no Dockerfile do AWS IoT Greengrass prepara o ambiente de contêiner para executar o instalador do software de núcleo do AWS IoT Greengrass. É possível personalizar as dependências que são instaladas antes da execução do instalador do software de núcleo do AWS IoT Greengrass no contêiner do Docker.

Criar a imagem do AWS IoT Greengrass

Use o Dockerfile do AWS IoT Greengrass para criar uma imagem de contêiner do AWS IoT Greengrass. É possível usar a CLI do Docker ou a CLI do Docker Compose para criar a imagem e iniciar o contêiner. Também é possível usar a CLI do Docker para criar a imagem e, em seguida, usar o Docker Compose para iniciar o contêiner a partir dessa imagem.

Docker
  1. Na máquina host, execute o comando a seguir para alternar para o diretório que contém o Dockerfile configurado.

    cd download-directory/aws-greengrass-docker-nucleus-version
  2. Execute o comando a seguir para construir a imagem do contêiner do AWS IoT Greengrass usando o Dockerfile.

    sudo docker build -t "platform/aws-iot-greengrass:nucleus-version" ./
Docker Compose
  1. Na máquina host, execute o comando a seguir para alternar para o diretório que contém o Dockerfile e o arquivo do Compose.

    cd download-directory/aws-greengrass-docker-nucleus-version
  2. Execute o comando a seguir para usar o arquivo do Compose para construir a imagem do contêiner do AWS IoT Greengrass.

    docker-compose -f docker-compose.yml build

Você criou com sucesso a imagem do contêiner do AWS IoT Greengrass. A imagem do Docker tem o software de núcleo do AWS IoT Greengrass instalado. Agora você pode executar o software de núcleo do AWS IoT Greengrass em um contêiner do Docker.