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.
Tutorial: Ereignisse mithilfe EventBridge von Schemas an Amazon Kinesis senden
Sie können AWS API Anrufereignisse EventBridge an einen Amazon Kinesis Kinesis-Stream senden, Kinesis Data Streams Streams-Anwendungen erstellen und große Datenmengen verarbeiten. In diesem Tutorial erstellen Sie einen Kinesis-Stream und anschließend eine Regel in der EventBridge Konsole, die Ereignisse an diesen Stream sendet, wenn eine EC2Amazon-Instance stoppt.
Schritte:
Voraussetzungen
In diesem Tutorial verwenden Sie Folgendes:
Verwenden Sie den AWS CLI , um mit Kinesis-Streams zu arbeiten.
Informationen zur AWS CLI Installation von finden Sie unter Installation, Aktualisierung und Deinstallation der AWS CLI Version 2.
Anmerkung
In diesem Tutorial werden AWS Ereignisse und die integrierte aws.events
Schemaregistrierung verwendet. Sie können auch eine EventBridge Regel erstellen, die auf dem Schema Ihrer benutzerdefinierten Ereignisse basiert, indem Sie sie manuell zu einer benutzerdefinierten Schemaregistrierung hinzufügen oder die Schemaerkennung verwenden.
Weitere Informationen zu Schemata finden Sie unter EventBridge Amazon-Schemas. Weitere Informationen zum Erstellen einer Regel mithilfe anderer Ereignismusteroptionen finden Sie unter Regeln erstellen, die auf Ereignisse in Amazon reagieren EventBridge.
Schritt 1: Erstellen eines Amazon-Kinesis-Streams
Verwenden Sie an einer Befehlszeile den Befehl, um einen Stream zu create-stream
AWS CLI erstellen.
aws kinesis create-stream --stream-name
test
--shard-count 1
Wenn der Stream-Status ACTIVE
ist, ist der Stream bereit. Verwenden Sie den Befehl describe-stream
, um den Status eines Streams zu überprüfen.
aws kinesis describe-stream --stream-name
test
Schritt 2: Erstellen einer Regel
Erstellen Sie eine Regel, um Ereignisse an Ihren Stream zu senden, wenn Sie eine EC2 Amazon-Instance beenden.
So erstellen Sie eine Regel
Öffnen Sie die EventBridge Amazon-Konsole unter https://console.aws.amazon.com/events/
. -
Wählen Sie im Navigationsbereich Rules aus.
-
Wählen Sie Regel erstellen aus.
-
Geben Sie einen Namen und eine Beschreibung für die Regel ein. Nennen Sie die Regel beispielsweise
TestRule
. -
Wählen Sie für Event Bus die Option Standard aus.
-
Bei Rule type (Regeltyp) wählen Sie Rule with an event pattern (Regel mit einem Ereignismuster) aus.
-
Wählen Sie Weiter aus.
-
Wählen Sie als Eventquelle AWS Events oder EventBridge Partnerevents aus.
-
Wählen Sie für Erstellungsmethode die Option Schema verwenden aus.
-
Gehen Sie bei Event pattern (Ereignismuster) wie folgt vor:
-
Wählen Sie für Schematyp die Option Schema aus der Schemaregistrierung auswählen aus.
-
Wählen Sie für Schemaregistrierung die Option aws.events aus der Dropdown-Liste aus.
-
Wählen Sie für Schema die Option aws.ec2@ EC2InstanceStateChangeNotification aus der Dropdownliste aus.
EventBridge zeigt das Ereignisschema unter Modelle an.
EventBridge zeigt neben allen Eigenschaften, die für das Ereignis und nicht für das Ereignismuster erforderlich sind, ein rotes Sternchen an.
-
Legen Sie für Modelle die folgenden Eigenschaften für den Ereignisfilter fest:
Wählen Sie + Bearbeiten neben der Statuseigenschaft aus.
Lassen Sie das Feld Beziehung leer. Geben Sie für Wert
running
ein. Wählen Sie Festlegen aus.Wählen Sie + Bearbeiten neben der Quelleigenschaft aus.
Lassen Sie das Feld Beziehung leer. Geben Sie für Wert
aws.ec2
ein. Wählen Sie Festlegen aus.Wählen Sie + Bearbeiten neben der Detailtypeigenschaft aus.
Lassen Sie das Feld Beziehung leer. Geben Sie für Wert
EC2 Instance State-change Notification
ein. Wählen Sie Festlegen aus.
-
Um das von Ihnen erstellte Ereignismuster anzuzeigen, wählen Sie Ereignismuster generieren in JSON
EventBridge zeigt das Ereignismuster an inJSON:
{ "detail": { "state": ["running"] }, "detail-type": ["EC2 Instance State-change Notification"], "source": ["aws.ec2"] }
-
-
Wählen Sie Weiter aus.
-
Bei Target types (Zieltypen) wählen Sie AWS -Service aus.
-
Wählen Sie für Ziel auswählen die Option Kinesis-Stream aus der Dropdown-Liste aus.
-
Wählen Sie für Stream den Kinesis-Stream aus, den Sie im Abschnitt Schritt 1: Erstellen eines Amazon-Kinesis-Streams erstellt haben. Wählen Sie in diesem Beispiel
test
aus. -
Wählen Sie für Ausführungsrolle die Option Eine neue Rolle für diese spezifische Ressource erstellen aus.
-
Wählen Sie Weiter.
-
Wählen Sie Weiter.
-
Überprüfen Sie die Details der Regel und wählen Sie dann Create rule (Regel erstellen) aus.
Schritt 3: Testen der Regel
Um Ihre Regel zu testen, beenden Sie eine EC2 Amazon-Instance. Warten Sie einige Minuten, bis die Instance beendet ist, und überprüfen Sie dann Ihre CloudWatch Metriken, um sicherzustellen, dass Ihre Funktion ausgeführt wurde.
Testen der Regel durch Anhalten einer Instance
Öffnen Sie die EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/
. -
Starten Sie eine Instance. Weitere Informationen finden Sie unter Launch Your Instance im EC2Amazon-Benutzerhandbuch.
Öffnen Sie die EventBridge Amazon-Konsole unter https://console.aws.amazon.com/events/
. -
Wählen Sie im Navigationsbereich Regeln aus.
Wählen Sie den Namen der von Ihnen erstellten Regel und Metrics for the rule (Metriken für die Regel) aus.
-
(Optional) Beenden Sie die Instance, wenn Sie fertig sind. Weitere Informationen finden Sie unter Terminate Your Instance im EC2Amazon-Benutzerhandbuch.
Schritt 4: Überprüfen, ob das Ereignis gesendet wurde
Sie können das verwenden AWS CLI , um den Datensatz aus dem Stream abzurufen und zu überprüfen, ob das Ereignis gesendet wurde.
So rufen Sie den Datensatz ab
-
Verwenden Sie an einer Eingabeaufforderung den Befehl
get-shard-iterator
, um mit dem Lesen aus dem Kinesis-Stream zu beginnen.aws kinesis get-shard-iterator --shard-id shardId-000000000000 --shard-iterator-type TRIM_HORIZON --stream-name
test
Es folgt eine Beispielausgabe.
{ "ShardIterator": "AAAAAAAAAAHSywljv0zEgPX4NyKdZ5wryMzP9yALs8NeKbUjp1IxtZs1Sp+KEd9I6AJ9ZG4lNR1EMi+9Md/nHvtLyxpfhEzYvkTZ4D9DQVz/mBYWRO6OTZRKnW9gd+efGN2aHFdkH1rJl4BL9Wyrk+ghYG22D2T1Da2EyNSH1+LAbK33gQweTJADBdyMwlo5r6PqcP2dzhg=" }
-
Um den Datensatz abzurufen, verwenden Sie den folgenden
get-records
-Befehl. Verwenden Sie den Shard-Iterator aus der Ausgabe im vorherigen Schritt.aws kinesis get-records --shard-iterator
AAAAAAAAAAHSywljv0zEgPX4NyKdZ5wryMzP9yALs8NeKbUjp1IxtZs1Sp+KEd9I6AJ9ZG4lNR1EMi+9Md/nHvtLyxpfhEzYvkTZ4D9DQVz/mBYWRO6OTZRKnW9gd+efGN2aHFdkH1rJl4BL9Wyrk+ghYG22D2T1Da2EyNSH1+LAbK33gQweTJADBdyMwlo5r6PqcP2dzhg=
Wenn der Befehl erfolgreich war, werden Datensätze aus dem Stream für eine bestimmte Shard abgefragt. Sie können null oder mehr Datensätze erhalten. Die zurückgegebenen Datensätze stellen möglicherweise nicht alle Datensätze in Ihrem Stream dar. Wenn Sie nicht die erwarteten Daten erhalten, rufen Sie
get-records
weiter auf. -
Datensätze in Kinesis sind in Base64 codiert. Verwenden Sie einen Base64-Decoder, um die Daten zu dekodieren, sodass Sie überprüfen können, ob es sich um das Ereignis handelt, das in der Form an den Stream gesendet wurde. JSON
Schritt 5: Bereinigen Ihrer Ressourcen
Sie können jetzt die Ressourcen, die Sie für dieses Tutorial erstellt haben, löschen, es sei denn, Sie möchten sie behalten. Indem Sie AWS Ressourcen löschen, die Sie nicht mehr verwenden, verhindern Sie, dass Ihr Konto unnötig belastet wird. AWS
Um die EventBridge Regel (n) zu löschen
-
Öffnen Sie die Regelseite
der EventBridge Konsole. -
Wählen Sie die Regel(n) aus, die Sie erstellt haben.
-
Wählen Sie Delete (Löschen).
-
Wählen Sie Delete (Löschen).
So löschen Sie den/die Kinesis-Stream(s)
-
Öffnen Sie die Datenstromseite
der Kinesis-Konsole. -
Wählen Sie den/die Stream(s) aus, den/die Sie erstellt haben.
-
Wählen Sie Aktionen, Löschen aus.
-
Geben Sie delete in das Feld ein und wählen Sie Löschen aus.