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 Sie Amazon CloudWatch Events
CloudWatch Events liefert nahezu in Echtzeit einen Stream von Systemereignissen, die Änderungen an AWS Ressourcen an Amazon EC2 Instanzen, Lambda Funktionen, Kinesis Streams, Amazon ECS Aufgaben, Step Functions Zustandsmaschinen, Amazon SNS Themen, Amazon SQS Warteschlangen oder integrierten Zielen beschreiben. Sie können Ereignisse zuordnen und sie zu einer oder mehreren Zielfunktionen oder Streams umleiten, indem Sie einfache Regeln nutzen.
Amazon EventBridge ist die Weiterentwicklung von CloudWatch Events. Beide Dienste verwenden dieselbe API, sodass Sie weiterhin den vom SDK bereitgestellten CloudWatch Events-Client
Hinzufügen von Ereignissen
Um benutzerdefinierte CloudWatch Ereignisse hinzuzufügen, rufen Sie die CloudWatchEventsClient’s
putEvents
Methode mit einem PutEventsRequest
PutEventsRequestEntry
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); } }
Das vollständige Beispiel
Hinzufügen von Regeln
Um eine Regel zu erstellen oder zu aktualisieren, rufen Sie die CloudWatchEventsClient’s
putRule
Methode mit einem PutRuleRequest
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); } }
Das vollständige Beispiel
Hinzufügen von Zielen
Ziele sind die Ressourcen, die beim Auslösen einer Regel aufgerufen werden. Zu den Beispielzielen gehören Amazon EC2 Instanzen, Lambda Funktionen, Kinesis Streams, Amazon ECS Aufgaben, Step Functions Zustandsmaschinen und integrierte Ziele.
Um einer Regel ein Ziel hinzuzufügen, rufen Sie die CloudWatchEventsClient’s
putTargets
Methode mit einer auf, die die zu aktualisierende Regel und eine Liste von Zielen PutTargetsRequest
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); } }
Das vollständige Beispiel
Weitere Informationen
-
Hinzufügen von Ereignissen mit PutEvents im EventBridge Amazon-Benutzerhandbuch
-
Ausdrücke für Regeln planen im EventBridge Amazon-Benutzerhandbuch
-
Ereignistypen für CloudWatch Events im EventBridge Amazon-Benutzerhandbuch
-
Ereignismuster im EventBridge Amazon-Benutzerhandbuch
-
PutEventsin der Amazon EventBridge API-Referenz
-
PutTargetsin der Amazon EventBridge API-Referenz
-
PutRulein der Amazon EventBridge API-Referenz