無伺服器FaaS和AWS Lambda入門展示了如何使用簡單的Java函數通過AWS Lambda将JSON文檔存儲到Couchbase 。 該部落格以此為基礎,并展示了如何将AWS IoT按鈕用作該Lambda函數的觸發器。
在本部落格結束時,您将學到:
- 如何配置AWS IoT按鈕
- 使用IoT按鈕作為Lambda函數的觸發器
- 測試物聯網按鈕
總體流程為:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBHL0FWby9mZvwVZnFWbp1zczV2YvJHctM3cv1Ce-cnW1JkbMRTSE5ENSpWT3VEVMRTSE5ENSpWT3VEVMxmTYlVaoJTWxkjMZRXUzIGcxk3Y6Z1RilnVtRWeWJzY2lEVNZXWU10dJpHT6J1VZZHeHNWM5MEZ1Z1RkVXOykFdBNDZ2BjMipWN5NmcWdlWuZ1RaZnTXllMG1WY1N2MkNTO5xkNNh0YwIFSh9CXuNmLn1WauR2cj5CdyVmdu92Yn1Wavw1LcpDc0RHaiojIsJye.jpg)
單擊Iot按鈕将調用HelloCouchbaseLambda Lambda函數。 此功能使用Couchbase Java SDK在Couchbase中建立JSON文檔。
該部落格還在Nic和Matthew的The CouchCase的夏季項目中追趕使用Couchbase和Raspberry Pi IoT裝置收集iBeacon資料 。 本系列中将釋出最後一個部落格。 這将顯示如何使用多個AWS IoT按鈕獲得一些樂趣。
讓我們開始吧!
配置物聯網按鈕
配置IoT按鈕的最快方法是使用iOS或Android移動應用。
有關使用移動應用程式配置IoT Button的更多詳細資訊。
以下是使用移動應用程式配置按鈕的一些快照。
調出應用程式,單擊+開始配置新按鈕:
輸入按鈕的序列号:
注冊按鈕:
使用wifi網絡配置按鈕:
上傳所有證書等:
之後,按鈕已配置好并可以使用。 此部落格跳過了将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
區域有效。
以下清單以灰色顯示了不支援的區域清單:
Lambda函數可以由多個事件觸發。 這些事件中的任何一個發生時,都會調用Lambda函數。 預設情況下,沒有觸發器與Lambda函數關聯。 對于我們的
HelloCouchbaseLambda
函數,可以在us-west-2.console.aws.amazon.com/lambda/home?region=us-west-2#/functions/HelloCouchbaseLambda?tab=triggers中看到。
單擊
Add trigger
以添加新觸發器:
在空白方框上選擇以建立新觸發器,然後選擇
AWS IoT
:
對于先前注冊的按鈕,請從us-west-2.console.aws.amazon.com/iotv2/home?region=us-west-2#/thinghub擷取序列号:
在AWS IoT觸發器中指定按鈕的序列号:
單擊送出以建立觸發器:
并确認已添加觸發器。
測試物聯網按鈕
在測試按鈕之前,讓我們登入Couchbase執行個體并驗證存儲桶中的JSON文檔數量:
可以在
http://<EC2-IP-Address>:8091/index.html#sec=buckets
對此進行驗證。 如預期的那樣,存儲桶中沒有文檔。
按一次按鈕,然後重新整理頁面。 它表明一個文檔現在存儲在存儲桶中。 這在Couchbase Web控制台中已驗證:
單擊
Documents
以檢視
Documents
的完整清單:
單擊文檔ID以檢視有關該文檔的更多詳細資訊:
僅時間戳存儲在此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一起使用? 在Couchbase論壇上讓我們知道。
參考文獻
- AWS IoT按鈕
- AWS IoT按鈕開發人員指南
- Couchbase伺服器文檔
- Couchbase論壇
- 在@couchbasedev上關注我們
翻譯自: https://www.javacodegeeks.com/2016/12/aws-iot-button-lambda-couchbase.html