Статьи

Кнопка AWS IoT, лямбда и Couchbase

Приступая к работе с бессерверными 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, Lambda и Couchbase от нашего партнера по JCG Аруна Гупта в блоге Miles to go 3.0… .