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:
O 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:
Registre o botão:
Configure o botão com a rede Wi-Fi:
Faça upload de todos os certificados etc:
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.21
Se 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:
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.
Clique em Adicionar gatilho
para adicionar um novo acionador:
Selecione o quadrado vazio para criar um novo acionador e selecione AWS 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:
Especifique o número de série do botão no acionador do AWS IoT:
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:
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:
Clique em Documentos
para ver a lista completa de documentos:
Clique no ID do documento para ver mais detalhes sobre ele:
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:
1 |
buttonDocument.setRequestId(contexto.getAwsRequestId()); |
Um novo pacote de implantação pode ser criado e carregado usando o seguinte comando:
1 2 3 4 5 6 |
mvn limpo pacote; aws lambda atualização-função-código --função-nome HelloCouchbaseLambda --zíper-arquivo arquivob:///Usuários/arungupta/workspaces/serverless/aws/hellocouchbase/hellocouchbase/target/hellocouchbase-1.0-SNAPSHOT.jar --região nós-oeste-2 --publicar |
Agora, ao clicar no botão, o número de documentos será atualizado. Mas o documento atualizado terá um atributo adicional preenchido, conforme mostrado:
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.
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?