Introdução à FaaS sem servidor e ao AWS Lambda mostra como usar uma função Java simples para armazenar um documento JSON em Couchbase usando o AWS Lambda. Este blog se baseia nisso e mostra como um Botão IoT da AWS pode ser usado como um acionador para essa função Lambda. Ao final deste blog, você aprenderá:

  • Como configurar o AWS IoT Button
  • Use o botão IoT como acionador da função Lambda
  • Botão Test IoT

O fluxo geral será o seguinte:
serverless-iot-couchbaseO clique no botão do AWS Iot invocará a função Lambda HelloCouchbaseLambda. Essa função usa a função SDK Java do Couchbase para criar um documento JSON no Couchbase.

Este blog também está tentando recuperar o atraso com Coleta de dados do iBeacon com o Couchbase e dispositivos de IoT Raspberry Pi por Nic e O CouchCase por Matthew em seus projetos de verão. Um último blog será publicado nesta série. Ele mostrará como vários botões do AWS IoT podem ser usados para diversão.

Vamos começar!

Configurar o botão IoT

A maneira mais rápida de configurar o botão IoT é usando o aplicativo móvel para iOS ou Android.

 

Mais detalhes sobre Configuração do botão IoT usando o aplicativo móvel. Aqui estão alguns instantâneos da configuração do botão usando o aplicativo móvel.

Abra o aplicativo e clique em + para começar a configurar um novo botão:

Digite o número de série do botão:
aws-iot-button-configure-2
Registre o botão:
aws-iot-button-configure-3
Configure o botão com a rede Wi-Fi:
aws-iot-button-configure-4
Faça upload de todos os certificados etc:
aws-iot-button-configure-5

Depois disso, o botão está configurado e pronto para ser usado. Este blog pulou a parte em que uma função Lambda de modelo é associada ao clique do botão. Se o aplicativo móvel não puder ser usado, o botão poderá ser configurado manualmente.

Use o botão IoT como acionador da função Lambda

O aws lambda create-event-source-mapping A CLI permite criar uma fonte de eventos para a função Lambda. A partir da versão do AWS CLI 1.11.21Se o botão IoT for usado, somente o fluxo do Amazon Kinesis ou um fluxo do Amazon DynamoDB poderá ser usado. Mas, para este blog, usaremos o botão IoT como acionador. E isso deve ser configurado usando Console do AWS Lambda. O IoT Button é compatível apenas com um número limitado de regiões. Por exemplo, ele não é compatível com as regiões us-west-1 região, mas us-west-2 região funciona. A lista de regiões não suportadas está acinzentada na lista a seguir:
aws-iot-buttons-supported-region
A Lambda Function pode ser acionada por vários eventos. A Lambda Function é chamada quando qualquer um desses eventos ocorre. Por padrão, nenhum acionador é associado a uma Lambda Function. Para nossa HelloCouchbaseLambda que podem ser vistas em  us-west-2.console.aws.amazon.com/lambda/home?region=us-west-2#/functions/HelloCouchbaseLambda?tab=triggers.
lambda-default-triggers
Clique em Adicionar gatilho para adicionar um novo acionador:
lambda-add-trigger-default
Selecione o quadrado vazio para criar um novo acionador e selecione AWS IoT:
lambda-add-trigger-iot
Para o botão registrado anteriormente, obtenha o número de série em us-west-2.console.aws.amazon.com/iotv2/home?region=us-west-2#/thinghub:

aws-iot-things-hub-1024x416
Especifique o número de série do botão no acionador do AWS IoT:
aws-iot-add-trigger-1024x391
Clique em Submit (Enviar) para criar o acionador:

E isso confirma que o acionador foi adicionado.

Botão IoT de teste

Antes de testar o botão, vamos fazer login na instância do Couchbase e verificar o número de documentos JSON no bucket:
aws-iot-button-couchbase-console-default-
Isso pode ser verificado em http://:8091/index.html#sec=buckets. Como esperado, não há documentos no bucket. Pressione o botão uma vez e atualize a página. Ela mostra que um documento agora está armazenado no bucket. Isso é verificado no Console da Web do Couchbase:
 aws-iot-button-couchbase-console-one-document
Clique em Documentos para ver a lista completa de documentos:
 aws-iot-button-couchbase-one-document-2
Clique no ID do documento para ver mais detalhes sobre ele:
aws-iot-button-couchbase-one-document-details-1024x328
Somente o registro de data e hora é armazenado nesse documento JSON. Agora, vamos atualizar HelloCouchbaseLambda para incluir também o ID da solicitação no documento. Isso pode ser feito adicionando a seguinte linha de código na classe Java:

Um novo pacote de implantação pode ser criado e carregado usando o seguinte comando:

Agora, ao clicar no botão, o número de documentos será atualizado. Mas o documento atualizado terá um atributo adicional preenchido, conforme mostrado:
aws-iot-button-couchbase-second-document-details-1024x640
Como você vai usar o botão IoT do AWS e usá-lo com o Lambda e o Couchbase? Entre em contato conosco em Fóruns do Couchbase.

Referências

Autor

Postado por Arun Gupta, vice-presidente de defesa do desenvolvedor, Couchbase

Arun Gupta é o vice-presidente de defesa do desenvolvedor na Couchbase. Ele criou e liderou comunidades de desenvolvedores por mais de 10 anos na Sun, Oracle e Red Hat. Ele tem grande experiência na liderança de equipes multifuncionais para desenvolver e executar estratégias, planejamento e execução de conteúdo, campanhas de marketing e programas. Antes disso, liderou equipes de engenharia na Sun e é membro fundador da equipe Java EE. Gupta é autor de mais de 2.000 postagens em blogs sobre tecnologia. Ele tem uma vasta experiência em palestras em mais de 40 países sobre diversos tópicos e é um JavaOne Rock Star há três anos consecutivos. Gupta também fundou o capítulo Devoxx4Kids nos EUA e continua a promover a educação tecnológica entre as crianças. Autor de vários livros sobre tecnologia, corredor ávido, viajante do mundo inteiro, campeão de Java, líder de JUG, membro do NetBeans Dream Team e capitão do Docker, ele pode ser facilmente acessado em @arungupta.

Um comentário

  1. Olá... tenho uma pergunta, quero saber... é possível registrar o IoT sem ter logins do aws? sem acesso, quero registrar o iot e dar aos clientes... assim, se eles o tiverem, poderão usá-lo... em vez de adicionar o acionador à função lambda... alguma sugestão?

Deixar uma resposta