Implantar grupos do AWS IoT Greengrass em um núcleo do 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á.

Implantar grupos do AWS IoT Greengrass em um núcleo do AWS IoT Greengrass

Use grupos do AWS IoT Greengrass para organizar entidades no ambiente periférico. Você também pode usar os grupos para controlar como as entidades no grupo interagem entre si e com a Nuvem AWS. Por exemplo, somente as funções do Lambda no grupo são implantadas para execução local e somente os dispositivos no grupo podem se comunicar usando o servidor MQTT local.

Um grupo deve incluir um núcleo, que é um dispositivo do AWS IoT que executa o software de núcleo do AWS IoT Greengrass. O núcleo atua como um gateway de borda e fornece recursos do AWS IoT Core no ambiente de borda. Dependendo da sua necessidade de negócios, também é possível adicionar as seguintes entidades a um grupo:

  • Dispositivos cliente. Representados como coisas no registro do AWS IoT. Esses dispositivos devem executar o FreeRTOS ou usar o SDK AWS IoT de dispositivo ou a API de descoberta do AWS IoT Greengrass para obter informações de conexão para o núcleo. Somente dispositivos cliente membros do grupo podem se conectar ao núcleo.

  • Funções do Lambda. Aplicativos com tecnologia sem servidor predefinidos pelo usuário que executam código no núcleo. As funções do Lambda são criadas no AWS Lambda e referenciadas a partir de um grupo do Greengrass. Para ter mais informações, consulte Execute funções do Lambda no núcleo do AWS IoT Greengrass.

  • Conectores. Aplicativos com tecnologia sem servidor predefinidos que executam código no núcleo. Os conectores podem fornecer integração incorporada com a infraestrutura local, com protocolos do dispositivo, com a AWS e com outros serviços em nuvem. Para ter mais informações, consulte Integrar a serviços e protocolos usando conectores do Greengrass.

  • Assinaturas. Define os editores, os assinantes e os tópicos MQTT (ou assuntos) autorizados para comunicação MQTT.

  • Recursos. Referências a dispositivos e volumes locais, modelos de machine learning e segredos, usados para controle de acesso por conectores e funções do Lambda do Greengrass.

  • Logs. Configurações de registro em log para componentes do sistema do AWS IoT Greengrass e funções do Lambda. Para ter mais informações, consulte Monitoramento com logs do AWS IoT Greengrass.

Você gerencia o grupo do Greengrass na Nuvem AWS e o implanta em um núcleo. A implantação copia a configuração do grupo para o arquivo group.json no dispositivo de núcleo. Esse arquivo está localizado em greengrass-root/ggc/deployments/group.

Definição de nuvem do grupo do Greengrass implantado em um dispositivo de núcleo.
nota

Durante uma implantação, o processo de daemon do Greengrass no dispositivo de núcleo é interrompido e, depois, reiniciado.

Implantando grupos usando o console do AWS IoT

É possível implantar um grupo e gerenciar suas implantações na página de configuração do grupo no console do AWS IoT.

nota

Para abrir essa página no console, selecione Dispositivos Greengrass, depois, Grupos (V1) e, em Grupos do Greengrass, selecione seu grupo.

Para implantar a versão atual do grupo
  • Na página de configuração do grupo, selecione Implantar.

Para visualizar o histórico de implantações do grupo

O histórico de implantações de um grupo inclui a data e a hora, a versão do grupo e o status de cada tentativa de implantação.

  1. Na página de configuração do grupo, selecione a guia Implantações.

  2. Para ver mais informações sobre uma implantação, incluindo mensagens de erro, selecione Implantações no console do AWS IoT, em Dispositivos Greengrass.

Como reimplantar uma implantação de grupo

Você poderá querer reimplantar uma implantação se a implantação atual falhar ou reverter para uma versão de grupo diferente.

  1. No console do AWS IoT, selecione Dispositivos Greengrass e, em seguida, selecione Grupos (V1).

  2. Selecione a guia Implantações.

  3. Selecione a implantação que você deseja reimplantar e, em seguida selecione Reimplantar.

Para redefinir implantações do grupo

Você pode querer redefinir implantações do grupo para mover ou excluir um grupo ou para remover as informações de implantação. Para ter mais informações, consulte Redefinir implantações.

  1. No console do AWS IoT, selecione Dispositivos Greengrass e, em seguida, selecione Grupos (V1).

  2. Selecione a guia Implantações.

  3. Selecione a implantação que você deseja redefinir e, em seguida selecione Redefinir implantações.

Implantar grupos com a API do AWS IoT Greengrass

A API do AWS IoT Greengrass fornece as seguintes ações para implantar grupos do AWS IoT Greengrass e gerenciar implantações do grupo. É possível chamar essas ações pela AWS CLI, pela API do AWS IoT Greengrass ou pelo AWS SDK.

Ação Descrição

CreateDeployment

Cria uma implantação NewDeployment ou Redeployment.

Você poderá querer reimplantar uma implantação se a implantação atual falhar. Ou você pode querer reimplantar para reverter para uma versão de grupo diferente.

GetDeploymentStatus

Retorna o status de uma implantação: Building, InProgress, Success ou Failure.

Você pode configurar EventBridge eventos da Amazon para receber notificações de implantação. Para ter mais informações, consulte Obter notificações de implantação.

ListDeployments

Retorna o histórico de implantações do grupo.

ResetDeployments

Redefine as implantações do grupo.

Você pode querer redefinir implantações do grupo para mover ou excluir um grupo ou para remover as informações de implantação. Para ter mais informações, consulte Redefinir implantações.

nota

Para obter informações sobre operações de implantação em massa, consulte Criar implantações em massa para grupos.

Obter o ID do grupo

O ID do grupo é normalmente usado em ações da API. Você pode usar a ListGroupsação para encontrar o ID do grupo-alvo na sua lista de grupos. Por exemplo, na AWS CLI, use o comando list-groups.

aws greengrass list-groups

Você também pode incluir a opção query para filtrar resultados. Por exemplo: .

  • Para obter o último grupo criado:

    aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"
  • Para obter um grupo pelo nome:

    aws greengrass list-groups --query "Groups[?Name=='MyGroup']"

    Os nomes de grupo não precisam ser exclusivos, portanto, vários grupos podem ser retornados.

Esta é uma resposta de exemplo do list-groups. As informações de cada grupo incluem o ID do grupo (na propriedade do Id) e o ID da versão mais recente do grupo (na propriedade da LatestVersion). Para obter outras IDs de versão de um grupo, use a ID do grupo com ListGroupVersions.

nota

Também é possível encontrar esses valores no console do AWS IoT. O ID do grupo é exibido na página Settings (Configurações) do grupo. Os IDs de versão do grupo são exibidos na guia Implantações do grupo.

{ "Groups": [ { "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE/versions/4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE", "Name": "MyFirstGroup", "LastUpdatedTimestamp": "2019-11-11T05:47:31.435Z", "LatestVersion": "4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE", "CreationTimestamp": "2019-11-11T05:47:31.435Z", "Id": "00dedaaa-ac16-484d-ad77-c3eedEXAMPLE", "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE" }, { "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE/versions/8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE", "Name": "GreenhouseSensors", "LastUpdatedTimestamp": "2020-01-07T19:58:36.774Z", "LatestVersion": "8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE", "CreationTimestamp": "2020-01-07T19:58:36.774Z", "Id": "036ceaf9-9319-4716-ba2a-237f9EXAMPLE", "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE" }, ... ] }

Se você não especificar uma região da Região da AWS, os comandos da AWS CLI usarão a região padrão do seu perfil. Para retornar grupos em uma região diferente, inclua a opção region . Por exemplo: .

aws greengrass list-groups --region us-east-1

Visão geral do modelo de objeto de grupo do AWS IoT Greengrass

Ao programar com a API do AWS IoT Greengrass, é útil compreender o modelo de objeto de grupo do Greengrass.

Grupos

Na API do AWS IoT Greengrass, o objeto Group de nível superior consiste em metadados e uma lista de objetos GroupVersion. Os objetos GroupVersion são associados a um Group por ID.

Um diagrama de um grupo, que consiste em metadados e em uma lista de versões do grupo.

Versões do grupo

Os objetos GroupVersion definem a associação ao grupo. Cada GroupVersion faz referência a um CoreDefinitionVersion e a outras versões de componente por ARN. Essas referências determinam quais entidades devem ser incluídas no grupo.

Um diagrama da versão de um grupo que faz referência a outros tipos de versão por ARN.

Por exemplo, para incluir três funções do Lambda, um dispositivo e duas assinaturas no grupo, o GroupVersion faz referência:

  • Ao CoreDefinitionVersion que contém o núcleo necessário.

  • Ao FunctionDefinitionVersion que contém as três funções.

  • Ao DeviceDefinitionVersion que contém o dispositivo cliente.

  • Ao SubscriptionDefinitionVersion que contém as duas assinaturas.

O GroupVersion implantado em um dispositivo de núcleo determina as entidades que estão disponíveis no ambiente local e como elas podem interagir.

Componentes do grupo

Os componentes que você adiciona a grupos têm uma hierarquia de três níveis:

  • Uma definição que faz referência a uma lista de DefinitionVersionobjetos de um determinado tipo. Por exemplo, um DeviceDefinition faz referência a uma lista de objetos DeviceDefinitionVersion.

  • Um DefinitionVersionque contém um conjunto de entidades de um determinado tipo. Por exemplo, um DeviceDefinitionVersion contém uma lista de objetos Device.

  • Entidades individuais que definem suas propriedades e seu comportamento. Por exemplo, um Device define o ARN do dispositivo cliente correspondente no registro do AWS IoT, o ARN do certificado de dispositivo e se o shadow local deve ser sincronizado automaticamente com a nuvem.

    É possível adicionar os seguintes tipos de entidades a um grupo:

O exemplo DeviceDefinition a seguir faz referência a três objetos DeviceDefinitionVersion, cada um contendo vários objetos Device. Somente um DeviceDefinitionVersion de cada vez é usado em um grupo.

Um diagrama de uma hierarquia de dispositivos, que consiste em DeviceDefinition DeviceDefinitionVersion, e objetos de dispositivo.

Atualizar grupos

Na API do AWS IoT Greengrass, você usa versões para atualizar a configuração de um grupo. As versões são imutáveis, portanto, para adicionar, remover ou alterar componentes do grupo, você deve criar DefinitionVersionobjetos que contenham entidades novas ou atualizadas.

Você pode associar novos DefinitionVersionsobjetos a objetos de definição novos ou existentes. Por exemplo, é possível usar a ação CreateFunctionDefinition para criar um FunctionDefinition que inclui o FunctionDefinitionVersion como uma versão inicial ou usar a ação CreateFunctionDefinitionVersion e fazer referência a um FunctionDefinition existente.

Depois de criar os componentes do grupo, você cria um GroupVersion que contém todos os DefinitionVersionobjetos que você deseja incluir no grupo. Depois, implante o GroupVersion.

Para implantar um GroupVersion, ele deve fazer referência a um CoreDefinitionVersion que contenha exatamente um Core. Todas as entidades referenciadas devem ser membros do grupo. Além disso, um perfil de serviço do Greengrass deve ser associado à sua Conta da AWS na Região da AWS onde você está implantando o GroupVersion.

nota

As ações Update na API são usadas para alterar o nome de um Group ou de um objeto Definition do componente.

Atualizando entidades que fazem referência a recursos da AWS

As funções do Lambda do Greengrass e os recursos secretos definem propriedades específicas do Greengrass e também fazem referência a recursos correspondentes da AWS. Para atualizar essas entidades, você pode fazer alterações no recurso da AWS correspondente em vez de nos objetos do Greengrass. Por exemplo, as funções do Lambda fazem referência a uma função no AWS Lambda e também definem o ciclo de vida e outras propriedades que são específicas do grupo do Greengrass.

  • Para atualizar o código da função do Lambda ou as dependências empacotadas, faça as alterações no AWS Lambda. Durante a próxima implantação do grupo, essas alterações são recuperadas do AWS Lambda e copiadas para o seu ambiente local.

  • Para atualizar as propriedades específicas do Greengrass, você cria um FunctionDefinitionVersion que contém as propriedades Function atualizadas.

nota

As funções do Lambda do Greengrass podem fazer referência a uma função do Lambda pelo ARN do alias ou da versão. Se você fizer referência ao ARN do alias (recomendado), não será necessário atualizar o FunctionDefinitionVersion (ou o SubscriptionDefinitionVersion) ao publicar uma nova versão da função no AWS Lambda. Para ter mais informações, consulte Referência de funções do Lambda por alias ou versão.

Consulte também