Приступая к работе с бессерверными FaaS и AWS Lambda показывает, как использовать простую функцию Java для сохранения документа JSON в Couchbase с использованием AWS Lambda. Этот блог основан на этом и показывает, как кнопку IoT AWS можно использовать в качестве триггера для этой лямбда-функции.
К концу этого блога вы узнаете:
- Как настроить кнопку AWS IoT
- Используйте кнопку IoT как триггер для лямбда-функции
- Кнопка тестирования IoT
Общий поток будет:
Если нажать кнопку, активируется функция HelloCouchbaseLambda Lambda. Эта функция использует Couchbase Java SDK для создания документа JSON в Couchbase.
В этом блоге также идет игра « Сбор данных iBeacon с устройствами Couchbase и Raspberry Pi IoT» от Nic и The CouchCase от Matthew для их летних проектов. Последний блог будет опубликован в этой серии. Это покажет, как можно использовать несколько кнопок AWS IoT для развлечения.
Давайте начнем!
Настроить кнопку IoT
Самый быстрый способ настроить кнопку IoT — использовать мобильное приложение для iOS или Android.
Подробнее о настройке IoT Button с помощью мобильного приложения .
Вот несколько снимков кнопки настройки с помощью мобильного приложения.
Откройте приложение, нажмите +, чтобы начать настройку новой кнопки:
Введите серийный номер кнопки:
Зарегистрируйте кнопку:
Настройте кнопку с сетью Wi-Fi:
Загрузите все сертификаты и т.д .:
После этого кнопка настроена и готова к использованию. В этом блоге пропущена часть, где шаблон лямбда-функции связан с нажатием кнопки.
Если мобильное приложение не может быть использовано, кнопка может быть настроена вручную .
Используйте кнопку IoT в качестве триггера для лямбда-функции
Интерфейс aws lambda create-event-source-mapping позволяет создать источник событий для функции Lambda. Начиная с версии 1.11.21 интерфейса командной строки AWS можно использовать только поток Amazon Kinesis или поток Amazon DynamoDB. Но для этого блога мы будем использовать кнопку IoT в качестве триггера. И это должно быть настроено с помощью AWS Lambda Console .
IoT Button поддерживается только в ограниченном количестве регионов. Например, он не поддерживается в регионе us-west-1 но работает в регионе us-west-2 .
Список регионов, которые не поддерживаются, выделен серым цветом в следующем списке:
Лямбда-функция может быть вызвана несколькими событиями. Лямбда-функция вызывается, когда происходит любое из этих событий. По умолчанию никакие триггеры не связаны с лямбда-функцией. Для нашей функции 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:
Нажмите «Отправить», чтобы создать триггер:
И это подтверждает, что триггер был добавлен.
Кнопка тестирования IoT
Перед тестированием кнопки, войдите в экземпляр Couchbase и проверьте количество JSON-документов в корзине:
Это можно проверить по адресу http://<EC2-IP-Address>:8091/index.html#sec=buckets . Как и ожидалось, в ведре нет документов.
Нажмите кнопку один раз и обновите страницу. Это показывает, что один документ теперь хранится в корзине. Это подтверждается в веб-консоли Couchbase:
Нажмите на Documents чтобы увидеть полный список документов:
Нажмите на идентификатор документа, чтобы увидеть более подробную информацию о документе:
В этом документе JSON хранится только метка времени.
Теперь давайте обновим код HelloCouchbaseLambda чтобы включить в документ идентификатор запроса. Это может быть достигнуто путем добавления следующей строки кода в класс Java:
|
1
|
buttonDocument.setRequestId(context.getAwsRequestId()); |
Новый пакет развертывания можно создать и загрузить с помощью следующей команды:
|
1
2
3
4
5
6
|
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 Server
- Форумы Couchbase
- Следуйте за нами на @couchbasedev
| Ссылка: | Кнопка AWS IoT, Lambda и Couchbase от нашего партнера по JCG Аруна Гупта в блоге Miles to go 3.0… . |


















