Uso de eventos de Amazon CloudWatch - AWS SDK for Java 2.x

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.

Uso de eventos de Amazon CloudWatch

Eventos de CloudWatch ofrece un flujo casi en tiempo real de eventos del sistema que describen cambios en los recursos de AWS en instancias de Amazon EC2, funciones de Lambda, flujos 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.

Amazon EventBridge es la evolución de Eventos de Amazon CloudWatch. Ambos servicios utilizan la misma API, por lo que puede seguir utilizando el cliente de Eventos de CloudWatch que proporciona el SDK o migrar al SDK para el cliente de EventBridge de Java para obtener funcionalidad de Eventos de CloudWatch. La documentación de la Guía del usuario de Eventos de CloudWatch y la Referencia de la API ya están disponibles en los sitios de documentación de EventBridge.

Agregar eventos

Para añadir eventos de CloudWatch personalizados, llame al método putEvents de CloudWatchEventsClient’s 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.

Importaciones

import software.amazon.awssdk.services.cloudwatch.model.CloudWatchException; import software.amazon.awssdk.services.cloudwatchevents.CloudWatchEventsClient; import software.amazon.awssdk.services.cloudwatchevents.model.PutEventsRequest; import software.amazon.awssdk.services.cloudwatchevents.model.PutEventsRequestEntry;

Código de

public static void putCWEvents(CloudWatchEventsClient cwe, String resourceArn ) { try { final String EVENT_DETAILS = "{ \"key1\": \"value1\", \"key2\": \"value2\" }"; PutEventsRequestEntry requestEntry = PutEventsRequestEntry.builder() .detail(EVENT_DETAILS) .detailType("sampleSubmitted") .resources(resourceArn) .source("aws-sdk-java-cloudwatch-example") .build(); PutEventsRequest request = PutEventsRequest.builder() .entries(requestEntry) .build(); cwe.putEvents(request); System.out.println("Successfully put CloudWatch event"); } catch (CloudWatchException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

Consulte el ejemplo completo en GitHub.

Adición de reglas

Para crear o actualizar una regla, llame al método putRule de CloudWatchEventsClient’s con un 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.

Importaciones

import software.amazon.awssdk.services.cloudwatch.model.CloudWatchException; import software.amazon.awssdk.services.cloudwatchevents.CloudWatchEventsClient; import software.amazon.awssdk.services.cloudwatchevents.model.PutRuleRequest; import software.amazon.awssdk.services.cloudwatchevents.model.PutRuleResponse; import software.amazon.awssdk.services.cloudwatchevents.model.RuleState;

Código de

public static void putCWRule(CloudWatchEventsClient cwe, String ruleName, String roleArn) { try { PutRuleRequest request = PutRuleRequest.builder() .name(ruleName) .roleArn(roleArn) .scheduleExpression("rate(5 minutes)") .state(RuleState.ENABLED) .build(); PutRuleResponse response = cwe.putRule(request); System.out.printf( "Successfully created CloudWatch events rule %s with arn %s", roleArn, response.ruleArn()); } catch ( CloudWatchException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

Consulte el ejemplo completo en GitHub.

Agregar destinos

Los destinos son los recursos que se invocan cuando se activa una regla. Algunos destinos de ejemplo son instancias Amazon EC2, funciones Lambda, secuencias de Kinesis, tareas de Amazon ECS, máquinas de estado de Step Functions y destinos integrados.

Para añadir un destino a una regla, llame al método putTargets de CloudWatchEventsClient’s con un objeto PutTargetsRequest que contenga la regla que se va a actualizar y la lista de destinos que se van a añadir a la regla.

Importaciones

import software.amazon.awssdk.services.cloudwatch.model.CloudWatchException; import software.amazon.awssdk.services.cloudwatchevents.CloudWatchEventsClient; import software.amazon.awssdk.services.cloudwatchevents.model.PutTargetsRequest; import software.amazon.awssdk.services.cloudwatchevents.model.PutTargetsResponse; import software.amazon.awssdk.services.cloudwatchevents.model.Target;

Código de

public static void putCWTargets(CloudWatchEventsClient cwe, String ruleName, String functionArn, String targetId ) { try { Target target = Target.builder() .arn(functionArn) .id(targetId) .build(); PutTargetsRequest request = PutTargetsRequest.builder() .targets(target) .rule(ruleName) .build(); PutTargetsResponse response = cwe.putTargets(request); System.out.printf( "Successfully created CloudWatch events target for rule %s", ruleName); } catch (CloudWatchException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

Consulte el ejemplo completo en GitHub.

Más información