Integrar a serviços e protocolos usando conectores do 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á.

Integrar a serviços e protocolos usando conectores do Greengrass

Esse atributo está disponível para o AWS IoT Greengrass Core v1.7 e posterior.

Os conectores no AWS IoT Greengrass são módulos que melhoram a interação com a infraestrutura local, os protocolos de dispositivo, a AWS e outros serviços em nuvem. Usando os conectores, você pode perder menos tempo aprendendo novos protocolos e APIs e mais tempo se concentrando na lógica que é importante para a sua empresa.

O diagrama a seguir mostram onde os conectores podem se encaixar no cenário AWS IoT Greengrass do .

Os conectores se conectam a dispositivos, serviços e recursos locais.

Muitos conectores usam mensagens MQTT para se comunicar com dispositivos cliente e funções do Lambda do Greengrass no grupo, ou com o AWS IoT e o serviço de sombra local. No exemplo a seguir, o conector de notificações do Twilio recebe mensagens MQTT de uma função do Lambda definida pelo usuário, usa uma referência local de um segredo do AWS Secrets Manager e chama a API do Twilio.

Um conector recebendo uma mensagem MQTT de uma função do Lambda e chamando um serviço.

Para ver tutoriais que criam essa solução, consulte Conceitos básicos de conectores do Greengrass (console) e Conceitos básicos de conectores do Greengrass (CLI).

Os conectores do Greengrass podem ajudar você a ampliar os recursos do dispositivo ou a criar dispositivos de finalidade única. Ao usar conectores, você pode:

  • Implementar a lógica de negócios reutilizáveis.

  • Interagir com nuvem e serviços locais, incluindo serviços da AWS e de terceiros.

  • Ingerir e o processar dados do dispositivo.

  • Habilitar as chamadas de um dispositivo para outro usando assinaturas de tópicos MQTT e funções definidas pelo usuário.

A AWS fornece um conjunto de conectores do Greengrass que simplificam interações com serviços comuns e fontes de dados. Esses módulos pré-compilados habilitam cenários para registro e diagnóstico, reabastecimento, processamento de dados industriais, além de alarmes e mensagens. Para obter mais informações, consulte Conectores do Greengrass fornecidos pela AWS.

Requisitos

Para usar conectores, lembre-se dos seguintes pontos:

  • Cada conector que você usa possui requisitos aos quais você deve atender. Esses requisitos podem incluir a versão mínima do software do AWS IoT Greengrass Core, pré-requisitos do dispositivo, permissões necessárias e limites. Para obter mais informações, consulte Conectores do Greengrass fornecidos pela AWS.

  • Um grupo do Greengrass pode conter apenas uma instância configurada de um determinado conector. Porém, você pode a usar a instância em várias assinaturas. Para obter mais informações, consulte Parâmetros de configuração.

  • Quando a conteinerização padrão para o grupo do Greengrass é definida como Sem contêiner, os conectores do grupo devem ser executados sem conteinerização. Para localizar conectores compatíveis com o modo Sem contêiner consulte Conectores do Greengrass fornecidos pela AWS.

Usar conectores do Greengrass

Um conector é um tipo de componente de grupo. Assim como outros componentes do grupo, como dispositivos cliente e funções do Lambda definidas pelo usuário, você adiciona os conectores aos grupos, define suas configurações e os implanta no núcleo AWS IoT Greengrass. Os conectores são executados no ambiente do núcleo.

Você pode implantar alguns conectores como aplicativos autônomos simples. Por exemplo, o conector Device Defender lê as métricas do sistema no dispositivo de núcleo e as envia para o AWS IoT Device Defender para análise.

Você pode adicionar outros conectores como blocos de construção em soluções maiores. O exemplo de solução a seguir usa o conector de adaptadores de protocolo Modbus-RTU para processar mensagens de sensores e o conector de notificações do Twilio para acionar mensagens do Twilio.

O fluxo de dados da função do Lambda para o conector de adaptadores de protocolo Modbus-RTU para a função do Lambda para o conector de notificações do Twilio para o Twilio.

As soluções geralmente incluem funções do Lambda definidas pelo usuário que permanecem ao lado dos conectores e processam os dados que o conector envia ou recebe. Neste exemplo, a função TempMonitor recebe dados do adaptador de protocolo Modbus-RTU, executa um pouco de lógica de negócios e, em seguida, envia os dados para as notificações do Twilio.

Para criar e implantar uma solução, siga este processo geral:

  1. Mapeie o fluxo de dados de alto nível. Identifique as fontes de dados, os canais de dados, os serviços, os protocolos e os recursos com os quais você precisa trabalhar. No solução de exemplo, isso inclui os dados sobre o protocolo Modbus RTU, a porta serial Modbus física e o Twilio.

  2. Identifique os conectores para incluir na solução e adicione-os ao grupo. O exemplo de solução usa o adaptador de protocolo Modbus-RTU e as notificações do Twilio. Para ajudá-lo a encontrar os conectores que se aplicam ao seu cenário, bem como para saber mais sobre seus requisitos individuais, consulte Conectores do Greengrass fornecidos pela AWS.

  3. Identifique se as funções do Lambda definidas pelo usuário, os dispositivos cliente, ou os recursos são necessários, então, crie-os e adicione-os ao grupo. Isso pode incluir funções que contêm a lógica de negócios ou processam dados em um formato exigido por outra entidade na solução. O exemplo de solução usa funções para enviar solicitações do Modbus RTU e iniciar as notificações do Twilio. Ela também inclui um recurso de dispositivo local para a porta serial Modbus RTU e um recurso de segredo para o token de autenticação do Twilio.

    nota

    Recursos secretos fazem referência a senhas, tokens e outros segredos do AWS Secrets Manager. Os segredos podem ser usados por conectores e funções do Lambda para a autenticação nos serviços e aplicativos. Por padrão, o AWS IoT Greengrass pode acessar segredos com nomes que começam com "greengrass-". Para obter mais informações, consulte Implantar segredos no núcleo do AWS IoT Greengrass.

  4. Crie assinaturas que permitem que as entidades na solução troquem mensagens MQTT. Se um conector é usado em uma assinatura, o conector e a mensagem de origem ou de destino devem usar a sintaxe de tópico predefinida compatível com o conector. Para obter mais informações, consulte Entradas e saídas.

  5. Implante o grupo no núcleo do Greengrass.

Para obter informações sobre como criar e implantar um conector, consulte os seguintes tutoriais:

Parâmetros de configuração

Muitos conectores fornecem parâmetros que permitem personalizar o comportamento ou a saída. Esses parâmetros são usados durante a inicialização, no tempo de execução ou em outros momentos no ciclo de vida do conector.

Os tipos de parâmetro e o uso variam de acordo com o conector. Por exemplo, o conector SNS tem um parâmetro que configura o tópico padrão do SNS e o Device Defender tem um parâmetro que configura a taxa de amostragem de dados.

Uma versão de grupo pode conter vários conectores, mas apenas a instância de determinado conector por vez. Isso significa que cada conector no grupo pode ter somente uma configuração ativa. Porém, a instância do conector pode ser usada em várias assinaturas no grupo. Por exemplo, é possível criar assinaturas que permitem que muitos dispositivos enviem dados ao conector do Kinesis Firehose.

Parâmetros usados para acessar recursos de grupo

Os conectores do Greengrass usam recursos de grupo para acessar o sistema de arquivos, as portas, os periféricos e outros recursos locais no dispositivo de núcleo. Se um conector exige acesso a um recurso de grupo, ele fornece parâmetros de configuração relacionados.

Recursos de grupo incluem:

  • Recursos locais. Os diretórios, os arquivos, as portas, os pins e os periféricos que estão presentes no dispositivo de núcleo do Greengrass.

  • Recursos de machine learning. Os modelos de machine learning formados na nuvem e implantados no núcleo para inferência local.

  • Recursos secretos. Cópias criptografadas locais de senhas, chaves, tokens ou texto arbitrário do AWS Secrets Manager. Os conectores podem acessar esses segredos locais com segurança e usá-los para autenticar para serviços ou infraestrutura local.

Por exemplo, os parâmetros do Device Defender habilitam o acesso a métricas do sistema no diretório /proc do host e os parâmetros das notificações do Twilio habilitam o acesso a um token de autenticação do Twilio armazenado localmente.

Atualizar parâmetros de conector

Os parâmetros são configurados quando o conector é adicionado a um grupo do Greengrass. É possível alterar valores de parâmetro após o conector ser adicionado.

  • No console: na página de configurações do grupo, abra Connectors (Conectores) e, no menu de contexto do conector, selecione Edit (Editar).

    nota

    Se o conector usar um recurso de segredo que foi alterado posteriormente para fazer referência a um segredo diferente, você deverá editar os parâmetros do conector e confirmar a alteração.

  • Na API: crie outra versão do conector que defina a nova configuração.

    A API do AWS IoT Greengrass usa versões para gerenciar grupos. As versões são imutáveis, portanto, para adicionar ou alterar componentes do grupo — por exemplo, os dispositivos cliente, as funções e os recursos do grupo — você deve criar versões de componentes novos ou atualizados. Em seguida, crie e implante uma versão do grupo que contenha a versão de destino de cada componente.

Depois de fazer alterações na configuração do conector, você deverá implantar o grupo para propagar as alterações para o núcleo.

Entradas e saídas

Muitos conectores do Greengrass podem se comunicar com outras entidades pelo envio e recebimento de mensagens MQTT. A comunicação MQTT é controlada por assinaturas que permitem que um conector troque dados com funções do Lambda, dispositivos cliente e outros conectores no grupo do Greengrass ou com o AWS IoT e o serviço de sombra local. Para permitir essa comunicação, você deve criar assinaturas no grupo ao qual o conector pertence. Para obter mais informações, consulte Assinaturas gerenciadas no fluxo de trabalho de mensagens MQTT.

Os conectores podem ser editores de mensagens, assinantes de mensagens ou ambos. Cada conector define os tópicos MQTT ao qual ele publica ou o qual assina. Esses tópicos predefinidos devem ser usados em assinaturas nas quais o conector é uma mensagem de origem ou de destino. Para obter tutoriais que incluem etapas de configuração de assinaturas para um conector, consulte Conceitos básicos de conectores do Greengrass (console) e Conceitos básicos de conectores do Greengrass (CLI).

nota

Muitos conectores também têm modos integrados de comunicação para interagir com serviços locais ou de nuvem. Isso varia de acordo com o conector e pode exigir que você configure parâmetros ou adicione permissões à função do grupo. Para obter mais informações sobre requisitos de conector, consulte Conectores do Greengrass fornecidos pela AWS.

Tópicos de entrada

A maioria dos conectores recebe dados de entrada em tópicos MQTT. Alguns conectores assinam vários tópicos para dados de entrada. Por exemplo, o conector do Serial Stream oferece suporte a dois tópicos:

  • serial/+/read/#

  • serial/+/write/#

Para esse conector, as solicitações de leitura e gravação são enviadas para o tópico correspondente. Ao criar assinaturas, certifique-se de usar o tópico que se alinhe à sua implementação.

Os caracteres + e # nos exemplos anteriores são curingas. Esses curingas permitem que os assinantes recebam mensagens sobre diversos tópicos e que os editores personalizem os tópicos em que publicam.

  • O curinga + pode aparecer em qualquer lugar na hierarquia de tópicos. Ele pode ser substituído por um item de hierarquia.

    Como exemplo, para o tópico sensor/+/input, as mensagens podem ser publicadas em tópicos sensor/id-123/input, mas não em sensor/group-a/id-123/input.

  • O curinga # pode aparecer somente no final da hierarquia de tópicos. Ele pode ser substituído por zero ou mais itens de hierarquia.

    Como exemplo, para o tópico sensor/#, as mensagens podem ser publicadas em sensor/, sensor/id-123 e sensor/group-a/id-123, mas não em sensor.

Caracteres curinga são válidos apenas ao assinar tópicos. As mensagens não podem ser publicadas em tópicos que contêm caracteres curinga. Verifique a documentação do conector para obter mais informações sobre seus requisitos de tópico de entrada ou saída. Para obter mais informações, consulte Conectores do Greengrass fornecidos pela AWS.

Suporte a conteinerização

Por padrão, a maioria dos conectores é executada no núcleo do Greengrass, em um ambiente de tempo de execução isolado gerenciado pelo AWS IoT Greengrass. Esses ambientes de tempo de execução, chamados de contêineres, fornecem isolamento entre os conectores e o sistema de host, o que oferece mais segurança para o host e para o conector.

No entanto, essa conteinerização do Greengrass não é compatível com alguns ambientes, como quando você executa o AWS IoT Greengrass em um contêiner do Docker ou em kernels do Linux mais antigos sem cgroups. Nesses ambientes, os conectores devem ser executados no modo Sem contêiner. Para localizar conectores compatíveis com o modo Sem contêiner consulte Conectores do Greengrass fornecidos pela AWS. Alguns conectores são executados nesse modo de forma nativa, outros permitem que você defina o modo de isolamento.

Também é possível definir o modo de isolamento como Sem contêiner em ambientes compatíveis com a conteinerização do Greengrass, mas recomendamos usar o modo de contêiner do Greengrass quando possível.

nota

A configuração padrão de conteinerização para o grupo do Greengrass não se aplica aos conectores.

Atualizar a versões do conector

Os provedores do conector podem lançar novas versões de um conector que adicionem atributos, corrijam problemas ou melhorem o desempenho. Para obter informações sobre as versões disponíveis e alterações relacionadas, consulte a documentação de cada conector.

No console do AWS IoT, você pode verificar se há novas versões para os conectores no grupo do Greengrass.

  1. No painel de navegação do console do AWS IoT, em Gerenciar, expanda Dispositivos Greengrass e, em seguida selecione Grupos (V1).

  2. Em Grupos do Greengrass, selecione seu grupo.

  3. Selecione Conectores para exibir os conectores no grupo.

    Se o conector tiver uma nova versão, um botão Available (Disponível) será exibido na coluna Upgrade (Atualizar) .

  4. Como atualizar a versão do conector:

    1. Na página Conectores, na coluna Upgrade (Atualizar), selecione Available (Disponível). A página Upgrade connector (Atualizar conector) é aberta e exibe as definições de parâmetros atuais, se aplicável.

      Selecione a nova versão do conector, defina os parâmetros conforme necessário e, em seguida selecione Upgrade (Atualizar).

    2. Na página Subscriptions (Assinaturas), adicione novas assinaturas no grupo para substituir as que usam o conector como origem ou destino. Remova, então, as assinaturas antigas.

      As assinaturas fazem referência aos conectores por versão, portanto, elas se tornam inválidos se você alterar a versão do conector no grupo.

    3. No menu Ações selecione Implantar para implantar as alterações no núcleo.

Para atualizar um conector da API do AWS IoT Greengrass, crie e implante uma versão de grupo que inclua o conector e as assinaturas atualizados. Use o mesmo processo de adicionar um conector a um grupo. Para obter etapas detalhadas que mostram como usar a AWS CLI para configurar e implantar um conector de notificações do Twilio de exemplo, consulte Conceitos básicos de conectores do Greengrass (CLI).

Registro em log para conectores

Os conectores do Greengrass contém funções do Lambda que gravam eventos e erros em logs do Greengrass. Dependendo das suas configurações de grupo, os logs são gravados no CloudWatch Logs, o sistema de arquivos local, ou ambos. Os logs de conectores incluem o ARN da função correspondente. O exemplo de ARN a seguir é do conector do Kinesis Firehose:

arn:aws:lambda:aws-region:account-id:function:KinesisFirehoseClient:1

A configuração de registro de log padrão grava logs informativos no sistema de arquivos usando a seguinte estrutura de diretório:

greengrass-root/ggc/var/log/user/region/aws/function-name.log

Para obter mais informações sobre o registro em log do Greengrass, consulte Monitoramento com logs do AWS IoT Greengrass.