Amazon 中的事件匯流排目標 EventBridge - Amazon EventBridge

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

Amazon 中的事件匯流排目標 EventBridge

目標是當事件符合規則 定義的事件模式時,將事件 EventBridge 傳送至 的資源或端點。規則會處理事件資料,並將相關資訊傳送至目標。若要將事件資料傳遞至目標, EventBridge 需要存取目標資源的許可。您最多可以為每個規則定義五個目標。

當您將目標新增至規則且該規則不久會運行時,可能不會立即調用任何新的目標或更新的目標。允許一小段時間來讓變更生效。

下列影片涵蓋目標的基本概念:

主控台中 EventBridge可用的事件匯流排目標

您可以在 EventBridge 主控台中為事件設定下列目標:

目標參數

有些目標不會將事件承載中的資訊傳送至目標,而是將事件視為叫用特定 的觸發條件API。 EventBridge 使用目標參數來判斷該目標發生了什麼。這些索引標籤包括以下項目:

  • API 目的地 (傳送至API目的地的資料必須符合 的結構API。 您必須使用 InputTransformer 物件來確保資料結構正確。 如果您想要包含原始事件承載,請在 中參考它InputTransformer。)

  • API Gateway (傳送至 API Gateway 的資料必須符合 的結構API。 您必須使用 InputTransformer 物件來確保資料結構正確。 如果您想要包含原始事件承載,請在 中參考它InputTransformer。)

  • Amazon EC2 Image Builder

  • RedshiftDataParameters (Amazon Redshift Data API叢集)

  • SageMakerPipelineParameters (Amazon SageMaker Runtime 模型建置管道)

注意

EventBridge 不支援所有 JSON Path 語法,並在執行階段對其進行評估。支援的語法包括:

  • 點符號 (例如 $.detail)

  • 破折號

  • 底線

  • 英數字元

  • 陣列索引

  • 萬用字元 (*)

動態路徑參數

有些目標參數支援選用的動態JSON路徑語法。此語法可讓您指定JSON路徑,而不是靜態值 (例如 $.detail.state)。整個值必須是JSON路徑,而不只是其中的一部分。例如,RedshiftParameters.Sql 可以是 $.detail.state 但不能是 "SELECT * FROM $.detail.state"。這些路徑會在執行期以指定路徑中的事件裝載本身的資料動態取代。動態路徑參數無法參考輸入轉換所產生的新值或轉換值。動態參數JSON路徑支援的語法與轉換輸入時相同。如需詳細資訊,請參閱 Amazon EventBridge 輸入轉換

動態語法可以用於所有字符串,這些參數的非枚舉字段:

許可

若要對您擁有的資源進行API呼叫, EventBridge 需要適當的許可。對於 AWS Lambda 和 Amazon SNS 資源, EventBridge 會使用資源型政策 。對於EC2執行個體、Kinesis 資料串流和 Step Functions 狀態機器, EventBridge 會使用您在 中的 RoleARN 參數中指定的IAM角色PutTargets。您可以叫用已設定IAM授權的API閘道端點,但如果您尚未設定授權,則角色為選用。如需詳細資訊,請參閱Amazon EventBridge 和 AWS Identity and Access Management

如果另一個帳戶位於同一地區,並已授予您許可,您可以將事件傳送至該帳戶。如需詳細資訊,請參閱在 Amazon 中的 AWS 帳戶之間傳送和接收事件 EventBridge

如果您的目標已加密,您必須在KMS金鑰政策中包含下列區段。

{ "Sid": "Allow EventBridge to use the key", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }

AWS Batch 作為目標的任務佇列

某些 的 AWS Batch submitJob參數可以透過 設定BatchParameters

其他可以在事件裝載中進行指定。如果事件承載 (透過 或透過 傳遞InputTransformers) 包含下列金鑰,則它們會對應至submitJob請求參數

  • ContainerOverrides: containerOverrides

    注意

    這僅包括命令、環境、記憶體和 vcpus

  • DependsOn: dependsOn

    注意

    這僅包括 jobId

  • Parameters: parameters

CloudWatch 將群組記錄為目標

如果您不InputTransformer搭配 CloudWatch Logs 目標使用 ,則會使用事件承載作為日誌訊息,並以事件來源作為時間戳記。如果您確實使用 InputTransformer,範本必須:

{"timestamp":<timestamp>,"message":<message>}

EventBridge 批次傳送至日誌串流的項目;因此, EventBridge 可能會根據流量,將單一或多個事件交付至日誌串流。

CodeBuild 專案作為目標

如果您使用 InputTransformers 將輸入事件塑造為目標,以符合 CodeBuild StartBuildRequest結構,則參數將對應 1 對 1,並傳遞至 codeBuild.StartBuild

Amazon ECS任務作為目標

如果您使用 InputTransformers 將輸入事件塑造為目標,以符合 Amazon ECS RunTask TaskOverride結構,則參數將對應 1 對 1,並傳遞至 ecs.RunTask

Incident Manager 回應計劃作為目標

如果相符的事件來自 CloudWatch 警示,警示狀態變更詳細資訊會填入至 StartIncidentRequest 呼叫 Incident Manager 的觸發詳細資訊。