Use os CloudWatch eventos da Amazon - AWS SDK for Java 2.x

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Use os CloudWatch eventos da Amazon

CloudWatch O Events fornece um fluxo quase em tempo real de eventos do sistema que descrevem mudanças nos AWS recursos em Amazon EC2 instâncias, Lambda funções, Kinesis fluxos, Amazon ECS tarefas, máquinas de Step Functions estado, Amazon SNS tópicos, Amazon SQS filas ou destinos integrados. Você pode comparar eventos e roteá-los para um ou mais fluxos ou funções de destino usando regras simples.

A Amazon EventBridge é a evolução dos CloudWatch eventos. Ambos os serviços usam a mesma API, para que você possa continuar usando o cliente de CloudWatch eventos fornecido pelo SDK ou migrar para o EventBridge cliente do SDK for Java para a funcionalidade de eventos. CloudWatch CloudWatch A documentação do Guia do Usuário de Eventos e a referência da API agora estão disponíveis nos sites de EventBridge documentação.

Adicionar eventos

Para adicionar CloudWatch eventos personalizados, chame o CloudWatchEventsClient’s putEvents método com um PutEventsRequestobjeto que contém um ou mais PutEventsRequestEntryobjetos que fornecem detalhes sobre cada evento. Você pode especificar vários parâmetros para a entrada, como a origem e o tipo do evento, recursos associados ao evento e assim por diante.

nota

Você pode especificar um máximo de dez eventos por chamada para putEvents.

Importações

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); } }

Veja o exemplo completo em GitHub.

Adicionar regras

Para criar ou atualizar uma regra, chame o CloudWatchEventsClient’s putRule método com a PutRuleRequestcom o nome da regra e parâmetros opcionais, como o padrão do evento, a IAM função a ser associada à regra e uma expressão de agendamento que descreva a frequência com que a regra é executada.

Importações

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); } }

Veja o exemplo completo em GitHub.

Adicionar destinos

Destinos são os recursos invocados quando uma regra é disparada. Exemplos de alvos incluem Amazon EC2 instâncias, Lambda funções, Kinesis fluxos, Amazon ECS tarefas, máquinas de Step Functions estado e destinos integrados.

Para adicionar um destino a uma regra, chame o CloudWatchEventsClient’s putTargets método PutTargetsRequestcontendo a regra a ser atualizada e uma lista de destinos a serem adicionados à regra.

Importações

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); } }

Veja o exemplo completo em GitHub.

Mais informações