Envío de eventos a CloudWatch - AWS SDK para Java 1.x

La AWS SDK para Java versión 1.x entró en modo de mantenimiento el 31 de julio de 2024 y estará disponible el 31 de end-of-supportdiciembre de 2025. Le recomendamos que migre al para AWS SDK for Java 2.xseguir recibiendo nuevas funciones, mejoras de disponibilidad y actualizaciones de seguridad.

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

CloudWatch Events ofrece 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 estados, 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.

Añadir eventos

Para añadir CloudWatch eventos personalizados, llama al putEvents método AmazonCloudWatchEventsClient's 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 com.amazonaws.services.cloudwatchevents.AmazonCloudWatchEvents; import com.amazonaws.services.cloudwatchevents.AmazonCloudWatchEventsClientBuilder; import com.amazonaws.services.cloudwatchevents.model.PutEventsRequest; import com.amazonaws.services.cloudwatchevents.model.PutEventsRequestEntry; import com.amazonaws.services.cloudwatchevents.model.PutEventsResult;

Código

final AmazonCloudWatchEvents cwe = AmazonCloudWatchEventsClientBuilder.defaultClient(); final String EVENT_DETAILS = "{ \"key1\": \"value1\", \"key2\": \"value2\" }"; PutEventsRequestEntry request_entry = new PutEventsRequestEntry() .withDetail(EVENT_DETAILS) .withDetailType("sampleSubmitted") .withResources(resource_arn) .withSource("aws-sdk-java-cloudwatch-example"); PutEventsRequest request = new PutEventsRequest() .withEntries(request_entry); PutEventsResult response = cwe.putEvents(request);

Añadir reglas

Para crear o actualizar una regla, llama al putRule método AmazonCloudWatchEventsClient's 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 com.amazonaws.services.cloudwatchevents.AmazonCloudWatchEvents; import com.amazonaws.services.cloudwatchevents.AmazonCloudWatchEventsClientBuilder; import com.amazonaws.services.cloudwatchevents.model.PutRuleRequest; import com.amazonaws.services.cloudwatchevents.model.PutRuleResult; import com.amazonaws.services.cloudwatchevents.model.RuleState;

Código

final AmazonCloudWatchEvents cwe = AmazonCloudWatchEventsClientBuilder.defaultClient(); PutRuleRequest request = new PutRuleRequest() .withName(rule_name) .withRoleArn(role_arn) .withScheduleExpression("rate(5 minutes)") .withState(RuleState.ENABLED); PutRuleResult response = cwe.putRule(request);

Añadir 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 transmisiones, Amazon ECS tareas, máquinas de Step Functions estado y objetivos integrados.

Para añadir un objetivo a una regla, llama al putTargets método AmazonCloudWatchEventsClient's con una PutTargetsRequestque contenga la regla que deseas actualizar y una lista de objetivos que añadir a la regla.

Importaciones

import com.amazonaws.services.cloudwatchevents.AmazonCloudWatchEvents; import com.amazonaws.services.cloudwatchevents.AmazonCloudWatchEventsClientBuilder; import com.amazonaws.services.cloudwatchevents.model.PutTargetsRequest; import com.amazonaws.services.cloudwatchevents.model.PutTargetsResult; import com.amazonaws.services.cloudwatchevents.model.Target;

Código

final AmazonCloudWatchEvents cwe = AmazonCloudWatchEventsClientBuilder.defaultClient(); Target target = new Target() .withArn(function_arn) .withId(target_id); PutTargetsRequest request = new PutTargetsRequest() .withTargets(target) .withRule(rule_name); PutTargetsResult response = cwe.putTargets(request);

Más información