Conceitos básicos de conectores do Greengrass (console) - 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á.

Conceitos básicos de conectores do Greengrass (console)

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

Este tutorial mostra como usar a AWS Management Console para trabalhar com conectores.

Use conectores para acelerar o ciclo de vida de desenvolvimento. Os conectores são módulos pré-criados e reutilizáveis que podem facilitar a interação com serviços, protocolos e recursos. Eles podem ajudar você a implantar a lógica de negócios para Dispositivos Greengrass mais rapidamente. Para obter mais informações, consulte Integrar a serviços e protocolos usando conectores do Greengrass.

Neste tutorial, você configura e implanta o conector de notificações do Twilio. O conector recebe informações de mensagem do Twilio como dados de entrada e aciona uma mensagem de texto do Twilio. O fluxo de dados é exibido no diagrama a seguir.

Fluxo de dados da função do Lambda para o conector de notificações do Twilio para o Twilio.

Depois de configurar o conector, crie uma função do Lambda e uma assinatura.

  • A função avalia os dados simulados do sensor de temperatura. Ele publica, de forma condicional, as informações de mensagem do Twilio para um tópico MQTT. Esse é o tópico que o conector assina.

  • A assinatura permite que a função publique no tópico e que o conector receba os dados do tópico.

O conector de notificações do Twilio exige um token de autenticação do Twilio para interagir com a API do Twilio. O token é um tipo de texto secreto criado no AWS Secrets Manager e referenciado de um recurso de grupo. Isso permite que o AWS IoT Greengrass crie uma cópia local do segredo no núcleo do Greengrass, onde ele é criptografado e disponibilizado para o conector. Para obter mais informações, consulte Implantar segredos no núcleo do AWS IoT Greengrass.

O tutorial contém as seguintes etapas de nível elevado:

O tutorial levará aproximadamente 20 minutos para ser concluído.

Pré-requisitos

Para concluir este tutorial, você precisa de:

  • Um grupo do Greengrass e um núcleo do Greengrass (versão 1.9.3 ou posterior). Para saber como criar um grupo e núcleo Greengrass, consulte Começando com AWS IoT Greengrass. O tutorial Conceitos básicos também inclui etapas para instalar o software do núcleo do AWS IoT Greengrass.

  • Python 3.7 instalado no dispositivo de núcleo do AWS IoT Greengrass.

  • AWS IoT Greengrass deve ser configurado para oferecer suporte a segredos locais, conforme descrito em Requisitos de segredos.

    nota

    Este requisito inclui permitir o acesso aos seus segredos do Secrets Manager. Se você estiver usando o perfil de serviço padrão do Greengrass, o Greengrass terá permissão para obter os valores de segredos com nomes que começam com greengrass-.

  • Um SID da conta do Twilio, um token de autorização e um número de telefone habilitado para Twilio. Depois de criar um projeto do Twilio, esses valores estarão disponíveis no painel do projeto.

    nota

    Você pode usar uma conta de teste do Twilio. Se você estiver usando uma conta de teste, você deve adicionar números de telefone que não são de destinatários do Twilio a uma lista de números de telefone verificados. Para obter mais informações, consulte Como trabalhar com a sua conta de teste gratuita do Twilio.

Etapa 1: Criar um segredo do Secrets Manager

Nesta etapa, você usa o console do AWS Secrets Manager para criar um tipo de texto secreto para o token de autenticação do Twilio.

  1. Faça login no console do AWS Secrets Manager.

    nota

    Para obter mais informações sobre esse processo, consulte Etapa 1: Criar e armazenar seu segredo no AWS Secrets Manager no Guia do usuário do AWS Secrets Manager.

  2. Selecione Store a new secret (Armazenar um novo segredo).

  3. Em Escolher tipo de segredo, selecione Outro tipo de segredo.

  4. Em Specify the key/value pairs to be stored for this secret, na guia Plaintext, insira o token de autenticação do Twilio. Remova toda a formatação JSON e insira apenas o valor do token.

  5. Mantenha aws/secretsmanager selecionado para a chave de criptografia e selecione Avançar.

    nota

    Você não será cobrado pelo AWS KMS se usar a chave gerenciada da AWS padrão que o Secrets Manager cria na sua conta.

  6. Em Secret name, digite greengrass-TwilioAuthToken e selecione Next.

    nota

    Por padrão, o perfil de serviço do Greengrass permite que AWS IoT Greengrass obtenha o valor de segredos com nomes que começam com greengrass-. Para obter mais informações, consulte os requisitos de segredos.

  7. A alternância não é necessária neste tutorial, portanto, selecione Desabilitar a alternância automática e, em seguida, Avançar.

  8. Na página Review (Revisar), revise as configurações e selecione Store (Armazenar).

    Em seguida, crie um recurso de segredo no seu grupo do Greengrass que faz referência ao segredo.

Etapa 2: Adicionar um recurso de segredo a um grupo do Greengrass

Nesta etapa, você adiciona um recurso de segredo ao grupo do Greengrass. Esse recurso é uma referência ao segredo que você criou na etapa anterior.

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

  2. Selecione o grupo ao qual você deseja adicionar o recurso de segredo.

  3. Na página de configuração do grupo, selecione a guia Recursos e, em seguida, role para baixo até a seção Segredos. A seção Segredos exibe os recursos de segredos que pertencem ao grupo. Você pode adicionar, editar e remover recursos de segredos nessa seção.

    nota

    Como alternativa, o console permite que você crie um segredo e um recurso de segredo ao configurar um conector ou uma função do Lambda. Você pode fazer isso na página Configurar parâmetros do conector ou na página Recursos da função do Lambda.

  4. Selecione Adicionar na seção Segredos.

  5. Na página Adicionar um recurso de segredo, insira MyTwilioAuthToken em Nome do recurso.

  6. Em Segredo, selecione greengrass-TwilioAuthToken.

  7. Na seção ‭‬Selecionar rótulos (Opcional)‭‬, o rótulo de preparação AWSCURRENT representa a versão mais recente do segredo.‬‬‬‬‬‬. Esse rótulo é sempre incluído em um recurso de segredo.

    nota

    Somente o rótulo AWSCURRENT é necessário neste tutorial. Você também pode incluir rótulos que a função do Lambda ou o connector exige.

  8. Selecione Adicionar recurso.

Etapa 3: Adicionar um conector ao grupo do Greengrass

Nesta etapa, você configura parâmetros para o conector de notificações Twilio e o adiciona ao grupo.

  1. Na página de configuração do grupo, selecione Connectors e, em seguida, Add a connector.

  2. Na página Adicionar conector, selecione Notificações do Twilio.

  3. Selecione a versão .

  4. Na seção Configuração:

    • Para Recurso de token de autenticação do Twilio, insira o recurso que você criou na etapa anterior.

      nota

      Quando você insere o recurso, a propriedade ARN of Twilio auth token secret é preenchida para você.

    • Para Default from phone number, insira seu número de telefone habilitado para Twilio.

    • Para Twilio account SID, insira seu SID da conta do Twilio.

  5. Selecione Adicionar recurso.

Etapa 4: crie um pacote de implantação para a função do Lambda

Para criar uma função do Lambda, você deve, primeiro, criar um pacote de implantação da função do Lambda que contenha o código da função e as dependências. As funções do Lambda do Greengrass exigem o AWS IoT Greengrass SDK do Core para tarefas como comunicação com mensagens MQTT no ambiente de núcleo e acesso a segredos locais. Este tutorial cria uma função Python, então você usa a versão Python do SDK no pacote de implantação.

  1. Na página de downloads do SDK do AWS IoT Greengrass Core, baixe o AWS IoT Greengrass SDK do Core para Python em seu computador.

  2. Descompacte o pacote obtido por download para obter o SDK. O SDK é a pasta do greengrasssdk.

  3. Salve a seguinte função do código Python em um arquivo local denominado temp_monitor.py.

    import greengrasssdk import json import random client = greengrasssdk.client('iot-data') # publish to the Twilio Notifications connector through the twilio/txt topic def function_handler(event, context): temp = event['temperature'] # check the temperature # if greater than 30C, send a notification if temp > 30: data = build_request(event) client.publish(topic='twilio/txt', payload=json.dumps(data)) print('published:' + str(data)) print('temperature:' + str(temp)) return # build the Twilio request from the input data def build_request(event): to_name = event['to_name'] to_number = event['to_number'] temp_report = 'temperature:' + str(event['temperature']) return { "request": { "recipient": { "name": to_name, "phone_number": to_number, "message": temp_report } }, "id": "request_" + str(random.randint(1,101)) }
  4. Comprima os seguintes itens em um arquivo denominado temp_monitor_python.zip. Ao criar o arquivo ZIP, inclua apenas o código e suas dependências, e não a pasta que contém os arquivos.

    • temp_monitor.py. Lógica do aplicativo.

    • greengrasssdk. Biblioteca necessária para funções Python do Lambda do Greengrass que publicam mensagens MQTT.

    Esse é o pacote de implantação de sua função do Lambda.

Agora, crie uma função do Lambda que usa o pacote de implantação.

Etapa 5: Criar uma função do Lambda no console do AWS Lambda

Nesta etapa, você pode usar o console do AWS Lambda para criar uma função do Lambda e, em seguida, configurá-lo para usar o pacote de implantação. Depois, publique uma versão da função e crie um alias.

  1. Primeiro, crie a função do Lambda.

    1. No AWS Management Console, selecione Services (Serviços) e abra o console do AWS Lambda.

    2. Selecione Criar função e Criar desde o início.

    3. Na seção Basic information (Informações básicas), use os seguintes valores:

      • Em Function name (Nome da função), insira TempMonitor.

      • Em Runtime (Tempo de execução), selecione Python 3.7.

      • Em Permissões, mantenha a configuração padrão. Isso cria uma função de execução que concede permissões básicas do Lambda. Essa função não é usada pelo AWS IoT Greengrass.

    4. Na parte inferior da página, selecione Create function.

  2. Em seguida, registre o manipulador e faça upload do seu pacote de implantação da função do Lambda.

    1. Na guia Código, em Fonte do código, selecione Fazer upload a partir de. No menu suspenso, selecione o arquivo .zip.

      O menu suspenso Fazer upload a partir de com o arquivo .zip destacado.
    2. Selecione Upload e, em seguida, selecione seu pacote de implantação temp_monitor_python.zip. Selecione Salvar.

    3. Na guia Código da função, em Configurações de runtime, selecione Editar e insira os valores a seguir.

      • Em Runtime (Tempo de execução), selecione Python 3.7.

      • Em Handler (Manipulador), insira temp_monitor.function_handler.

    4. Selecione Salvar.

      nota

      O botão Testar no console do AWS Lambda não funciona com essa função. O AWS IoT GreengrassSDK do Core não contém os módulos necessários para executar suas funções do Lambda do Greengrass de forma independente no console do AWS Lambda. Esses módulos (por exemplo, greengrass_common) são fornecidos às funções depois de serem implantados no núcleo do Greengrass.

  3. Agora, publique a primeira versão da sua função do Lambda e crie um alias para a versão.

    nota

    Os grupos do Greengrass podem fazer referência a uma função do Lambda por alias (recomendado) ou por versão. Usar um alias facilita o gerenciamento de atualizações de código porque você não precisa alterar a tabela de assinaturas nem a definição do grupo ao atualizar a função do código. Em vez disso, você pode simplesmente apontar o alias para a nova versão da função.

    1. No menu Actions, selecione Publish new version.

    2. Em Version description (Descrição da versão), insira First version e, em seguida, selecione Publish (Publicar).

    3. Na página de configuração TempMonitor: 1, no menu Actions, selecione Create alias.

    4. Na página Create a new alias, use os seguintes valores:

      • Em Name (Nome), insira GG_TempMonitor.

      • Em Version, selecione 1.

      nota

      O AWS IoT Greengrass não oferece suporte a alias do Lambda para as versões $LATEST.

    5. Selecione Create (Criar).

Agora você está pronto para adicionar a função do Lambda ao seu grupo do Greengrass.

Etapa 6: Adicionar uma função do Lambda ao grupo do Greengrass

Nesta etapa, você adiciona a função do Lambda ao grupo e configura o ciclo de vida e as variáveis de ambiente. Para obter mais informações, consulte Controlar a execução de funções do Lambda do Greengrass usando a configuração específica do grupo.

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

  2. Em Minhas funções do Lambda, selecione Adicionar.

  3. Na página Adicionar função do Lambda, selecione TempMonitor para a sua função do Lambda.

  4. Em Versão da função do Lambda, selecione Alias: GG_TempMonitor.

  5. Selecione Adicionar função do Lambda.

Etapa 7: Adicionar assinaturas ao grupo do Greengrass

Nesta etapa, adicione uma assinatura que permita que a função do Lambda envie dados de entrada para o conector. O conector define os tópicos MQTT que assina, para que essa assinatura use um dos tópicos. Esse é o mesmo tópico no qual a função de exemplo publica.

Para este tutorial, você também pode criar assinaturas que permitem que a função receba as leituras de temperatura simuladas do AWS IoT e permitem que o AWS IoT receba informações de status do conector.

  1. Na página de configuração do grupo, selecione a guia Assinaturas e, em seguida, Adicionar assinatura.

  2. Na página Criar uma assinatura, configure a origem e o destino, da seguinte forma:

    1. Em Tipo de origem, selecione Função do Lambda e, em seguida, TempMonitor.

    2. Em Tipo de destino, selecione Conector e, em seguida, selecione Notificações Twilio.

  3. Para o Filtro de tópico, insira twilio/txt.

  4. Selecione Create subscription.

  5. Repita as etapas 1 a 4 para criar uma assinatura que permita à AWS IoT publicar mensagens na função.

    1. Para Tipo de origem, selecione Serviço e, em seguida, selecione IoT Cloud.

    2. Para Selecionar uma origem, selecione Função do Lambda e, em seguida, TempMonitor.

    3. Para Topic filter, insira temperature/input.

  6. Repita as etapas 1 a 4 para criar uma assinatura que permita que o conector publique mensagens no AWS IoT.

    1. Em Tipo de origem, selecione Connector (Conector) e, em seguida, selecione Twilio Notifications (Notificações Twilio).

    2. Para Tipo de destino, selecione Serviço e, em seguida, IoT Cloud.

    3. Para Topic filter (Filtro de tópico), twilio/message/status é inserido para você. Este é o tópico predefinido no qual o conector publica.

Etapa 8: Implantar o grupo do Greengrass

Implante o grupo no dispositivo do núcleo.

  1. Verifique se o núcleo AWS IoT Greengrass está em execução. Execute os seguintes comandos no seu terminal do Raspberry Pi, conforme necessário.

    1. Para verificar se o daemon está em execução:

      ps aux | grep -E 'greengrass.*daemon'

      Se a saída contém uma entrada root para /greengrass/ggc/packages/ggc-version/bin/daemon, o daemon está em execução.

      nota

      A versão no caminho depende da versão do software do AWS IoT Greengrass Core que foi instalada no seu dispositivo de núcleo.

    2. Para iniciar o daemon:

      cd /greengrass/ggc/core/ sudo ./greengrassd start
  2. Na página de configuração do grupo, selecione Implantar.

    1. Na guia Funções do Lambda, na seção Funções do Lambda do sistema, selecione Detector de IP e selecione Editar.

    2. Na caixa de diálogo Editar configurações do detector de IP, selecione Detectar e substituir automaticamente os endpoints de corretor MQTT.

    3. Selecione Salvar.

      Isso permite que os dispositivos adquiram automaticamente as informações de conectividade para o núcleo, como endereço IP, DNS e o número da porta. A detecção automática é recomendada, mas o AWS IoT Greengrass também oferece suporte a endpoints especificados manualmente. Você só é solicitado pelo método de descoberta na primeira vez em que o grupo for implantado.

      nota

      Se solicitado, conceda permissão para criar o perfil de serviço do Greengrass e associá-lo à sua Conta da AWS na Região da AWS atual. Essa função permite que AWS IoT Greengrass acessem seus recursos nos serviços do AWS.

      A página Deployments mostra a data e hora, ID de versão e status da implantação. Quando concluída, o status exibido para a implantação deve ser Concluída.

      Para obter ajuda sobre a solução de problemas, consulte Solução de problemas de AWS IoT Greengrass.

nota

Um grupo do Greengrass só pode conter uma versão do conector por vez. Para obter informações sobre como fazer upgrade de uma versão do conector, consulte Atualizar a versões do conector.

Testar a solução

  1. Na página inicial do console do AWS IoT, selecione Testar.

  2. Em Inscrever-se no tópico, use os seguintes valores e, em seguida, selecione Inscrever-se. O conector de notificações do Twilio publica informações de status nesse tópico.

    Propriedade

    Valor

    Tópico de assinatura

    twilio/mensagem/status

    Exibição da carga útil do MQTT

    Exibir cargas úteis como strings

  3. Para Publicar no tópico, use os valores a seguir e, em seguida selecione Publicar para invocar a função.

    Propriedade

    Valor

    Tópico

    temperatura/entrada

    Message

    Substitua nome do destinatário com nome e número de telefone do destinatário pelo número de telefone do destinatário da mensagem de texto. Exemplo: +12345000000

    { "to_name": "recipient-name", "to_number": "recipient-phone-number", "temperature": 31 }

    Se você estiver usando uma conta de teste, você deve adicionar números de telefone que não são de destinatários do Twilio a uma lista de números de telefone verificados. Para obter mais informações, consulte Verificar seu número de telefone pessoal.

    Se for bem-sucedido, o destinatário receberá a mensagem de texto e o console exibirá o success status dos dados de saída.

    Agora, altere a temperature na mensagem de entrada para 29 e publique. Como é inferior a 30, a função TempMonitor não dispara o gatilho da mensagem do Twilio.

Consulte também