Primeros pasos con FaaS sin servidor y AWS Lambda muestra cómo utilizar una sencilla función Java para almacenar un documento JSON en Couchbase utilizando AWS Lambda. Este blog se basa en eso y muestra cómo un Botón IoT de AWS puede utilizarse como disparador de esa función Lambda. Al final de este blog, usted aprenderá:
- Cómo configurar AWS IoT Button
- Utilizar el botón IoT como disparador de la función Lambda
- Botón Test IoT
El flujo general será:
El clic en el botón de AWS Iot invocará la función HelloCouchbaseLambda Lambda. Esta función utiliza el SDK Java de Couchbase para crear un documento JSON en Couchbase.
Este blog también se está poniendo al día con Recopilación de datos iBeacon con Couchbase y dispositivos IoT Raspberry Pi por Nic y La funda del sofá de Matthew sobre sus proyectos de verano. Un último blog será publicado en esta serie. Que mostrará cómo múltiples botones de AWS IoT se pueden utilizar para un poco de diversión.
Empecemos.
Configurar botón IoT
La forma más rápida de configurar el botón IoT es mediante la aplicación móvil para iOS o Android.
Más información configuración del botón IoT mediante una aplicación móvil. Estas son algunas instantáneas de la configuración del botón mediante la aplicación móvil.
Abre la aplicación, haz clic en + para empezar a configurar un nuevo botón:
Introduzca el número de serie del botón:
Registra el botón:
Configura el botón con la red wifi:
Sube todos los certificados, etc:
Después de esto, el botón está configurado y listo para usar. Este blog se saltó la parte en la que una plantilla Lambda Function se asocia con el clic del botón. Si la aplicación móvil no se puede utilizar entonces el botón puede ser configurado manualmente.
Utilizar un botón IoT como activador de una función Lambda
En aws lambda crear-evento-fuente-mapeo
CLI permite crear una fuente de eventos para la función Lambda. A partir de la versión de la CLI de AWS 1.11.21
Solo se puede utilizar Amazon Kinesis Stream o Amazon DynamoDB Stream. Pero para este blog, usaremos el botón IoT como disparador. Y esto tiene que ser configurado usando Consola de AWS Lambda. El Botón IoT sólo es compatible en un número limitado de regiones. Por ejemplo, no es compatible con us-oeste-1
región pero us-oeste-2
región funciona. La lista de regiones no compatibles aparece atenuada en la siguiente lista:
Lambda Function puede ser activada por varios eventos. Lambda Function se invoca cuando se produce alguno de estos eventos. Por defecto, no hay disparadores asociados a una Lambda Function. En el caso de HelloCouchbaseLambda
pueden consultarse en us-west-2.console.aws.amazon.com/lambda/home?region=us-west-2#/functions/HelloCouchbaseLambda?tab=triggers.
Haga clic en Añadir activador
para añadir un nuevo activador:
Seleccione en el cuadrado vacío para crear un nuevo disparador, y seleccione AWS IoT
:
Para el botón previamente registrado, obtenga el número de serie de us-west-2.console.aws.amazon.com/iotv2/home?region=us-west-2#/thinghub:
Especifique el número de serie del botón en el activador de AWS IoT:
Haga clic en Enviar para crear el activador:
Y esto confirma que se ha añadido el activador.
Botón Test IoT
Antes de probar el botón, iniciemos sesión en la instancia de Couchbase y verifiquemos el número de documentos JSON en el bucket:
Puede comprobarse en http://:8091/index.html#sec=buckets
. Como era de esperar, no existe ningún documento en el cubo. Pulse el botón una vez y actualice la página. Se muestra que ahora hay un documento almacenado en el bucket. Esto se verifica en la Consola Web de Couchbase:
Haga clic en Documentos
para ver la lista completa de documentos:
Haga clic en el identificador del documento para ver más detalles sobre el mismo:
En este documento JSON sólo se almacena la marca de tiempo. Ahora, actualicemos HelloCouchbaseLambda
para incluir también el identificador de la solicitud en el documento. Esto se puede lograr mediante la adición de la siguiente línea de código en la clase Java:
1 |
botónDocumento.setRequestId(contexto.getAwsRequestId()); |
Se puede crear y cargar un nuevo paquete de despliegue utilizando el siguiente comando:
1 2 3 4 5 6 |
mvn limpiar paquete; aws lambda actualización-función-código --función-nombre HelloCouchbaseLambda --zip-archivo archivob:///Users/arungupta/workspaces/serverless/aws/hellocouchbase/hellocouchbase/target/hellocouchbase-1.0-SNAPSHOT.jar --región us-oeste-2 --publicar |
Ahora, al hacer clic en el botón se actualizará el número de documentos. Pero el documento actualizado tendrá un atributo adicional poblado como se muestra:
¿Cómo vas a utilizar el botón IoT de AWS con Lambda y Couchbase? Háznoslo saber en Foros de Couchbase.
Hola... Tengo una pregunta, quiero saber... ¿es posible registrar IoT sin tener aws logins es posible? sin acceso quiero registrar el iot y dar a los clientes.. así que si lo tienen sólo pueden useit.. en lugar de añadir disparador a la función lambda.. cualquier sugerencia.