Приступая к работе с бессерверными 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… . |