LaAWS SDK for JavaScript versión 3 (v3) es una reescritura de la versión 2 con algunas funciones nuevas y excelentes, incluida la arquitectura modular. Para obtener más información, consulte la Guía para desarrolladores de la versiónAWS SDK for JavaScript 3.
Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Envío de eventos a Amazon CloudWatch Events
Este ejemplo de código de Node.js muestra:
Cómo crear y actualizar una regla utilizada para desencadenar un evento.
Cómo definir uno o varios destinos para responder a un evento.
Cómo enviar eventos que se corresponden con los destinos para la gestión.
El escenario
CloudWatch Events proporciona un flujo casi en tiempo real de eventos del sistema que describen cambios en recursos de Amazon Web Services en diversos destinos. Mediante reglas sencillas, puede asignar los eventos y dirigirlos a uno o más flujos o funciones de destino.
En este ejemplo se van a utilizar una serie de módulos de Node.js para enviar eventos a eventos de CloudWatch. Los módulos de Node.js usan el SDK para JavaScript para administrar instancias mediante estos métodos deCloudWatchEvents
clase de cliente:
Para obtener más información acerca de eventos de CloudWatch, consulteAgregar eventos con PutEventsen laGuía del usuario de Amazon CloudWatch Events.
Tareas previas necesarias
Para configurar y ejecutar este ejemplo, primero debe completar estas tareas:
Instale Node.js. Para obtener más información acerca de la instalación de Node.js consulte el sitio web de Node.js
. Cree un archivo de configuraciones compartidas con sus credenciales de usuario. Para obtener más información acerca de cómo crear un archivo de credenciales compartidas, consulte Carga de credenciales en Node.js desde el archivo de credenciales compartidas.
Cree una función Lambda mediante elhello-worldPlan para que actúe como destino de los eventos. Para obtener más información, consultePaso 1: Creación de unAWS Lambdafunciónen laGuía del usuario de Amazon CloudWatch Events.
Cree una función de IAM cuya política conceda permiso a eventos de CloudWatch y que incluya
events.amazonaws.com
como entidad de confianza. Para obtener más información sobre la creación de un rol de IAM, consulteCreación de un rol para delegar permisos a unAWSService (Servicio)en laIAM User Guide.
Utilice la siguiente política de funciones al crear la función de IAM.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CloudWatchEventsFullAccess", "Effect": "Allow", "Action": "events:*", "Resource": "*" }, { "Sid": "IAMPassRoleForCloudWatchEvents", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/AWS_Events_Invoke_Targets" } ] }
Utilice la siguiente relación de confianza al crear la función de IAM.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Creación de una regla programada
Cree un módulo de Node.js con el nombre de archivo cwe_putrule.js
. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a CloudWatch Events, cree unAWS.CloudWatchEvents
objeto de servicio. Cree un objeto JSON que contenga los parámetros necesarios para especificar la nueva regla programada, que incluye lo siguiente:
Un nombre para la regla
El ARN de la función de IAM creado anteriormente
Una expresión para programar la activación de la regla cada cinco minutos
Llame al método putRule
para crear la regla. La devolución de llamada devuelve al ARN o la regla nueva o actualizada.
// Load the AWS SDK for Node.js var AWS = require('aws-sdk'); // Set the region AWS.config.update({region: 'REGION'}); // Create CloudWatchEvents service object var cwevents = new AWS.CloudWatchEvents({apiVersion: '2015-10-07'}); var params = { Name: 'DEMO_EVENT', RoleArn: 'IAM_ROLE_ARN', ScheduleExpression: 'rate(5 minutes)', State: 'ENABLED' }; cwevents.putRule(params, function(err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.RuleArn); } });
Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.
node cwe_putrule.js
Este código de muestra se puede encontrar aquí en GitHub
Añadir unAWS Lambdadestino de la función
Cree un módulo de Node.js con el nombre de archivo cwe_puttargets.js
. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a CloudWatch Events, cree unAWS.CloudWatchEvents
objeto de servicio. Cree un objeto JSON que contenga los parámetros necesarios para especificar la regla a la que desea asociar el destino, incluido el ARN de la función Lambda creada. Llame al método putTargets
del objeto de servicio de AWS.CloudWatchEvents
.
// Load the AWS SDK for Node.js var AWS = require('aws-sdk'); // Set the region AWS.config.update({region: 'REGION'}); // Create CloudWatchEvents service object var cwevents = new AWS.CloudWatchEvents({apiVersion: '2015-10-07'}); var params = { Rule: 'DEMO_EVENT', Targets: [ { Arn: 'LAMBDA_FUNCTION_ARN', Id: 'myCloudWatchEventsTarget', } ] }; cwevents.putTargets(params, function(err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });
Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.
node cwe_puttargets.js
Este código de muestra se puede encontrar aquí en GitHub
Envío de eventos
Cree un módulo de Node.js con el nombre de archivo cwe_putevents.js
. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a CloudWatch Events, cree unAWS.CloudWatchEvents
objeto de servicio. Cree un objeto JSON que contenga los parámetros necesarios para enviar eventos. Para cada evento, incluya el origen del evento, los ARN de cualquier recurso afectado por el evento y detalles del evento. Llame al método putEvents
del objeto de servicio de AWS.CloudWatchEvents
.
// Load the AWS SDK for Node.js var AWS = require('aws-sdk'); // Set the region AWS.config.update({region: 'REGION'}); // Create CloudWatchEvents service object var cwevents = new AWS.CloudWatchEvents({apiVersion: '2015-10-07'}); var params = { Entries: [ { Detail: '{ \"key1\": \"value1\", \"key2\": \"value2\" }', DetailType: 'appRequestSubmitted', Resources: [ 'RESOURCE_ARN', ], Source: 'com.company.app' } ] }; cwevents.putEvents(params, function(err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.Entries); } });
Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.
node cwe_putevents.js
Este código de muestra se puede encontrar aquí en GitHub