本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從自訂事件匯流排遷移 - 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:apiActionInput;請參閱 自訂事件匯流排的通用目標。
| 自訂事件匯流排 - 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 Command | arn:aws:events:::aws-sdk:ssm:sendCommand |
| Systems Manager Automation | arn: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。請參閱 事件結構:資料、中繼資料和系統中繼資料。
-
使用您想要的保留期間建立自訂事件匯流排,並等待其狀態變成
ACTIVE。 -
針對每個規則,為每個目標建立一個訂閱者。使用規則的事件模式做為
DATA篩選條件、其輸入轉換器做為JSONATA轉換器,以及其目標角色做為RoleArn。連接無效字母佇列,並在傳送流量之前開啟日誌。 -
從您的生產者發佈到兩個匯流排,並在每個目標確認兩個路徑傳遞相同的事件。
-
僅將生產者移至自訂事件匯流排。
-
停用自訂事件匯流排 - Classic 上的規則。在重試時段和您自己的驗證期間過後刪除它們。