View a markdown version of this page

從自訂事件匯流排遷移 - Classic 到自訂事件匯流排 - Amazon EventBridge

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

從自訂事件匯流排遷移 - Classic 到自訂事件匯流排

自訂事件匯流排 - Classic 仍然可用,您可以並排執行這兩個產品。由於自訂事件匯流排會保留 events: IAM 命名空間events.amazonaws.com和服務主體,因此您的身分政策和交付角色會轉移。路由模型有哪些變更。

自訂事件匯流排 - Classic 自訂事件匯流排
規則及其目標之一 一個訂閱者
具有五個目標的規則 同一匯流排上的五個訂閱者
規則上的事件模式 範圍為 的篩選條件DATA。當生產者使用 發佈時PutEvents,模式保持不變。
輸入轉換器 類型為 的轉換器 JSONATA
目標上的無效字母佇列 OnFailureConfiguration 在訂閱者上
在目標上重試政策 RetryPolicy 在訂閱者上
封存與重播功能 匯流排和訂閱者開始位置的保留
匯流排擁有者為每個消費者撰寫的規則 消費者自行建立的訂閱者
events:PutEvents events:PutEvents,加上events:PutRawEvents非 JSON 承載

四種功能沒有自訂事件匯流排 - 傳統對等功能,因此遷移的設計可以在沒有解決方法的情況下使用它們:保留匯流排本身、訂閱者開始位置、使用待處理項目暫停和繼續,以及非 JSON 承載的第二個發佈 API。您不需要移動一切:兩個匯流排並排執行,自訂事件匯流排 - Classic 規則可以鎖定自訂事件匯流排,而訂閱者可以鎖定自訂事件匯流排 - Classic,因此您可以一次移動一個取用者或一個生產者。請參閱 事件匯流排目標:匯流排至匯流排。

什麼不會變更

以下內容保持不變,因此部署的對應部分會保持原樣。

未變更它對移動的意義
IAM 動作命名空間events:events.amazonaws.com和服務主體重複使用身分政策、匯流排資源政策和交付角色信任政策
目標服務:Amazon SQS、Lambda、Amazon SNS、Kinesis、Firehose、Step Functions、API Gateway、API 目的地、事件匯流排交付角色會保留相同的目標動作;每個目標都有一個參數區塊,其欄位與其 Classic 相同。請參閱 自訂事件匯流排訂閱者的目標
事件模式語法,萬用字元除外規則模式會針對PutEvents流量變成不變的DATA篩選條件。請參閱 篩選訂閱者的事件
AWS 服務事件和 SaaS 合作夥伴事件相同的事件會透過事件來源到達自訂事件匯流排。請參閱 自訂事件匯流排的事件來源
PutEvents API 和信封生產者變更端點和用戶端,而不是請求
使用 JSONata 進行輸入轉換運算式移動到 ,Transformer其中事件位於 $events

不同的預設值

重要

根據預設,訂閱者會重試失敗的交付 300 秒和 5 次嘗試。自訂事件匯流排 - 傳統目標重試 24 小時和 185 次嘗試。如果您的消費者在中斷期間依賴一天的重試,請為每個訂閱者將 RetryPolicy.MaxEventAgeInSeconds設為 86,400 和 MaxRetryAttempts 185,並連接無效字母佇列;否則失敗超過 5 分鐘的事件會是無效字母,而不是延遲傳送。請參閱 重試政策和無效字母佇列。

還有兩個預設值不同。訂閱者以 JSON 陣列形式將批次交付至函數或狀態機器,其中規則會在每次叫用時交付一個事件;BatchConfiguration.MaxBatchSize設為 1 可在每次呼叫時保留一個事件。而匯流排會保留事件,因此在事件之後建立的訂閱者可以讀取遺漏的內容,而規則會在其中建立延遲什麼都看不到。

沒有自訂對等項目的傳統目標

每個自訂事件匯流排 - 透過呼叫服務 API 動作的通用目標,達到自訂事件匯流排上沒有自訂目標的傳統目標類型。將 TargetArn設定為 arn:aws:events:::aws-sdk:service:apiAction並在 中建置請求Input;請參閱 自訂事件匯流排的通用目標。

自訂事件匯流排 - Classic 目標通用目標動作
Amazon ECS 任務arn:aws:events:::aws-sdk:ecs:runTask
AWS 批次任務arn:aws:events:::aws-sdk:batch:submitJob
CodeBuild 專案arn:aws:events:::aws-sdk:codebuild:startBuild
CodePipeline 管道arn:aws:events:::aws-sdk:codepipeline:startPipelineExecution
Systems Manager Run Commandarn:aws:events:::aws-sdk:ssm:sendCommand
Systems Manager Automationarn:aws:events:::aws-sdk:ssm:startAutomationExecution
AWS Glue 工作流程arn:aws:events:::aws-sdk:glue:startWorkflowRun
SageMaker 管道arn:aws:events:::aws-sdk:sagemaker:startPipelineExecution
Redshift Data API 陳述式arn:aws:events:::aws-sdk:redshiftdata:executeStatement
CloudWatch Logs 日誌群組arn:aws:events:::aws-sdk:cloudwatchlogs:putLogEvents
Amazon EC2 動作 (停止、重新啟動、終止、建立快照)arn:aws:events:::aws-sdk:ec2:stopInstances, rebootInstances, terminateInstances, createSnapshot
Inspector 評估arn:aws:events:::aws-sdk:inspector:startAssessmentRun

服務和動作名稱遵循通用目標命名規則; CreateSubscriber拒絕其無法辨識的名稱,因此請在建立訂閱者時確認每個名稱。

遷移序列

以五個步驟一次移動一個匯流排,讓自訂事件匯流排 - 傳統規則持續執行,直到最後一個步驟為止。在您刪除規則之前,每個步驟都是可逆的。

重要

從規則複製的模式符合使用 發佈的事件PutEvents,因為該 API 會產生與自訂事件匯流排 - Classic 相同的信封。相同的模式與使用 發佈的事件沒有任何相符PutRawEvents,因為承載不會在 下巢狀化detail。請參閱 事件結構:資料、中繼資料和系統中繼資料。

  1. 使用您想要的保留期間建立自訂事件匯流排,並等待其狀態變成 ACTIVE。

  2. 針對每個規則,為每個目標建立一個訂閱者。使用規則的事件模式做為DATA篩選條件、其輸入轉換器做為JSONATA轉換器,以及其目標角色做為 RoleArn。連接無效字母佇列,並在傳送流量之前開啟日誌。

  3. 從您的生產者發佈到兩個匯流排,並在每個目標確認兩個路徑傳遞相同的事件。

  4. 僅將生產者移至自訂事件匯流排。

  5. 停用自訂事件匯流排 - Classic 上的規則。在重試時段和您自己的驗證期間過後刪除它們。