Verwenden von Amazon CloudWatch Events - AWS SDK for Java 2.x

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden von Amazon CloudWatch Events

CloudWatch Ereignisse bieten einen Stream von Systemereignissen in nahezu Echtzeit, der Änderungen an AWS Ressourcen an Amazon EC2 Instances, Lambda Funktionen, Kinesis Streams, Amazon ECS Aufgaben, Step Functions Zustandsmaschinen, Amazon SNS Themen, Amazon SQS Warteschlangen oder integrierten Zielen beschreibt. Sie können Ereignisse zuordnen und sie zu einer oder mehreren Zielfunktionen oder Streams umleiten, indem Sie einfache Regeln nutzen.

Amazon EventBridge ist die Entwicklung von CloudWatch Events. Beide Services verwenden dieselbe API, sodass Sie weiterhin den vom SDK bereitgestellten CloudWatch Events-Client verwenden oder zum EventBridge Client des SDK für Java für CloudWatch die Events-Funktionalität migrieren können. Die Dokumentation zum CloudWatch Events-Benutzerhandbuch und die API-Referenz sind jetzt über die EventBridge Dokumentationsseiten verfügbar. https://docs.aws.amazon.com/eventbridge/latest/userguide/index.html

Hinzufügen von Ereignissen

Um benutzerdefinierte CloudWatch Ereignisse hinzuzufügen, rufen Sie die -CloudWatchEventsClient’sputEventsMethode mit einem PutEventsRequest Objekt auf, das ein oder mehrere PutEventsRequestEntry Objekte enthält, die Details zu den einzelnen Ereignissen enthalten. Sie können mehrere Parameter für den Eintrag angeben, wie z. B. die Quelle und den Typ des Ereignisses, mit dem Ereignis verknüpfte Ressourcen usw.

Anmerkung

Sie können maximal 10 Ereignisse pro Aufruf von putEvents angeben.

Importe

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;

Code

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

Sehen Sie sich das vollständige Beispiel auf an GitHub.

Hinzufügen von Regeln

Um eine Regel zu erstellen oder zu aktualisieren, rufen Sie die CloudWatchEventsClient’s putRule Methode mit einem PutRuleRequest mit dem Namen der Regel und optionalen Parametern wie dem Ereignismuster , IAM role, die der Regel zugeordnet werden soll, und einem Planungsausdruck auf, der beschreibt, wie oft die Regel ausgeführt wird.

Importe

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;

Code

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

Sehen Sie sich das vollständige Beispiel auf an GitHub.

Hinzufügen von Zielen

Ziele sind die Ressourcen, die beim Auslösen einer Regel aufgerufen werden. Beispiele für Ziele sind Amazon EC2 Instances, Lambda Funktionen, Kinesis Streams, Amazon ECS Aufgaben, Step Functions Zustandsautomaten und integrierte Ziele.

Um einer Regel ein Ziel hinzuzufügen, rufen Sie die CloudWatchEventsClient’s putTargets Methode mit einem auf, der die zu aktualisierende Regel PutTargetsRequest enthält, und eine Liste der Ziele, die der Regel hinzugefügt werden sollen.

Importe

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;

Code

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

Sehen Sie sich das vollständige Beispiel auf an GitHub.

Weitere Informationen