Usa Amazon CloudWatch Events - 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.

Usa Amazon CloudWatch Events

CloudWatch Los eventos ofrecen un flujo casi en tiempo real de los eventos del sistema que describen los cambios en AWS los recursos en las Amazon EC2 instancias, Lambda las funciones, los Kinesis flujos, Amazon ECS las tareas, las máquinas de Step Functions estado, Amazon SNS los temas, Amazon SQS las colas o los objetivos 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 los CloudWatch eventos. Ambos servicios utilizan la misma API, por lo que puedes seguir utilizando el cliente de CloudWatch Events que proporciona el SDK o migrar al SDK del EventBridge cliente de Java para disfrutar de la funcionalidad de CloudWatch Events. CloudWatch La documentación de la guía del usuario de Events y la referencia sobre la API ya están disponibles en los sitios de EventBridge documentación.

Agregar eventos

Para añadir CloudWatch eventos personalizados, llama al CloudWatchEventsClient’s putEvents método con un PutEventsRequestobjeto que contenga uno o más PutEventsRequestEntryobjetos 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

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.

Agregar reglas

Para crear o actualizar una regla, llame al CloudWatchEventsClient’s putRule método con una PutRuleRequestcon el nombre de la regla y parámetros opcionales, como el patrón de eventos, el IAM rol que se va a asociar a la regla y una expresión de programación que describa la frecuencia con la que 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

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. Los objetivos de ejemplo incluyen Amazon EC2 instancias, Lambda funciones, Kinesis flujos, Amazon ECS tareas, máquinas de Step Functions estado y objetivos integrados.

Para añadir un objetivo a una regla, llama al CloudWatchEventsClient’s putTargets método con una PutTargetsRequestque contenga la regla que deseas actualizar y una lista de objetivos que 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

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