Tutorial: Erstellen Sie eine EventBridge Pipe, die Quellereignisse filtert - Amazon EventBridge

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: Erstellen Sie eine EventBridge Pipe, die Quellereignisse filtert

In diesem Tutorial erstellen Sie eine Pipe, die eine DynamoDB-Stream-Quelle mit einem SQS Amazon-Warteschlangenziel verbindet. Dazu gehört die Angabe eines Ereignismusters für die Pipe, das beim Filtern von Ereignissen zur Übermittlung an die Warteschlange verwendet werden soll. Anschließend testen Sie die Pipe, um sicherzustellen, dass nur die gewünschten Ereignisse übermittelt werden.

Voraussetzungen: Erstellen der Quelle und des Ziels

Bevor Sie die Pipe erstellen, müssen Sie die Quelle und das Ziel erstellen, mit denen die Pipe verbunden werden soll. In diesem Fall ein Amazon DynamoDB DynamoDB-Datenstream als Pipe-Quelle und eine SQS Amazon-Warteschlange als Pipe-Ziel.

Um diesen Schritt zu vereinfachen, können Sie AWS CloudFormation die Quell- und Zielressourcen bereitstellen. Dazu erstellen Sie eine CloudFormation Vorlage, die die folgenden Ressourcen definiert:

  • Die Pipe-Quelle

    Eine Amazon-DynamoDB-Tabelle namens pipe-tutorial-source mit einem aktivierten Stream, um einen geordneten Informationsfluss zu Elementänderungen in der DynamoDB-Tabelle bereitzustellen.

  • Das Pipe-Ziel

    Eine SQS Amazon-Warteschlange mit dem Namenpipe-tutorial-target, um den DynamoDB-Ereignisstream von Ihrer Pipe zu empfangen.

Um die CloudFormation Vorlage für die Bereitstellung von Pipe-Ressourcen zu erstellen
  1. Kopieren Sie den JSON Vorlagentext im folgenden AWS CloudFormation Vorlage für die Generierung der Voraussetzungen Abschnitt.

  2. Speichern Sie die Vorlage als JSON Datei (z. B.~/pipe-tutorial-resources.json).

Verwenden Sie als Nächstes die Vorlagendatei, die Sie gerade erstellt haben, um einen CloudFormation Stack bereitzustellen.

Anmerkung

Sobald Sie Ihren CloudFormation Stack erstellt haben, werden Ihnen die bereitgestellten AWS Ressourcen in Rechnung gestellt.

Stellen Sie die Voraussetzungen für das Tutorial bereit, indem Sie AWS CLI
  • Führen Sie den folgenden CLI Befehl aus, der den Speicherort Ihrer Vorlagendatei --template-body angibt:

    aws cloudformation create-stack --stack-name pipe-tuturial-resources --template-body file://~/pipe-tutorial-resources.json
Stellen Sie die Voraussetzungen für das Tutorial mithilfe der CloudFormation Konsole bereit
  1. Öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation.

  2. Wählen Sie Stacks und dann Stack erstellen und Mit neuen Ressourcen (Standard) aus.

    CloudFormation zeigt den Assistenten zum Erstellen von Stacks an.

  3. Lassen Sie für Voraussetzung – Vorlage vorbereiten die Standardeinstellung Vorlage ist bereit ausgewählt.

  4. Wählen Sie unter Vorlage festlegen die Option Vorlagendatei hochladen und dann die Datei und Weiter aus.

  5. Konfigurieren Sie den Stack und die Ressourcen, die er bereitstellen soll:

    • Geben Sie unter Stack name (Stack-Name) pipe-tuturial-resources ein.

    • Behalten Sie für Parameter die Standardnamen für die DynamoDB-Tabelle und die SQS Amazon-Warteschlange bei.

    • Wählen Sie Weiter aus.

  6. Wählen Sie Weiter und dann Absenden aus.

    CloudFormation erstellt den Stack und stellt die in der Vorlage definierten Ressourcen bereit.

Weitere Informationen zu CloudFormation finden Sie unter Was ist AWS CloudFormation? im AWS CloudFormation Benutzerhandbuch.

Schritt 1: Erstellen der Pipe

Nachdem die Pipe-Quelle und das Pipe-Ziel bereitgestellt wurden, können Sie jetzt die Pipe erstellen, um die beiden Services zu verbinden.

Erstellen Sie die Pipe mit der EventBridge Konsole
  1. Öffnen Sie die EventBridge Amazon-Konsole unter https://console.aws.amazon.com/events/.

  2. Wählen Sie im Navigationsbereich die Option Pipes aus.

  3. Wählen Sie Pipe erstellen aus.

  4. Geben Sie für Name den Namen pipe-tutorial für die Pipe ein.

  5. Geben Sie die DynamoDB-Datenstromquelle an:

    1. Wählen Sie unter Details für Quelle die Option DynamoDB-Datenstrom aus.

      EventBridge zeigt DynamoDB-spezifische Quellkonfigurationseinstellungen an.

    2. Wählen Sie für DynamoDB-Stream pipe-tutorial-source aus.

      Behalten Sie die Standardeinstellung Latest für Startposition bei.

    3. Wählen Sie Weiter aus.

  6. Geben Sie ein Ereignismuster an und testen Sie es, um Ereignisse zu filtern:

    Durch Filtern können Sie steuern, welche Ereignisse die Pipe an die Anreicherung oder an das Ziel sendet. Die Pipe sendet nur Ereignisse, die dem Ereignismuster entsprechen, an die Anreicherung oder das Ziel.

    Weitere Informationen finden Sie unter Filterung von Ereignissen in Amazon EventBridge Pipes.

    Anmerkung

    Ihnen werden nur die Ereignisse in Rechnung gestellt, die an die Anreicherung oder das Ziel gesendet wurden.

    1. Lassen Sie unter Beispielereignis – optional die Option AWS -Ereignisse ausgewählt und stellen Sie sicher, dass DynamoDB-Stream-Beispielereignis 1 ausgewählt ist.

      Dies ist das Beispielereignis, das Sie verwenden werden, um unser Ereignismuster zu testen.

    2. Geben Sie unter Ereignismuster das folgende Ereignismuster ein:

      { "eventName": ["INSERT", "MODIFY"] }
    3. Wählen Sie Testmuster aus.

      EventBridge zeigt eine Meldung an, dass das Beispielereignis dem Ereignismuster entspricht. Dies liegt daran, dass das Beispielereignis den eventName-Wert INSERT aufweist.

    4. Wählen Sie Weiter aus.

  7. Wählen Sie Weiter aus, um die Angabe einer Anreicherung zu überspringen.

    In diesem Beispiel wählen Sie keine Anreicherung aus. Mit Anreicherungen können Sie einen Service auswählen, um die Daten aus der Quelle zu optimieren, bevor Sie sie an das Ziel senden. Weitere Details finden Sie unter Anreicherung von Veranstaltungen in Amazon EventBridge Pipes.

  8. Geben Sie Ihre SQS Amazon-Warteschlange als Pipe-Ziel an:

    1. Wählen Sie unter Details für Target-Service die Option SQSAmazon-Warteschlange aus.

    2. Wählen Sie für Warteschlange pipe-tutorial-target aus.

    3. Lassen Sie den Abschnitt Zieleingabe-Transformator leer.

      Weitere Informationen finden Sie unter Amazon EventBridge Pipes-Eingabetransformation.

  9. Wählen Sie Pipe erstellen aus.

    EventBridge erstellt die Pipe und zeigt die Pipe-Detailseite an. Die Pipe ist bereit, sobald ihr Status auf Running aktualisiert wurde.

Schritt 2: Bestätigen der Pipe-Filterereignisse

Die Pipe ist eingerichtet, hat aber noch keine Ereignisse aus der Tabelle empfangen.

Zum Testen der Pipe aktualisieren Sie die Einträge in der DynamoDB-Tabelle. Bei jeder Aktualisierung werden Ereignisse generiert, die der DynamoDB-Stream an unsere Pipe sendet. Einige entsprechen dem von Ihnen angegebenen Ereignismuster, andere nicht. Sie können dann die SQS Amazon-Warteschlange untersuchen, um sicherzustellen, dass die Pipe nur die Ereignisse übermittelt hat, die unserem Ereignismuster entsprachen.

Aktualisieren der Tabellenelemente, um Ereignisse zu generieren
  1. Öffnen Sie die DynamoDB-Konsole unter. https://console.aws.amazon.com/dynamodb/

  2. Wählen Sie in der linken Navigationsleiste die Option Tabellen aus. Wählen Sie die Tabelle pipe-tutorial-source aus.

    DynamoDB zeigt die Tabellendetailseite für pipe-tutorial-source an.

  3. Wählen Sie Tabellenelemente durchsuchen und dann Element erstellen aus.

    DynamoDB zeigt die Seite Element erstellen an.

  4. Erstellen Sie unter Attribute ein neues Tabellenelement:

    1. Geben Sie für Album Album A ein.

    2. Geben Sie für Künstler Artist A ein.

    3. Wählen Sie Create item (Element erstellen) aus.

  5. Aktualisieren Sie das Tabellenelement:

    1. Wählen Sie unter Zurückgegebene Elemente die Option Album A aus.

    2. Wählen Sie Neues Attribut hinzufügen und anschließend Zeichenfolge aus.

    3. Geben Sie den neuen Wert Song mit dem Wert Song A ein.

    4. Wählen Sie Änderungen speichern aus.

  6. Löschen Sie das Tabellenelement:

    1. Aktivieren Sie unter Zurückgegebene Elemente die Option Album A.

    2. Wählen Sie im Menü Aktionen die Option Elemente löschen aus.

Sie haben drei Aktualisierungen am Tabellenelement vorgenommen. Dadurch werden drei Ereignisse für den DynamoDB-Datenstrom generiert:

  • Ein INSERT-Ereignis, als Sie das Element erstellt haben

  • Ein MODIFY-Ereignis, als Sie dem Element ein Attribut hinzugefügt haben

  • Ein REMOVE-Ereignis, als Sie das Element gelöscht haben

Das von Ihnen für die Pipe angegebene Ereignismuster sollte jedoch alle Ereignisse herausfiltern, bei denen es sich nicht um INSERT- oder MODIFY-Ereignisse handelt. Stellen Sie als Nächstes sicher, dass die Pipe die erwarteten Ereignisse an die Warteschlange übermittelt hat.

Bestätigen, dass die erwarteten Ereignisse an die Warteschlange übermittelt wurden
  1. Öffnen Sie die SQS Amazon-Konsole unter https://console.aws.amazon.com/sqs/.

  2. Wählen Sie die Warteschlange pipe-tutorial-target aus.

    Amazon SQS zeigt die Seite mit den Warteschlangendetails an.

  3. Wählen Sie Nachrichten senden und empfangen und dann unter Nachrichten empfangen die Option Abrufen von Nachrichten aus.

    Die Warteschlange fragt die Pipe ab und listet dann die Ereignisse auf, die sie empfängt.

  4. Wählen Sie den Namen des Ereignisses, um das Ereignis zu sehenJSON, das zugestellt wurde.

In der Warteschlange sollten sich zwei Ereignisse befinden: eines mit dem eventName INSERT und eines mit dem eventName MODIFY. Die Pipe hat das Ereignis für das Löschen des Tabellenelements jedoch nicht übermittelt, da dieses Ereignis den eventName REMOVE aufwies, der nicht dem von Ihnen in der Pipe angegebenen Ereignismuster entsprach.

Schritt 3: Bereinigen Ihrer Ressourcen

Löschen Sie zunächst die Pipe selbst.

Löschen Sie die Pipe mithilfe der EventBridge Konsole
  1. Öffnen Sie die EventBridge Amazon-Konsole unter https://console.aws.amazon.com/events/.

  2. Wählen Sie im Navigationsbereich die Option Pipes aus.

  3. Wählen Sie die Pipe pipe-tutorial und dann Löschen aus.

Löschen Sie anschließend den CloudFormation Stack, um zu verhindern, dass Ihnen die fortgesetzte Nutzung der darin bereitgestellten Ressourcen in Rechnung gestellt wird.

Löschen Sie die Voraussetzungen für das Tutorial mithilfe der AWS CLI
  • Führen Sie den folgenden CLI Befehl aus, der den Namen Ihres Stacks --stack-name angibt:

    aws cloudformation delete-stack --stack-name pipe-tuturial-resources
Löschen Sie die Voraussetzungen für das Tutorial mithilfe der AWS CloudFormation Konsole
  1. Öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation.

  2. Wählen Sie auf der Seite Stacks den Stack und dann Löschen aus.

  3. Wählen Sie Löschen aus, um Ihre Aktion zu bestätigen.

AWS CloudFormation Vorlage für die Generierung der Voraussetzungen

Verwenden Sie das JSON Folgende, um eine CloudFormation Vorlage für die Bereitstellung der Quell- und Zielressourcen zu erstellen, die für dieses Tutorial erforderlich sind.

{ "AWSTemplateFormatVersion": "2010-09-09", "Description" : "Provisions resources to use with the EventBridge Pipes tutorial. You will be billed for the AWS resources used if you create a stack from this template.", "Parameters" : { "SourceTableName" : { "Type" : "String", "Default" : "pipe-tutorial-source", "Description" : "Specify the name of the table to provision as the pipe source, or accept the default." }, "TargetQueueName" : { "Type" : "String", "Default" : "pipe-tutorial-target", "Description" : "Specify the name of the queue to provision as the pipe target, or accept the default." } }, "Resources": { "PipeTutorialSourceDynamoDBTable": { "Type": "AWS::DynamoDB::Table", "Properties": { "AttributeDefinitions": [{ "AttributeName": "Album", "AttributeType": "S" }, { "AttributeName": "Artist", "AttributeType": "S" } ], "KeySchema": [{ "AttributeName": "Album", "KeyType": "HASH" }, { "AttributeName": "Artist", "KeyType": "RANGE" } ], "ProvisionedThroughput": { "ReadCapacityUnits": 10, "WriteCapacityUnits": 10 }, "StreamSpecification": { "StreamViewType": "NEW_AND_OLD_IMAGES" }, "TableName": { "Ref" : "SourceTableName" } } }, "PipeTutorialTargetQueue": { "Type": "AWS::SQS::Queue", "Properties": { "QueueName": { "Ref" : "TargetQueueName" } } } } }