Crie a imagem do AWS IoT Greengrass contêiner 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á.

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

AWSfornece um Dockerfile que você pode baixar e usar para executar o software AWS IoT Greengrass Core em um contêiner Docker. Os Dockerfiles contêm código-fonte para criar imagens de AWS IoT Greengrass contêineres.

Antes de criar uma imagem de AWS IoT Greengrass contêiner, você deve configurar seu Dockerfile para selecionar a versão do software AWS IoT Greengrass Core que você deseja instalar. Você também pode 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 AWS IoT Greengrass Docker a partir de um Dockerfile.

Baixe o pacote Dockerfile

Você pode baixar o pacote AWS IoT Greengrass Dockerfile em: GitHub

Repositório Docker do AWS Greengrass

Depois de baixar o pacote, extraia o conteúdo para a download-directory/aws-greengrass-docker-nucleus-version pasta 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 desejada.

Especifique a versão AWS IoT Greengrass do software principal

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

GREENGRASS_RELEASE_VERSION

A versão do software AWS IoT Greengrass Core. 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 você deseja baixar.

Definição de variáveis de ambiente

As variáveis de ambiente permitem que você personalize como o software AWS IoT Greengrass Core é instalado no contêiner Docker. Você pode definir variáveis de ambiente para sua imagem do AWS IoT Greengrass Docker 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 seu 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 a configuração de 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 seu contêiner, defina as 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 a configuração de variáveis de ambiente no Compose, consulte a documentação do Docker.

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

nota

Não modifique a TINI_KILL_PROCESS_GROUP variável no Dockerfile. Essa variável permite o encaminhamento SIGTERM para todos os PIDs no grupo PID para que o software AWS IoT Greengrass principal 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 AWS IoT Greengrass Core.

Padrão: /greengrass/v2

PROVISION

(Opcional) Determina se o AWS IoT Greengrass Core provisiona AWS recursos.

Padrão: false

AWS_REGION

(Opcional) O Região da AWS que o software AWS IoT Greengrass Core usa para recuperar ou criar AWS os recursos necessários.

Padrão: us-east-1.

THING_NAME

(Opcional) O nome da AWS IoT coisa que você registra como esse dispositivo principal. Se a coisa com esse nome não existir no seuConta da AWS, o software AWS IoT Greengrass Core a cria.

Você deve especificar PROVISION=true para aplicar esse argumento.

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

THING_GROUP_NAME

(Opcional) O nome do grupo ao AWS IoT qual você adiciona esse dispositivo principal é AWS IoT Se uma implantação for direcionada a esse grupo, esse e outros dispositivos principais desse grupo receberão essa implantação quando se conectaremAWS IoT Greengrass. Se o grupo de coisas com esse nome não existir no seuConta da AWS, o software AWS IoT Greengrass Core o criará.

Você deve especificar PROVISION=true para aplicar esse argumento.

TES_ROLE_NAME

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

Padrão: GreengrassV2TokenExchangeRole

TES_ROLE_ALIAS_NAME

(Opcional) O nome do alias da AWS IoT função que aponta para a função do IAM que fornece AWS credenciais para o dispositivo principal do Greengrass. Se o alias de função com esse nome não existir no seuConta da AWS, o software AWS IoT Greengrass Core o criará e o direcionará para a função do IAM que você especificar.

Padrão: GreengrassV2TokenExchangeRoleAlias

COMPONENT_DEFAULT_USER

(Opcional) O nome ou ID do usuário e do grupo do sistema que o software AWS IoT Greengrass Core 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 root, o padrão é 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 um grupo, o padrão é. ggc_user:ggc_group Se existirem ggc_user ou ggc_group não, o software os cria.

  • Se você executa como usuário não root, o software AWS IoT Greengrass Core usa esse usuário para executar componentes.

  • Se você não especificar um grupo, o software AWS IoT Greengrass Core usa o grupo primário do usuário do sistema.

Para ter 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. Você pode usar a CLI do Greengrass para desenvolver e depurar componentes localmente.

Importante

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.

Padrão: false

INIT_CONFIG

(Opcional) O caminho para o arquivo de configuração a ser usado para instalar o software AWS IoT Greengrass Core. 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, por exemplo. Você deve montar seu arquivo de configuração no caminho especificado nesse argumento.

TRUSTED_PLUGIN

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

(Opcional) O caminho para um arquivo JAR a ser carregado como um plug-in confiável. Use essa 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

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

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

Você deve especificar PROVISION=true para aplicar esse argumento.

nota

O software AWS IoT Greengrass Core cria uma AWS IoT política permissiva por padrão. Você pode definir o escopo dessa política ou criar uma política personalizada na qual restrinja as permissões para seu caso de uso. Para ter mais informações, consulte AWS IoTPolítica mínima para dispositivos AWS IoT Greengrass V2 principais.

Especifique as dependências a serem instaladas

A instrução RUN no AWS IoT Greengrass Dockerfile prepara o ambiente do contêiner para executar o AWS IoT Greengrass instalador do software Core. Você pode personalizar as dependências que são instaladas antes da execução do instalador do software AWS IoT Greengrass Core no contêiner do Docker.

Crie a AWS IoT Greengrass imagem

Use o AWS IoT Greengrass Dockerfile para criar uma imagem de AWS IoT Greengrass contêiner. Você pode usar a CLI do Docker ou a CLI do Docker Compose para criar a imagem e iniciar o contêiner. Você também pode usar a CLI do Docker para criar a imagem e, em seguida, usar o Docker Compose para iniciar seu 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 criar a imagem do AWS IoT Greengrass contêiner a partir do 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 Compose.

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

    docker-compose -f docker-compose.yml build

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