天天看点

AWS IoT按钮,Lambda和Couchbase

无服务器FaaS和AWS Lambda入门展示了如何使用简单的Java函数通过AWS Lambda将JSON文档存储到Couchbase 。 该博客以此为基础,并展示了如何将AWS IoT按钮用作该Lambda函数的触发器。

在本博客结束时,您将学到:

  • 如何配置AWS IoT按钮
  • 使用IoT按钮作为Lambda函数的触发器
  • 测试物联网按钮

总体流程为:

AWS IoT按钮,Lambda和Couchbase

单击Iot按钮将调用HelloCouchbaseLambda Lambda函数。 此功能使用Couchbase Java SDK在Couchbase中创建JSON文档。

该博客还在Nic和Matthew的The CouchCase的夏季项目中追赶使用Couchbase和Raspberry Pi IoT设备收集iBeacon数据 。 本系列中将发布最后一个博客。 这将显示如何使用多个AWS IoT按钮获得一些乐趣。

让我们开始吧!

配置物联网按钮

配置IoT按钮的最快方法是使用iOS或Android移动应用。

AWS IoT按钮,Lambda和Couchbase
AWS IoT按钮,Lambda和Couchbase

有关使用移动应用程序配置IoT Button的更多详细信息。

以下是使用移动应用程序配置按钮的一些快照。

调出应用程序,单击+开始配置新按钮:

AWS IoT按钮,Lambda和Couchbase

输入按钮的序列号:

AWS IoT按钮,Lambda和Couchbase

注册按钮:

AWS IoT按钮,Lambda和Couchbase

使用wifi网络配置按钮:

AWS IoT按钮,Lambda和Couchbase

上传所有证书等:

AWS IoT按钮,Lambda和Couchbase

之后,按钮已配置好并可以使用。 此博客跳过了将Lambda函数模板与按钮单击相关联的部分。

如果无法使用移动应用程序,则可以手动配置按钮。

使用IoT按钮作为Lambda函数的触发器

通过

aws lambda create-event-source-mapping

CLI,可以为Lambda函数创建事件源。 从AWS CLI版本

1.11.21

,只能使用Amazon Kinesis流或Amazon DynamoDB流。 但是对于此博客,我们将使用IoT按钮作为触发器。 并且必须使用AWS Lambda Console进行配置。

IoT Button仅在有限的区域中受支持。 例如,

us-west-1

区域不支持该功能,但是

us-west-2

区域有效。

以下列表以灰色显示了不支持的区域列表:

AWS IoT按钮,Lambda和Couchbase

Lambda函数可以由多个事件触发。 这些事件中的任何一个发生时,都会调用Lambda函数。 默认情况下,没有触发器与Lambda函数关联。 对于我们的

HelloCouchbaseLambda

函数,可以在us-west-2.console.aws.amazon.com/lambda/home?region=us-west-2#/functions/HelloCouchbaseLambda?tab=triggers中看到。

AWS IoT按钮,Lambda和Couchbase

单击

Add trigger

以添加新触发器:

AWS IoT按钮,Lambda和Couchbase

在空白方框上选择以创建新触发器,然后选择

AWS IoT

AWS IoT按钮,Lambda和Couchbase

对于先前注册的按钮,请从us-west-2.console.aws.amazon.com/iotv2/home?region=us-west-2#/thinghub获取序列号:

AWS IoT按钮,Lambda和Couchbase

在AWS IoT触发器中指定按钮的序列号:

AWS IoT按钮,Lambda和Couchbase

单击提交以创建触发器:

AWS IoT按钮,Lambda和Couchbase

并确认已添加触发器。

测试物联网按钮

在测试按钮之前,让我们登录Couchbase实例并验证存储桶中的JSON文档数量:

AWS IoT按钮,Lambda和Couchbase

可以在

http://<EC2-IP-Address>:8091/index.html#sec=buckets

对此进行验证。 如预期的那样,存储桶中没有文档。

按一次按钮,然后刷新页面。 它表明一个文档现在存储在存储桶中。 这在Couchbase Web控制台中已验证:

AWS IoT按钮,Lambda和Couchbase

单击

Documents

以查看

Documents

的完整列表:

AWS IoT按钮,Lambda和Couchbase

单击文档ID以查看有关该文档的更多详细信息:

AWS IoT按钮,Lambda和Couchbase

仅时间戳存储在此JSON文档中。

现在,让我们更新

HelloCouchbaseLambda

代码以在文档中也包含请求ID。 这可以通过在Java类中添加以下代码行来实现:

buttonDocument.setRequestId(context.getAwsRequestId());
           

可以使用以下命令来构建和上载新的部署程序包:

mvn clean package; 
aws lambda update-function-code \
--function-name HelloCouchbaseLambda \
--zip-file fileb:///Users/arungupta/workspaces/serverless/aws/hellocouchbase/hellocouchbase/target/hellocouchbase-1.0-SNAPSHOT.jar \
--region us-west-2 \
--publish
           

现在单击按钮将更新文档数。 但是更新后的文档将填充一个附加属性,如下所示:

AWS IoT按钮,Lambda和Couchbase

您将如何使用AWS IoT按钮并将其与Lambda和Couchbase一起使用? 在Couchbase论坛上让我们知道。

参考文献

  • AWS IoT按钮
  • AWS IoT按钮开发人员指南
  • Couchbase服务器文档
  • Couchbase论坛
  • 在@couchbasedev上关注我们
翻译自: https://www.javacodegeeks.com/2016/12/aws-iot-button-lambda-couchbase.html