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 CloudWatch
Eventos CloudWatch permite la transmisión casi en tiempo real de eventos del sistema que describen cambios en los recursos de AWS para instancias de Amazon EC2, funciones de Lambda, secuencias de Kinesis, tareas de Amazon ECS, máquinas de estado de Step Functions, temas de Amazon SNS, colas de Amazon SQS o destinos integrados. Mediante reglas sencillas, puede asignar los eventos y dirigirlos a una o más secuencias o funciones de destino.
nota
En estos fragmentos de código, se presupone que conoce la información que se describe en Introducción al uso del AWS SDK para C++ y que ha configurado credenciales de AWS predeterminadas utilizando la información incluida en Proporcionar credenciales de AWS.
Añadir eventos
Para añadir eventos de CloudWatch personalizados, llame a la función PutEvents de CloudWatchEventsClient con un objeto PutEventsRequest que contenga uno o varios objetos PutEventsRequestEntry que proporcionen detalles sobre cada evento. Puede especificar varios parámetros para la entrada como el origen y el tipo del evento, los recursos asociados con el evento, etc.
nota
Puede especificar un máximo de 10 eventos para cada llamada a putEvents.
Incluye
#include <aws/core/Aws.h> #include <aws/events/EventBridgeClient.h> #include <aws/events/model/PutEventsRequest.h> #include <aws/events/model/PutEventsResult.h> #include <aws/core/utils/Outcome.h> #include <iostream>
Código de
Aws::CloudWatchEvents::EventBridgeClient cwe; Aws::CloudWatchEvents::Model::PutEventsRequestEntry event_entry; event_entry.SetDetail(MakeDetails(event_key, event_value)); event_entry.SetDetailType("sampleSubmitted"); event_entry.AddResources(resource_arn); event_entry.SetSource("aws-sdk-cpp-cloudwatch-example"); Aws::CloudWatchEvents::Model::PutEventsRequest request; request.AddEntries(event_entry); auto outcome = cwe.PutEvents(request); if (!outcome.IsSuccess()) { std::cout << "Failed to post CloudWatch event: " << outcome.GetError().GetMessage() << std::endl; } else { std::cout << "Successfully posted CloudWatch event" << std::endl; }
Añadir reglas
Para crear o actualizar una regla, llame a la función PutRule de CloudWatchEventsClient con un objeto PutRuleRequest con el nombre de la regla y parámetros opcionales como el patrón del evento, el rol de IAM que se va a asociar a la regla y una expresión de programación que describa con qué frecuencia se ejecuta la regla.
Incluye
#include <aws/core/Aws.h> #include <aws/events/EventBridgeClient.h> #include <aws/events/model/PutRuleRequest.h> #include <aws/events/model/PutRuleResult.h> #include <aws/core/utils/Outcome.h> #include <iostream>
Código de
Aws::CloudWatchEvents::EventBridgeClient cwe; Aws::CloudWatchEvents::Model::PutRuleRequest request; request.SetName(rule_name); request.SetRoleArn(role_arn); request.SetScheduleExpression("rate(5 minutes)"); request.SetState(Aws::CloudWatchEvents::Model::RuleState::ENABLED); auto outcome = cwe.PutRule(request); if (!outcome.IsSuccess()) { std::cout << "Failed to create CloudWatch events rule " << rule_name << ": " << outcome.GetError().GetMessage() << std::endl; } else { std::cout << "Successfully created CloudWatch events rule " << rule_name << " with resulting Arn " << outcome.GetResult().GetRuleArn() << std::endl; }
Añadir destinos
Los destinos son los recursos que se invocan cuando se activa una regla. Algunos ejemplos de destinos son las instancias de Amazon ECS, funciones de Lambda, flujos de Kinesis, tareas de Amazon EC2, máquinas de estado de Step Functions y destinos integrados.
Para añadir un destino a una regla, llame a la función PutTargets de CloudWatchEventsClient con un objeto PutTargetsRequest que contenga la regla para actualizar y la lista de destinos que se van a añadir a la regla.
Incluye
#include <aws/core/Aws.h> #include <aws/events/EventBridgeClient.h> #include <aws/events/model/PutTargetsRequest.h> #include <aws/events/model/PutTargetsResult.h> #include <aws/core/utils/Outcome.h> #include <iostream>
Código de
Aws::CloudWatchEvents::EventBridgeClient cwe; Aws::CloudWatchEvents::Model::Target target; target.SetArn(lambda_arn); target.SetId(target_id); Aws::CloudWatchEvents::Model::PutTargetsRequest request; request.SetRule(rule_name); request.AddTargets(target); auto putTargetsOutcome = cwe.PutTargets(request); if (!putTargetsOutcome.IsSuccess()) { std::cout << "Failed to create CloudWatch events target for rule " << rule_name << ": " << putTargetsOutcome.GetError().GetMessage() << std::endl; } else { std::cout << "Successfully created CloudWatch events target for rule " << rule_name << std::endl; }
Consulte el ejemplo completo
Más información
-
Agregar eventos con PutEvents en la Guía del usuario de Eventos de Amazon CloudWatch
-
Programar expresiones para reglas en la Guía del usuario de Eventos de Amazon CloudWatch
-
Tipos de evento para Eventos de CloudWatch en la Guía del usuario de Eventos de Amazon CloudWatch
-
Eventos y patrones de eventos en la Guía del usuario de Eventos de Amazon CloudWatch
-
PutEvents en la Referencia de la API de Eventos de Amazon CloudWatch
-
PutTargets en la Referencia de la API de Eventos de Amazon CloudWatch
-
PutRule en la Referencia de la API de Eventos de Amazon CloudWatch