選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

教學課程:建立篩選來源事件的 EventBridge 管道

焦點模式
教學課程:建立篩選來源事件的 EventBridge 管道 - Amazon EventBridge

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在本教學中,您將建立將 DynamoDB 串流來源連接到 Amazon SQS 佇列目標的管道。這包括為管道指定事件模式,以便在篩選要傳遞至佇列的事件時使用。然後,您將測試管道,以確保只傳遞所需的事件。

先決條件:建立來源和目標

在建立管之前,您需要建立管要連接的來源和目標。在此情況下,Amazon DynamoDB 資料串流可做為管道來源,以及 Amazon SQS 佇列做為管道目標。

若要簡化此步驟,您可以使 AWS CloudFormation 用佈建來源和目標資源。為此,您將創建一個定義以下資源的 CloudFormation 模板:

  • 管道源

    名為 pipe-tutorial-source 的 Amazon DynamoDB 資料表使用啟用串流,以提供 DynamoDB 資料表中項目變更資訊的排序流程。

  • 管道類型

    一個名為的 Amazon SQS 佇列pipe-tutorial-target,用於從您的管道接收 DynamoDB 事件串流。

建立用於佈建管資源的 CloudFormation 樣板的步驟
  1. 複製下方AWS CloudFormation 模板生成先決條件 區段中的JSON範本文字。

  2. 將範本儲存為JSON檔案 (例如,~/pipe-tutorial-resources.json)。

接下來,使用您剛建立的範本檔案來佈建 CloudFormation 堆疊。

注意

一旦您建立您的 CloudFormation 堆疊,您將需要支付其佈建的 AWS 資源費用。

使用佈建教學課程的必要條件 AWS CLI
  • 執行下列CLI命令,其中--template-body指定範本檔案的位置:

    aws cloudformation create-stack --stack-name pipe-tuturial-resources --template-body file://~/pipe-tutorial-resources.json
使用 CloudFormation 主控台佈建教學課程必要
  1. 請在以下位置開啟 AWS CloudFormation 主控台。 https://console.aws.amazon.com/cloudformation

  2. 選取堆疊,然後選取建立堆疊,再選擇使用新資源 (標準)

    CloudFormation 顯示「建立堆疊」精靈。

  3. 針對先決條件:準備範本,保持選取範本已準備就緒

  4. 針對指定範本,選取上傳範本檔案,然後選擇下一步

  5. 設定堆疊及其將佈建的資源:

    • 針對堆疊名稱 輸入 pipe-tuturial-resources

    • 對於「參數」,請保留 DynamoDB 表格和 Amazon SQS 佇列的預設名稱。

    • 選擇下一步

  6. 選擇下一步,然後選擇提交

    CloudFormation 創建堆棧並佈建模板中定義的資源。

如需有關的詳細資訊 CloudFormation,請參閱什麼是 AWS CloudFormation?《AWS CloudFormation 使用者指南》中。

步驟 1:建立管道

佈建管道來源和目標後,您現在可以建立管道以連接這兩個服務。

使用 EventBridge 控制台創建管道
  1. 在打開 Amazon EventBridge 控制台https://console.aws.amazon.com/events/

  2. 在導覽窗格中,選擇管道

  3. 選擇建立管道

  4. 針對名稱,為您的管道 pipe-tutorial 命名。

  5. 指定 DynamoDB 資料串流來源:

    1. 詳細資料下,針對來源,選取 DynamoDB 資料串流

      EventBridge 顯示 DynamoDB 特定來源組態設定。

    2. 針對 DynamoDB 資料串流,請選取 pipe-tutorial-source

      保持起始位置設定為預設值 Latest

    3. 選擇下一步

  6. 指定並測試事件模式以篩選事件:

    篩選可讓您控制管道傳送至擴充或目標的事件。管道只會將符合事件模式的事件傳送至擴充或目標。

    如需詳細資訊,請參閱 Amazon EventBridge 管道中的事件過濾

    注意

    您只需為傳送至擴充功能或目標的事件付費。

    1. 範例事件 - 選用下,保持選取AWS 事件,並確定已選取 DynamoDB 串流範例事件 1

      這是您將用來測試我們的事件模式的示例事件。

    2. 事件模式下,輸入下列事件模式:

      { "eventName": ["INSERT", "MODIFY"] }
    3. 選擇測試模式

      EventBridge 顯示示範例事件符合事件模式的訊息。這是因為範例事件的 eventName 值為 INSERT

    4. 選擇下一步

  7. 選擇下一步以略過指定擴充項目。

    在此範例中,您不會選取擴充。擴充可讓您在將來源資料傳送至目標之前,選取服務以增強來源的資料。如需詳細資訊,請參閱Amazon EventBridge 管道中的事件豐富

  8. 將您的 Amazon SQS 佇列指定為管道目標:

    1. 詳細資料下,對於目標服務,選取 Amazon SQS 佇列

    2. 針對佇列,選取 pipe-tutorial-target

    3. 目標輸入轉換器區段保留空白。

      如需詳細資訊,請參閱 Amazon EventBridge Pipes 輸入轉換

  9. 選擇建立管道

    EventBridge 建立管並顯示管詳細資料頁面。管的狀態更新為 Running 後,即可準備就緒。

步驟 2:確認管道篩選器事件

管道已設置,但尚未從表接收事件。

若要測試管道,您將更新 DynamoDB 表格中的項目。每次更新都會產生 DynamoDB 串流傳送到我們管道的事件。有些會匹配您指定的事件模式,有些則不會。然後,您可以檢查 Amazon SQS 佇列,以確保管道僅交付符合我們事件模式的事件。

更新表格項目以產生事件
  1. 在開啟 DynamoDB 控制台。https://console.aws.amazon.com/dynamodb/

  2. 從左側導覽列中,選取資料表。選取 pipe-tutorial-source 資料表。

    DynamoDB 會顯示 pipe-tutorial-source 的表格詳細資料頁面。

  3. 選取瀏覽表格項目,然後選擇建立項目

    DynamoDB 顯示建立項目頁面。

  4. 屬性之下,建立新的表格項目:

    1. 針對相簿輸入 Album A

    2. 針對藝人,輸入 Artist A

    3. 選擇建立項目

  5. 更新表格項目:

    1. 退回的項目下,選擇相簿 A

    2. 選取新增屬性,然後選取字串

    3. 輸入一個新值 Song,其值為 Song A

    4. 選擇儲存變更

  6. 刪除表格項目:

    1. 退回的項目下,檢查相簿 A

    2. 動作選單中,選取刪除項目

您已對表格項目進行了三次更新;這會為 DynamoDB 資料串流產生三個事件:

  • 建立項目時的 INSERT 事件。

  • 當您將屬性新增至項目時的 MODIFY 事件。

  • 刪除項目時的 REMOVE 事件。

但是,您為管道指定的事件模式應該過濾掉任何不是 INSERTMODIFY 事件的事件。接下來,確認管道是否將預期的事件傳送到佇列。

確認管道是否將預期的事件傳送到佇列。
  1. 在打開 Amazon SQS 控制台https://console.aws.amazon.com/sqs/

  2. 選擇 pipe-tutorial-target 佇列。

    Amazon SQS 顯示隊列詳細信息頁面。

  3. 選取傳送和接收訊息,然後在接收訊息下選擇郵件輪詢

    佇列會輪詢管道,然後列出其接收的事件。

  4. 選擇事件名稱以查看已傳送JSON的事件。

隊列中應該有兩個事件:一個事件帶有 INSERTeventName,一個事件帶有 MODIFYeventName。但是,管道並未傳遞刪除表格項目的事件,因為該事件有一個 REMOVEeventName,它與您在管道中指定的事件模式不相符。

步驟 3:清除您的資源

首先,刪除管道本身。

使用 EventBridge 控制台刪除管道
  1. 在打開 Amazon EventBridge 控制台https://console.aws.amazon.com/events/

  2. 在導覽窗格中,選擇管道

  3. 選取 pipe-tutorial 管道,然後選擇刪除

然後,刪除 CloudFormation 堆疊,以避免因其中佈建的資源持續使用量而計費。

使用刪除教學課程必要條件 AWS CLI
  • 運行以下CLI命令,其中--stack-name指定堆棧的名稱:

    aws cloudformation delete-stack --stack-name pipe-tuturial-resources
使用 AWS CloudFormation 主控台刪除教學課程必要條件
  1. 請在以下位置開啟 AWS CloudFormation 主控台。 https://console.aws.amazon.com/cloudformation

  2. 堆疊頁面上,選取堆疊,然後選取刪除

  3. 選取刪除以確認您的動作。

AWS CloudFormation 模板生成先決條件

使用JSON以下內容建立 CloudFormation 範本,以佈建此教學課程所需的來源和目標資源。

{ "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" } } } } }
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。