

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.

# Erste Schritte: Eine EventBridge Amazon-Pipe erstellen
<a name="pipes-get-started"></a>

Um uns mit Rohren und ihren Funktionen vertraut zu machen, verwenden wir eine CloudFormation Vorlage, um eine EventBridge Leitung und die zugehörigen Komponenten einzurichten. Anschließend können wir uns mit verschiedenen Rohrmerkmalen vertraut machen.

**Tipp**  
Für eine umfassendere, praktische Lernerfahrung sollten Sie den [EventBridge Pipes Workshop](https://catalog.workshops.aws/eb-pipes) ausprobieren. Dieser interaktive Workshop führt Sie durch den Aufbau und die Fehlerbehebung einer Pipe, die DynamoDB mit API Gateway mit einer Lambda-Anreicherung verbindet.

Die Vorlage erstellt eine EventBridge Pipe, die einen Stream aus einer DynamoDB-Tabelle mit einer Amazon SQS SQS-Warteschlange verbindet. Jedes Mal, wenn ein Datensatz in der Datenbanktabelle erstellt oder geändert wird, sendet die Pipe das resultierende Ereignis an die Warteschlange. 

Die bereitgestellte Pipe besteht aus:
+ Eine DynamoDB-Tabelle (und ein Stream) als Pipe-Quelle und eine Amazon SQS SQS-Warteschlange als Ziel.
+ Eine Ausführungsrolle, die die erforderlichen Berechtigungen für EventBridge den Zugriff auf die DynamoDB-Tabelle und die Amazon SQS SQS-Warteschlange gewährt.
+ Die Pipe selbst, die einen Ereignisfilter enthält, der nur Ereignisse auswählt, die beim Erstellen (Einfügen) oder Ändern eines Tabellenelements generiert werden.

Spezifische technische Details der Vorlage finden Sie unter[Details zur Vorlage](#pipes-get-started-template-details).

![\[Datenbankereignisse werden einem Filter zugeordnet und bei Übereinstimmung an eine Warteschlange gesendet.\]](http://docs.aws.amazon.com/de_de/eventbridge/latest/userguide/images/pipes-get-started_eventbridge_architectural.svg)


## Erstellen der Pipe mit CloudFormation
<a name="pipes-get-started-create"></a>

Um die Pipe und die zugehörigen Ressourcen zu erstellen, erstellen wir eine CloudFormation Vorlage und verwenden sie, um einen Stapel zu erstellen, der eine Beispiel-Pipe mit Quelle und Ziel enthält.

**Wichtig**  
Wenn Sie einen Stack anhand dieser Vorlage erstellen, werden Ihnen die verwendeten Amazon-Ressourcen in Rechnung gestellt.

### Die Vorlage erstellen
<a name="pipes-get-started-file"></a>

Erstellen Sie zunächst die CloudFormation Vorlage.

1. Klicken Sie im Abschnitt „[Vorlage](#pipes-get-started-template)“ auf das Kopiersymbol auf der Registerkarte **JSON** oder **YAML**, um den Inhalt der Vorlage zu kopieren.

1. Fügen Sie den Inhalt der Vorlage in eine neue Datei ein.

1. Speichern Sie die Datei lokal.

### Erstellen des -Stacks
<a name="pipes-get-started-stack"></a>

Verwenden Sie als Nächstes die Vorlage, die Sie gespeichert haben, um einen CloudFormation Stack bereitzustellen.

1. Öffnen Sie die CloudFormation Konsole unter [https://console.aws.amazon.com/cloudformation/](https://console.aws.amazon.com/cloudformation/).

1. Auf der Seite **Stacks** wählen Sie im Menü **Stack erstellen** die Option **Mit neuen Ressourcen (Standard)** aus.

1. Legen Sie die Vorlage fest:

   1. Wählen Sie unter **Voraussetzung** die Option **Vorhandene Vorlage wählen** aus.

   1. Wählen Sie unter **Vorlage angeben** die Option **Eine Vorlagendatei hochladen** aus.

   1. Klicken Sie auf **Datei auswählen**, navigieren Sie zur gewünschten Vorlagendatei und wählen Sie diese aus.

   1. Wählen Sie **Weiter** aus.

1. Geben Sie die Stack-Details ein:

   1. Geben Sie einen Stack-Namen ein.

   1. Akzeptieren Sie für Parameter die Standardwerte oder geben Sie Ihre eigenen ein.

   1. Wählen Sie **Weiter** aus.

1. Konfigurieren Sie die Stack-Optionen:

   1. Wählen Sie unter **Optionen für Stack-Fehler** die Option **Löschen aller neu erstellten Ressourcen** aus.
**Anmerkung**  
Durch Auswahl dieser Option vermeiden Sie möglicherweise anfallende Kosten für Ressourcen, deren Löschrichtlinie die Beibehaltung auch vorsieht, wenn die Stack-Erstellung fehlschlägt. Weitere Informationen finden Sie unter [`DeletionPolicy`-Attribut](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html) im *Benutzerhandbuch zu CloudFormation *.

   1. Akzeptieren Sie alle anderen Standardwerte.

   1. Markieren Sie unter **Funktionen** das Kästchen, um zu bestätigen, dass CloudFormation dadurch IAM-Ressourcen in Ihrem Konto erstellt werden könnten.

   1. Wählen Sie **Weiter** aus.

1. Überprüfen Sie die Stack-Details und klicken Sie auf **Absenden**.

**Erstellen Sie den Stack mit CloudFormation ()AWS CLI**

Sie können den Stack auch verwenden AWS CLI , um den Stack zu erstellen.
+ Verwenden Sie den Befehl [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html).
  + Akzeptieren Sie die Standardwerte der Vorlagenparameter und geben Sie den Stacknamen an. Verwenden Sie den `template-body` Parameter, um den Inhalt der Vorlage zu übergeben oder `template-url` um einen URL-Speicherort anzugeben.

    ```
    aws cloudformation create-stack \
      --stack-name eventbridge-rule-tutorial \
      --template-body template-contents \
      --capabilities CAPABILITY_IAM
    ```
  + Überschreiben Sie die Standardwerte eines oder mehrerer Vorlagenparameter. Beispiel:

    ```
    aws cloudformation create-stack \
      --stack-name eventbridge-rule-tutorial \
      --template-body template-contents \
      --parameters \
        ParameterKey=SourceTableName,ParameterValue=pipe-example-source \
        ParameterKey=TargetQueueName,ParameterValue=pipe-example-target \
        ParameterKey=PipeName,ParameterValue=pipe-with-filtering-example \
      --capabilities CAPABILITY_IAM
    ```

CloudFormation erstellt den Stapel. Sobald die Stack-Erstellung abgeschlossen ist, können die Stack-Ressourcen verwendet werden. Sie können den Tab **Ressourcen** auf der Stack-Detailseite verwenden, um die Ressourcen anzuzeigen, die in Ihrem Konto bereitgestellt wurden.

## Erkunden Sie die Möglichkeiten von Pipe
<a name="pipes-get-started-using"></a>

Sobald die Pipe erstellt wurde, können Sie die EventBridge Konsole verwenden, um den Betrieb der Pipe zu beobachten und die Übertragung von Testereignissen zu testen.

1. Die EventBridge Konsole zu [https://console.aws.amazon.com/events/Hause öffnen? \$1/Rohre](https://console.aws.amazon.com/events/home?#/pipes).

1. Wählen Sie die Pipe aus, die Sie erstellt haben.

   Auf der Seite mit den Rohrdetails werden im Abschnitt **Rohrkomponenten** die Ressourcen angezeigt, aus denen das Rohr besteht. Außerdem enthält er Registerkarten mit weiteren Informationen zu den einzelnen Komponenten.  
![\[Auf der Seite mit den Rohrdetails werden Quell-, Filter- und Zielkomponenten für die Leitung grafisch angezeigt.\]](http://docs.aws.amazon.com/de_de/eventbridge/latest/userguide/images/pipes-get-started_eventbridge_pipe-detail.png)

   Sie finden die Ausführungsrolle, die wir für die Pipe erstellt haben, auf der Registerkarte **Einstellungen** im Abschnitt **Berechtigungen**.

### Den Rohrfilter untersuchen
<a name="pipes-get-started-using-filter"></a>

Bevor wir den Pipe-Betrieb testen, untersuchen wir den Filter, den wir angegeben haben, um zu kontrollieren, welche Ereignisse an das Ziel gesendet werden. Die Pipe sendet nur Ereignisse, die den Filterkriterien entsprechen, an das Ziel. Alle anderen Ereignisse werden verworfen. In diesem Fall möchten wir nur, dass Ereignisse, die beim Erstellen oder Ändern von Tabelleneinträgen generiert werden, an die Amazon SQS SQS-Warteschlange gesendet werden.
+ Wählen Sie auf der Rohrdetailseite unter **Rohrkomponenten** die Registerkarte **Filterung** aus.

  Wir haben einen Filter hinzugefügt, der nur Ereignisse auswählt, bei denen der auf `INSERT` oder gesetzt `eventName` ist`MODIFY`. 

  ```
  {
    "eventName": ["INSERT", "MODIFY"]
  }
  ```

### Ereignisse über die Pipe senden
<a name="pipes-get-started-using-source"></a>

Als Nächstes generieren wir Ereignisse in der Pipe-Quelle, um zu testen, ob die Pipe-Filterung und -Übertragung korrekt funktionieren. Dazu erstellen und bearbeiten wir ein Element in der DynamoDB-Tabelle, die wir als Pipe-Quelle angegeben haben.

1. Wählen Sie auf der Rohrdetailseite unter **Rohrkomponenten** die Registerkarte **Quelle** aus.

1. Wählen Sie unter **Quelle** den Namen des DynamoDB-Streams aus.

   Dadurch wird die DynamoDB-Konsole in einem separaten Fenster geöffnet, in dem die Details der Quelltabelle angezeigt werden.

1. Wählen Sie Elemente **erkunden** aus.

1. Generieren Sie ein `INSERT` Ereignis, indem Sie ein Element in der Tabelle erstellen:

   1. Wählen Sie **Element erstellen** aus.

   1. Fügen Sie Werte für die Attribute **Album** und **Künstler** hinzu.

   1. Wählen Sie **Element erstellen** aus.

1. Generieren Sie ein Ereignis `DELETE` und ein `INSERT` Ereignis, indem Sie das Element bearbeiten:

   1. Wählen Sie das Element aus der Liste aus und klicken Sie im Menü **Aktionen** auf **Element bearbeiten**.

   1. Geben Sie einen neuen Wert für das **Album** - oder **Künstlerattribut** ein.

   1. Markieren Sie das Kästchen, das bestätigt, dass Sie den Wert der Elementschlüssel ändern, und wählen Sie dann **Objekt neu erstellen.**

      Dies führt dazu, dass das Element gelöscht und anschließend neu erstellt wird, wodurch ein `DELETE` Ereignis und dann ein neues `INSERT` Ereignis generiert wird.

1. Generieren Sie ein `MODIFY` Ereignis, indem Sie dem Element ein Attribut hinzufügen:

   1. Wählen Sie das Element aus der Liste aus und klicken Sie im Menü **Aktionen** auf **Element bearbeiten**.

   1. Wählen **Sie im Menü Neues Attribut hinzufügen** die Option **Zahl** aus.

   1. Geben Sie als Attributnamen **Jahr** und dann einen Wert für das Attribut ein. Klicken Sie auf **Save and close**.

### Bestätigung der Übertragung des Ereignisses über die Pipe
<a name="pipes-get-started-using-target"></a>

Abschließend bestätigen wir, dass die Pipe die Ereignisse, die wir durch das Erstellen und Bearbeiten des Tabellenelements in DynamoDB generiert haben, erfolgreich gefiltert und übermittelt hat.

1. Wählen Sie auf der Rohrdetailseite unter **Rohrkomponenten** die Registerkarte **Ziel** aus.

1. Wählen Sie unter **Target** den Namen der Amazon SQS SQS-Warteschlange aus.

   Dadurch wird die Amazon SQS SQS-Konsole in einem separaten Fenster geöffnet, in dem die Details der Zielwarteschlange angezeigt werden.

1. Wählen Sie **Nachrichten senden und empfangen**.

1. Wählen **Sie unter Nachrichten empfangen** die Option Nach **Nachrichten abfragen** aus.

   Amazon SQS lädt empfangene Nachrichten in die Warteschlange. Klicken Sie auf eine einzelne Nachricht, um deren Details zu sehen.

   In der Warteschlange sollten sich drei Ereignismeldungen befinden: 
   + Zwei Typen`INSERT`, eine wurde generiert, als Sie das Tabellenelement zum ersten Mal erstellt haben, und die andere, als Sie das Element durch Ändern eines Schlüsselwerts neu erstellt haben.
   + Einer vom Typ`MODIFY`, der generiert wurde, als Sie dem Tabellenelement ein Attribut hinzugefügt haben.

   Beachten Sie, dass sich `DELETE` in der Warteschlange keine Ereignismeldung dieses Typs befindet, obwohl eine generiert wurde, als Sie das Tabellenelement gelöscht und durch Ändern eines Schlüsselwerts neu erstellt haben. Der von uns angegebene Pipefilter wählt nur ein `INSERT` und aus`MODIFY`, sodass die Pipe das `DELETE` Ereignis herausgefiltert hat, anstatt es an die Warteschlange weiterzuleiten.

## Bereinigung: Löschen von Ressourcen
<a name="pipes-get-started-delete"></a>

Als letzten Schritt löschen wir den Stapel und die darin enthaltenen Ressourcen.

**Wichtig**  
Ihnen werden die im Stapel enthaltenen Amazon-Ressourcen in Rechnung gestellt, solange sie existieren.

1. Öffnen Sie die CloudFormation Konsole unter. [https://console.aws.amazon.com/cloudformation/](https://console.aws.amazon.com/cloudformation/)

1. Wählen Sie auf der Seite **Stacks** den aus der Vorlage erstellten Stack aus und klicken Sie auf **Löschen**. Bestätigen Sie dann **Löschen**.

   CloudFormation initiiert das Löschen des Stacks und aller darin enthaltenen Ressourcen.

## CloudFormation Details zur Vorlage
<a name="pipes-get-started-template-details"></a>

Diese Vorlage erstellt Ressourcen und gewährt Berechtigungen in Ihrem Konto.

### Ressourcen
<a name="pipes-get-started-template-resources"></a>

Mit der CloudFormation Vorlage für dieses Tutorial werden die folgenden Ressourcen in Ihrem Konto erstellt:

**Wichtig**  
Wenn Sie einen Stack anhand dieser Vorlage erstellen, werden Ihnen die verwendeten Amazon-Ressourcen in Rechnung gestellt.
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html): Eine DynamoDB-Tabelle, die als Ereignisquelle für die Pipe fungiert. 
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sqs-queue.html): Eine Amazon SQS SQS-Warteschlange, die als Ziel für die Ereignisse dient, die durch die Pipe fließen.
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html): Eine IAM-Ausführungsrolle, die dem EventBridge Pipes-Service in Ihrem Konto Berechtigungen gewährt.
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pipes-pipe.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pipes-pipe.html): Die Pipe, die die DynamoDB-Tabelle mit der Amazon SQS SQS-Warteschlange verbindet.

### Berechtigungen
<a name="pipes-get-started-template-perms"></a>

Die Vorlage enthält eine `AWS::IAM::Role` Ressource, die eine Ausführungsrolle darstellt. Diese Rolle gewährt dem EventBridge Pipes-Dienst (`pipes.amazonaws.com`) die folgenden Berechtigungen in Ihrem Konto.

Die folgenden Berechtigungen beziehen sich auf die DynamoDB-Tabelle und den Stream, den die Vorlage als Ereignisquelle für die Pipe erstellt:
+ `dynamodb:DescribeStream`
+ `dynamodb:GetRecords`
+ `dynamodb:GetShardIterator`
+ `dynamodb:ListStreams`

Die folgende Berechtigung ist auf die Amazon SQS SQS-Warteschlange beschränkt, die der Stack als Ziel der Pipe erstellt:
+ `sqs:SendMessage`

## CloudFormation Vorlage
<a name="pipes-get-started-template"></a>

Speichern Sie den folgenden JSON- oder YAML-Code als separate Datei, um ihn als CloudFormation Vorlage für dieses Tutorial zu verwenden.

------
#### [ JSON ]

```
{
  "AWSTemplateFormatVersion": "2010-09-09",

 "Description" : "[AWSDocs] EventBridge: pipes-get-started",

  "Parameters" : {
    "SourceTableName" : {
      "Type" : "String",
      "Default" : "pipe-example-source",
      "Description" : "Specify the name of the table to provision as the pipe source, or accept the default."
    },
  "TargetQueueName" : {
    "Type" : "String",
    "Default" : "pipe-example-target",
    "Description" : "Specify the name of the queue to provision as the pipe target, or accept the default."
  },
    "PipeName" : {
      "Type" : "String",
      "Default" : "pipe-with-filtering-example",
      "Description" : "Specify the name of the table to provision as the pipe source, or accept the default."
    }
},
  "Resources": {
    "PipeSourceDynamoDBTable": {
      "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" }
      }
    },
    "PipeTargetQueue": {
      "Type": "AWS::SQS::Queue",
      "Properties": {
        "QueueName": { "Ref" : "TargetQueueName" }
      }
    },
    "PipeTutorialPipeRole": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Version": "2012-10-17",
          "Statement": [{
            "Effect": "Allow",
            "Principal": {
              "Service": "pipes.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
              "StringLike": {
                "aws:SourceArn": {
                  "Fn::Join": [
                    "",
                    [
                      "arn:",
                      { "Ref": "AWS::Partition" },
                      ":pipes:",
                      { "Ref": "AWS::Region" },
                      ":",
                      { "Ref": "AWS::AccountId" },
                      ":pipe/",
                      { "Ref": "PipeName" }
                    ]
                  ]
                },
                "aws:SourceAccount": { "Ref" : "AWS::AccountId" }
              }
            }
          }]
        },
        "Description" : "EventBridge Pipe template example. Execution role that grants the pipe the permissions necessary to send events to the specified pipe.",
        "Path": "/",
        "Policies": [{
            "PolicyName": "SourcePermissions",
            "PolicyDocument": {
              "Version": "2012-10-17",
              "Statement": [{
                "Effect": "Allow",
                "Action": [
                  "dynamodb:DescribeStream",
                  "dynamodb:GetRecords",
                  "dynamodb:GetShardIterator",
                  "dynamodb:ListStreams"
                ],
                "Resource": [
                  { "Fn::GetAtt" : [ "PipeSourceDynamoDBTable", "StreamArn" ] }
                ]
              }]
            }
          },
          {
            "PolicyName": "TargetPermissions",
            "PolicyDocument": {
              "Version": "2012-10-17",
              "Statement": [{
                "Effect": "Allow",
                "Action": [
                  "sqs:SendMessage"
                ],
                "Resource": [
                  { "Fn::GetAtt" : [ "PipeTargetQueue", "Arn" ] }
                ]
              }]
            }
          }
        ]
      }
  },
    "PipeWithFiltering": {
      "Type": "AWS::Pipes::Pipe",
      "Properties": {
        "Description" : "EventBridge Pipe template example. Pipe that receives events from a DynamoDB stream, applies a filter, and sends matching events on to an SQS Queue.",
        "Name": { "Ref" : "PipeName" },
        "RoleArn": {"Fn::GetAtt" : ["PipeTutorialPipeRole", "Arn"] },
        "Source": { "Fn::GetAtt" : [ "PipeSourceDynamoDBTable", "StreamArn" ] },
        "SourceParameters": {
          "DynamoDBStreamParameters" : {
            "StartingPosition" : "LATEST"
         },
        "FilterCriteria" : {
          "Filters" : [ {
            "Pattern" : "{ \"eventName\": [\"INSERT\", \"MODIFY\"] }"
         }]
        }
        },
        "Target": { "Fn::GetAtt" : [ "PipeTargetQueue", "Arn" ] }
      }
    }
  }
}
```

------
#### [ YAML ]

```
AWSTemplateFormatVersion: '2010-09-09'
Description: '[AWSDocs] EventBridge: pipes-get-started'
Parameters:
  SourceTableName:
    Type: String
    Default: pipe-example-source
    Description: Specify the name of the table to provision as the pipe source, or accept the default.
  TargetQueueName:
    Type: String
    Default: pipe-example-target
    Description: Specify the name of the queue to provision as the pipe target, or accept the default.
  PipeName:
    Type: String
    Default: pipe-with-filtering-example
    Description: Specify the name of the table to provision as the pipe source, or accept the default.
Resources:
  PipeSourceDynamoDBTable:
    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
  PipeTargetQueue:
    Type: AWS::SQS::Queue
    Properties:
      QueueName: !Ref TargetQueueName
  PipeTutorialPipeRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: pipes.amazonaws.com
            Action: sts:AssumeRole
            Condition:
              StringLike:
                aws:SourceArn: !Join
                  - ''
                  - - 'arn:'
                    - !Ref AWS::Partition
                    - ':pipes:'
                    - !Ref AWS::Region
                    - ':'
                    - !Ref AWS::AccountId
                    - ':pipe/'
                    - !Ref PipeName
                aws:SourceAccount: !Ref AWS::AccountId
      Description: EventBridge Pipe template example. Execution role that grants the pipe the permissions necessary to send events to the specified pipe.
      Path: /
      Policies:
        - PolicyName: SourcePermissions
          PolicyDocument:
            Version: '2012-10-17'
            Statement:
              - Effect: Allow
                Action:
                  - dynamodb:DescribeStream
                  - dynamodb:GetRecords
                  - dynamodb:GetShardIterator
                  - dynamodb:ListStreams
                Resource:
                  - !GetAtt PipeSourceDynamoDBTable.StreamArn
        - PolicyName: TargetPermissions
          PolicyDocument:
            Version: '2012-10-17'
            Statement:
              - Effect: Allow
                Action:
                  - sqs:SendMessage
                Resource:
                  - !GetAtt PipeTargetQueue.Arn
  PipeWithFiltering:
    Type: AWS::Pipes::Pipe
    Properties:
      Description: EventBridge Pipe template example. Pipe that receives events from a DynamoDB stream, applies a filter, and sends matching events on to an SQS Queue.
      Name: !Ref PipeName
      RoleArn: !GetAtt PipeTutorialPipeRole.Arn
      Source: !GetAtt PipeSourceDynamoDBTable.StreamArn
      SourceParameters:
        DynamoDBStreamParameters:
          StartingPosition: LATEST
        FilterCriteria:
          Filters:
            - Pattern: '{ "eventName": ["INSERT", "MODIFY"] }'
      Target: !GetAtt PipeTargetQueue.Arn
```

------