天天看點

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