

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

# Amazon EventBridge 中的事件匯流排
<a name="eb-event-bus"></a>

事件匯流排是接收[事件](eb-events.md)並將事件傳遞至零個或多個目的地或*目標*的一種路由器。事件匯流排非常適合將事件從許多來源路由傳送至多個目標，可選擇在傳遞至目標之前轉換事件。

![\[來源會將事件傳送至 EventBridge 事件匯流排，然後將它們路由至適當的目標。\]](http://docs.aws.amazon.com/zh_tw/eventbridge/latest/userguide/images/bus_eventbridge_conceptual.svg)


與事件匯流排建立關聯的[規則](eb-rules.md)會在事件到達時評估事件。每項規則都會檢查事件是否與規則模式相符。如果事件相符，EventBridge 將會傳送事件。

您可以將規則與特定事件匯流排相關聯，因此規則僅適用於該事件匯流排所接收的事件。

**注意**  
您也可以使用 EventBridge 管道來處理事件。EventBridge 管道適用於點對點整合；每個管道都會接收來自單一來源的事件，以進行處理，並將其傳送至單一目標。管道還包括對進階轉換的支援，以及在傳遞至目標之前豐富事件。如需詳細資訊，請參閱[Amazon EventBridge Pipes](eb-pipes.md)。

## EventBridge 中的事件匯流排運作方式
<a name="eb-what-is-how-it-works"></a>

事件匯流排可讓您將事件從多個來源路由到多個目的地或*目標*。

在高階程序中，下面是它的運作方式：

1. 事件來源可以是 AWS 服務、您自己的自訂應用程式或 SaaS 供應商，會將事件傳送至事件匯流排。

1. 然後，EventBridge 會根據為該事件匯流排定義的每個*規則*評估事件。

   然後，針對每個符合規則的事件，EventBridge 會將事件傳送至為該規則指定的目標。或者，在規則中，您也可以指定 EventBridge 在將事件傳送至目標之前應如何轉換事件。

   一個事件可能符合多個規則，而每個規則最多可以指定五個目標。(事件可能不符合任何規則，在這種情況下，EventBridge 不會採取任何動作。)

![\[事件匯流排會將事件與規則進行比較，並將相符的事件傳送至指定的目標。\]](http://docs.aws.amazon.com/zh_tw/eventbridge/latest/userguide/images/bus-overview_eventbridge_conceptual.svg)


請考慮使用 EventBridge 預設事件匯流排的範例，該匯流排會自動從 AWS 服務接收事件：

1. 您可以在 `EC2 Instance State-change Notification` 事件的預設事件匯流排上建立規則：
   + 您可以指定規則與 Amazon EC2 執行個體已變更 `state` 為 `running` 的事件相符。

     您可以透過指定 JSON 來定義事件必須符合的屬性和值，才能觸發規則。這就是所謂的*事件模式*。

     ```
     {
       "source": ["aws.ec2"],
       "detail-type": ["EC2 Instance State-change Notification"],
         "detail": {
           "state": ["running"]
       }
     }
     ```
   + 您可以將規則的目標指定為指定的 Lambda 函數。

1. 每當 Amazon EC2 執行個體變更狀態時，Amazon EC2 (事件來源) 都會自動將該事件傳送到預設事件匯流排。

1. EventBridge 會根據您建立的規則，評估傳送至預設事件匯流排的所有事件。

   如果事件符合您的規則 (也就是說，如果事件是將狀態變更為的 Amazon EC2 執行個體 `running`)，EventBridge 會將事件傳送到指定的目標。在這種情況下，這是 Lambda 函數。

 下列影片說明什麼是事件匯流排，並說明其中的一些基礎知識：




 以下視頻介紹了不同的事件匯流排以及何時使用它們：




# Amazon EventBridge 中的事件匯流排概念
<a name="eb-what-is-how-it-works-concepts"></a>

以下是對在事件匯流排上建置的事件驅動架構的主要元件的進一步了解。

## 事件匯流排
<a name="eb-bus-concepts-buses"></a>

事件匯流排是接收[事件](eb-events.md)並將事件傳遞至零個或多個目的地或*目標*的一種路由器。在您需要時使用事件匯流排將事件從許多來源路由傳送至多個目標，可選擇在傳遞至目標之前轉換事件。

您的帳戶包含自動從 AWS 服務接收*事件的預設事件匯流排*。您也可以：
+ 建立其他事件匯流排 (稱為*自訂事件匯流排*)，並指定它們接收的事件。
+ 建立*[合作夥伴事件匯流排](eb-saas.md)*，以接收 SaaS 合作夥伴的事件。

事件匯流排的常見使用案例包括：
+ 使用事件匯流排作為不同工作負載、服務或系統之間的代理程式。
+ 在您的應用程式中使用多個事件匯流排來劃分事件流量。例如，建立一个匯流排以處理包含個人識別資訊 (PII) 的事件，而建立另一個匯流排用於處理沒有 PII 的事件。
+ 透過將多個事件匯流排的事件傳送至集中式事件匯流排，以彙總事件。這個集中匯流排可以在與其他匯流排相同的帳戶中，也可以在不同的帳戶中。

![\[從 服務、自訂應用程式或合作夥伴來源接收事件 AWS 的不同事件匯流排。\]](http://docs.aws.amazon.com/zh_tw/eventbridge/latest/userguide/images/bus-overview-types_eventbridge_conceptual.svg)


## 事件
<a name="eb-bus-concepts-events"></a>

最簡單的說法是，EventBridge 事件是傳送至事件匯流排或管道的 JSON 物件。

在事件驅動架構 (EDA) 的前後關聯中，事件通常代表資源或環境中變更的指標。

如需詳細資訊，請參閱[Amazon EventBridge 中的事件](eb-events.md)。

## 事件來源
<a name="eb-bus-concepts-event-sources"></a>

EventBridge 可以接收來自事件來源的事件，包括：
+ AWS 服務
+ 自訂應用程式
+ 軟體即服務 (SaaS) 伙伴

## Rules
<a name="eb-bus-concepts-rules"></a>

規則會接收傳入事件，並在適當的情況下將其傳送給目標以進行處理。您可以根據下列任一項指定每個規則調用其目標的方式：
+ [事件模式](eb-event-patterns.md)，其中包含一個或多個篩選器來匹配事件。事件模式可以包含符合下列項目的篩選條件：
  + **事件中繼資料**：事件*相關*資料，例如事件來源，或事件產生的帳戶或地區。
  + **事件資料**：事件本身的屬性。這些屬性會根據事件而有所不同。
  + **事件內容**：事件資料的實際屬性*值*。
+ 定期調用目標的排程。

  您可以[在 EventBridge 中指定排程規則](eb-create-rule-schedule.md)，也可以使用 [EventBridge 排程器](using-eventbridge-scheduler.md)來指定排程規則。
**注意**  
排程規則是 EventBridge 的舊版功能。  
EventBridge 提供更靈活且強大的方法來集中大規模建立、執行和管理排程任務：EventBridge 排程器。使用 EventBridge 排程器，您可以使用週期性模式的 Cron 和 Rate 表達式來建立排程，或設定一次性調用。您可以設定彈性的交付時段、定義重試次數上限，以及設定失敗的 API 調用的最長保留時間。  
排程器可高度自訂，並透過更廣泛的目標 API 操作 AWS 和服務，提供比排程規則更高的可擴展性。我們建議您使用 Scheduler 來排程叫用目標。  
如需詳細資訊，請參閱 [建立排程](using-eventbridge-scheduler.md#using-eventbridge-scheduler-create)或 *[EventBridge 排程器使用者指南](https://docs.aws.amazon.com/scheduler/latest/UserGuide/what-is-scheduler.html)*。

每個規則都是針對特定事件匯流排定義的，且僅適用於該事件匯流排上的事件。

單一規則最多可傳送五個目標的事件。

根據預設，每個事件匯流排最多可以設定 300 個規則。此配額可以在 [Service Quotas 主控台](https://console.aws.amazon.com/servicequotas/home)中提高到數千個規則。由於規則限制適用於每個匯流排，因此如果您需要更多規則，您可以在帳戶中建立其他自訂事件匯流排。

您可以針對不同服務建立具有不同權限的事件匯流排，以自訂在帳戶中接收事件的方式。

若要在 EventBridge 將事件傳送至目標之前自訂事件的結構或日期，請使用[輸入轉換器](eb-transform-target-input.md)在進入目標之前編輯資訊。

如需詳細資訊，請參閱[Amazon EventBridge 中的規則](eb-rules.md)。

## 目標
<a name="eb-bus-concepts-targets"></a>

目標是當事件符合為規則定義的事件模式時，EventBridge 會向其傳送事件的資源或端點。

目標可以從多個事件匯流排接收多個事件。

如需詳細資訊，請參閱[Amazon EventBridge 中的事件匯流排目標](eb-targets.md)。

## 事件匯流排的進階功能
<a name="eb-what-is-how-it-works-advanced"></a>

EventBridge 包含下列功能，可協助您開發、管理和使用事件匯流排。

**使用 API 目的地啟用服務之間的 REST API 呼叫**

EventBridge *[API 目的地](eb-api-destinations.md)*是 HTTP 端點，您可以將其設定為規則的目標，就像將事件資料傳送到 AWS 服務或資源一樣。透過使用 API 目的地，您可以使用 API 呼叫，在 AWS 服務、整合式 SaaS 應用程式和 AWS外部的應用程式之間路由事件。當您建立 API 目的地時，您可以指定要用於該目的地的連線。每個連線都包含授權類型的詳細資料，以及用於授權 API 目的地端點的參數。

**封存和重播事件以協助開發和災難復原**

您可以*[封存](eb-archive-event.md)*或儲存事件，然後稍後從封存中[重新執行](eb-replay-archived-event.md)這些事件。封存可用於：
+ 測試應用程式，因為您有要使用的事件存放區，而不必等待新事件。
+ 注水一個新的服務，當它第一次上線。
+ 為事件驅動的應用程式增加更多耐用性。

**使用結構描述登錄檔來快速啟動事件模式建立**

當您建置使用 EventBridge 的無伺服器應用程式時，瞭解典型事件的結構可能會很有幫助，而不需要產生事件。事件結構在[結構描述](eb-schema.md)中描述，可用於 EventBridge 上由 AWS 服務產生的所有事件。

對於非來自 AWS 服務的事件，您可以：
+ 建立或上傳自訂結構描述。
+ 使用結構描述探索可讓 EventBridge 自動為傳送至事件匯流排的事件建立結構描述。

擁有事件的結構描述後，您就可以下載常用程式設計語言的程式碼繫結。

**透過政策管理資源與存取**

若要整理 AWS 資源或追蹤 EventBridge 中的成本，您可以將自訂標籤或*[標籤](eb-tagging.md)* AWS 指派給資源。使用[以標籤為基礎的政策](eb-tag-policies.md)，您可以控制 EventBridge 中可以執行和不能執行的資源。

除了以標籤為基礎的政策之外，EventBridge 還支援[以身分識別為基礎的政策](eb-use-identity-based.md)和[以資源為基礎的政策](eb-use-resource-based.md)，以控制對 EventBridge 的獲取。使用以身分識別為基礎的政策來控制群組、角色或使用者的權限。使用以資源為基礎的政策為每個資源提供特定許可，例如 Lambda 函數或 Amazon SNS 主題。

# 在 Amazon EventBridge 中建立事件匯流排
<a name="eb-create-event-bus"></a>

您可以建立自訂[事件匯流排](eb-event-bus.md)，從您的自訂應用程式接收[事件](eb-events.md)。您的應用程式也可以將事件傳送到您的預設事件匯流排。建立事件匯流排時，您可以附加以[資源導向的政策](eb-use-resource-based.md)，以授與其他帳戶的權限。然後，其他帳戶可以將事件發送到當前帳戶中的事件匯流排。

 下面的視頻介紹如何建立事件匯流排：




**建立自訂事件匯流排**

1. 造訪 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 在導覽窗格中，選擇**事件匯流排**。

1. 選擇 **Create event bus (建立事件匯流排)**。

1. 輸入新事件匯流排的名稱。

1. 選擇 EventBridge 在加密存放在事件匯流排上的事件資料時要使用的 KMS 金鑰。
**注意**  
使用客戶受管金鑰加密的事件匯流排不支援結構描述探索。若要在事件匯流排上啟用結構描述探索，請選擇使用 AWS 擁有的金鑰。如需詳細資訊，請參閱[KMS 金鑰選項](eb-encryption-at-rest-key-options.md)。
   + 選擇**用於 AWS 擁有的金鑰** EventBridge，以使用 加密資料 AWS 擁有的金鑰。

      AWS 擁有的金鑰 這是 EventBridge 擁有和管理用於多個 AWS 帳戶的 KMS 金鑰。一般而言，除非您需要稽核或控制保護 資源的加密金鑰，否則 AWS 擁有的金鑰 是不錯的選擇。

     此為預設值。
   + 選擇**使用 EventBridge 的客戶受管金鑰**，以使用您指定或建立的客戶受管金鑰來加密資料。 EventBridge 

     客戶受管金鑰是您帳戶中建立、擁有和管理 AWS 的 KMS 金鑰。您可以完全控制這些 KMS 金鑰。

     1. 指定現有的客戶受管金鑰，或選擇**建立新的 KMS 金鑰**。

        EventBridge 會顯示金鑰狀態，以及與指定客戶受管金鑰相關聯的任何金鑰別名。

     1. 如果有的話，請選擇要用作此事件匯流排無效字母佇列 (DLQ) 的 Amazon SQS 佇列。

        EventBridge 會將未成功加密的事件傳送至 DLQ，以便您稍後處理。

1. （選用） 在 **日誌 - 選用** 下，您可以設定 如何 EventBridge 記錄事件資訊，包括如何設定這些日誌。

   如需事件匯流排日誌的詳細資訊，請參閱 [記錄事件匯流排 ](eb-event-bus-logs.md)。

   CloudWatch 根據預設，日誌會選取為日誌目的地，`ERROR`日誌層級也是。因此，根據預設， EventBridge 會建立新的 CloudWatch 日誌群組，以傳送包含詳細資訊`ERROR`層級的日誌記錄。

   若要讓 將日誌記錄 EventBridge 傳送至任何支援的日誌目的地，請執行下列動作：

   1. 在**日誌 - 選用**底下，選擇要傳送日誌檔記錄的目的地。

   1. 針對**日誌層級**，選擇要 EventBridge 包含在日誌記錄中的資訊層級。預設會選取 `ERROR` 日誌層級。

      如需詳細資訊，請參閱[指定日誌層級](eb-event-bus-logs.md#eb-event-bus-logs-level)。

   1. 如果您想要在日誌記錄中包含事件和目標資訊 EventBridge ，請選取**包含詳細資訊**。

      如需詳細資訊，請參閱[在日誌中包含詳細資訊](eb-event-bus-logs.md#eb-event-logs-data)。

   1. 設定您選取的每個日誌目的地。

1. 設定選用的事件匯流排功能：
   + 執行下列其中一項動作來指定資源型政策：
     + 輸入包含要授與事件匯流排之權限的政策。您可以貼上來自其他來源的政策，或輸入該政策的 JSON。您可以使用其中一個[範例政策](eb-event-bus-perms.md)，並針對您的環境進行修改。
     + 若要使用政策的範例，請選擇**載入範例**。根據您的環境適當修改政策，包括新增您授權政策中主體使用的其他動作。

     如需透過資源型政策授予許可給事件匯流排的詳細資訊，請參閱 [Amazon EventBridge 中事件匯流排的許可](eb-event-bus-perms.md)。
   + 啟用封存 （選用）

     您可以建立事件的封存，以便稍後輕鬆重播。例如，您可能想要重播事件以從錯誤中還原或驗證應用程式中的新功能。如需詳細資訊，請參閱[在 Amazon EventBridge 中封存和重播事件](eb-archive.md)

     1. 在**封存**下，選擇**已啟用**。

     1. 指定封存的名稱和描述。

        封存名稱一旦建立就無法變更。

        在建立新事件匯流排的過程中建立封存時，您無法設定封存的事件保留期間或事件模式。您可以在建立封存之後為封存指定這些項目。如需詳細資訊，請參閱[更新封存](event-bus-update-archive.md)。
   + 啟用結構描述探索 （選用）

     啟用結構描述探索，讓 EventBridge 直接從在此事件匯流排上執行的事件自動推斷結構描述。如需詳細資訊，請參閱[Amazon EventBridge 結構描述](eb-schema.md)

     1. 在**結構描述探索**下，選擇**已啟用**。
**注意**  
使用客戶受管金鑰加密的事件匯流排不支援結構描述探索。若要在事件匯流排上啟用結構描述探索，請選擇使用 AWS 擁有的金鑰。如需詳細資訊，請參閱[KMS 金鑰選項](eb-encryption-at-rest-key-options.md)。
   + 指定標籤 （選用）

     標籤是您指派給 AWS 資源的自訂屬性標籤。使用標籤來識別和組織您的 AWS 資源。許多 AWS 服務支援標記，因此您可以將相同的標籤指派給來自不同 服務的資源，以指出資源相關。如需詳細資訊，請參閱[在 Amazon EventBridge 中標記資源](eb-tagging.md) 

     1. 在**標籤**下，選擇**新增標籤**。

     1. 指定金鑰，並選擇性地指定新標籤的值。

1. 選擇**建立**。

# 在 Amazon EventBridge 中更新事件匯流排
<a name="event-bus-update"></a>

您可以在建立事件匯流排之後更新它們的組態。這包括預設事件匯流排，其會自動在您的 帳戶中 EventBridge 建立。

**更新事件匯流排 （主控台）**

1. 訪問 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 在導覽窗格中，選擇**事件匯流排**。

1. 選擇您要更新的事件匯流排。

1. 執行下列其中一項或多項：
   + 若要建立、編輯或刪除封存，請參閱下列程序：

     [建立封存](eb-archive-event.md)

     [更新封存](event-bus-update-archive.md)

     [刪除封存](eb-archive-delete.md)
   + 若要新增或移除標籤，請參閱下列程序：

     [管理事件匯流排標籤](eb-tagging.md#event-bus-update-tags)
   + 若要管理事件匯流排許可，請參閱下列程序：

     [管理事件匯流排許可](eb-event-bus-permissions-manage.md)
   + 若要變更用於加密事件的 AWS KMS 金鑰，請參閱下列程序：

     [更新事件匯流排上的加密](eb-encryption-event-bus-cmkey-configure.md#eb-encryption-event-bus-cmkey-update)

# 在 EventBridge AWS CloudFormation 中使用 更新預設事件匯流排
<a name="event-bus-update-default-cfn"></a>

CloudFormation 可讓您透過將基礎設施視為程式碼，以集中且可重複的方式設定和管理 AWS 跨帳戶和區域的資源。 CloudFormation 可讓您建立*範本*，以定義您要佈建和管理的資源。

由於 會自動將預設事件匯流排 EventBridge 佈建至您的 帳戶，因此您無法使用 CloudFormation 範本建立它，就像您通常想要包含在堆疊中的任何 CloudFormation 資源一樣。若要在 CloudFormation 堆疊中包含預設事件匯流排，您必須先將其*匯入*堆疊。將預設事件匯流排匯入堆疊後，您可以視需要更新事件匯流排屬性。

若要將現有資源匯入新的或現有的 CloudFormation 堆疊，您需要以下資訊：
+ 要匯入之資源的唯一識別符。

  對於預設事件匯流排，識別符為 `Name`，識別符值為 `default`。
+ 可準確描述現有資源目前屬性的範本。

  以下範本程式碼片段包含描述預設事件匯流排目前屬性`AWS::Events::EventBus`的資源。在此範例中，事件匯流排已設定為使用 客戶受管金鑰 和 DLQ 進行靜態加密。

  此外，描述您要匯入之預設事件匯流排`AWS::Events::EventBus`的資源應包含設定為 的 `DeletionPolicy` 屬性`Retain`。

  ```
  {
      "AWSTemplateFormatVersion": "2010-09-09",
      "Description": "Default event bus import example",
      "Resources": {
          "defaultEventBus": {
              "Type" : "AWS::Events::EventBus",
              "DeletionPolicy": "Retain",
              "Properties" : {
                  "Name" : "default",
                  "KmsKeyIdentifier" : "KmsKeyArn",
                  "DeadLetterConfig" : {
                      "Arn" : "DLQ_ARN"
                  }
              }
          }
      }
  }
  ```

如需詳細資訊，請參閱*CloudFormation 《 使用者指南*》中的[將現有資源帶入 CloudFormation 管理](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import.html)。

# 在 Amazon EventBridge 中刪除事件匯流排
<a name="event-bus-delete"></a>

您可以刪除自訂或合作夥伴事件匯流排。您無法刪除預設事件匯流排。刪除事件匯流排會刪除與該事件匯流排相關聯的規則。

**使用 EventBridge 主控台刪除事件匯流排**

1. 訪問 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 在導覽窗格中，選擇**事件匯流排**。

1. 選擇您要刪除的事件匯流排。

1. 執行以下任意一項：
   + 選擇 **刪除**。
   + 選擇事件匯流排的名稱。

     在事件匯流排詳細資訊頁面上，選擇**刪除**。

# 從現有的 EventBridge 事件匯流排產生 CloudFormation 範本
<a name="eb-generate-event-bus-template"></a>

AWS CloudFormation 可讓您透過將基礎設施視為程式碼，以集中且可重複的方式設定和管理跨帳戶和區域的 AWS 資源。CloudFormation 透過讓您建立*範本* (定義您要佈建和管理的資源) 來執行此作業。

EventBridge 可讓您從帳戶中現有的事件匯流排產生範本，以協助您快速開始開發 CloudFormation 範本。此外，EventBridge 還提供了在範本中包含與該事件匯流排相關聯的規則的選項。然後，您可以使用這些範本作為基礎，以便建立受 CloudFormation 管理的資源[堆疊](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)。

如需 CloudFormation 的詳細資訊，請參閱 [* CloudFormation 使用者指南*。](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)

**注意**  
EventBridge 不會在產生的範本中包含[受管理的規則](eb-rules.md#eb-rules-managed)。

您也可以[從所選取事件匯流排中包含的一或多個規則產生範本](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-create-template.html)。

**若要從事件匯流排產生 CloudFormation 範本**

1. 訪問 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 在導覽窗格中，選擇**事件匯流排**。

1. 選擇您要從中產生 CloudFormation 範本的事件匯流排。

1. 從**動作**功能表中，選擇 **CloudFormation 範本**，然後選擇您希望 EventBridge 在其中產生範本的格式：**JSON** 或 **YAML**。

   EventBridge 會顯示以所選取格式產生的範本。依預設，與事件匯流排相關聯的所有規則都包含在樣板中。

   1. 若要產生不包含規則的範本，請取消選取**在此 EventBus 上包含規則**。

1. EventBridge 可讓您選擇下載範本檔案，或將範本複製到剪貼簿。
   + 選擇**立即下載**以下載範本檔案。
   + 若要將範本複製剪貼簿，請選擇**複製**。

1. 若要結束範本，請選擇**取消**。

視需要為您的使用案例自訂 CloudFormation 範本後，您可以使用它在 CloudFormation [中建立堆疊](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)。

## 使用從 Amazon EventBridge 產生的 CloudFormation 範本時的注意事項
<a name="eb-generate-event-bus-template-considerations"></a>

使用從事件匯流排產生的 CloudFormation 範本時，請考量下列因素：
+ EventBridge 不會在產生的範本中包含任何密碼。

  您可以編輯範本以包含[範本參數](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)，讓使用者在使用範本建立或更新 CloudFormation 堆疊時，能夠指定密碼或其他敏感資訊。

  此外，使用者可以使用 Secrets Manager 在所需區域中建立密碼，然後編輯產生的範本以使用[動態參數](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager)。
+ 產生的範本中的目標會保持與原始事件匯流排中指定的完全相同。如果您在使用範本在其他地區建立堆疊之前未適當地編輯範本，這可能會導致跨區域問題。

  此外，產生的範本不會自動建立下游目標。

# Amazon EventBridge 中事件匯流排的許可
<a name="eb-event-bus-perms"></a>

您 AWS 帳戶中的預設[事件匯流排](eb-event-bus.md)僅允許來自一個帳戶[的事件](eb-events.md)。您可以將[以資源為基礎的政策](eb-use-resource-based.md)附加至事件匯流排，將其他權限授與事件匯流排。使用以資源為基礎的策略，您可以允許來自另一個帳戶的 `PutEvents`、`PutRule`、和 `PutTargets` API 呼叫。您也可以在政策中使用 [IAM 條件](eb-use-conditions.md)，將許可授予組織、套用[標籤](eb-tagging.md)或僅篩選特定規則或帳戶中的事件。您可以在建立事件匯流排時或之後為事件匯流排設定以資源為基礎的政策。

接受事件匯流排 `Name` 參數 (例如 `PutRule`、`PutTargets`、`DeleteRule`、`RemoveTargets`、`DisableRule` 和 `EnableRule`) 的 EventBridge 各種 API，也可以接受事件匯流排 ARN。使用這些參數可透過 API 參考跨帳戶或跨區域事件匯流排。例如，您可以呼叫 `PutRule` 在不同帳戶中的事件匯流排上建立[規則](eb-rules.md)，而不需要擔任角色。

您可以將本主題中的範例政策附加到 IAM 角色，以授予將事件傳送至其他帳戶或區域的權限。使用 IAM 角色設定組織控制政策和界限，瞭解誰可以將事件從您的帳戶傳送到其他帳戶。當規則的目標是事件匯流排時，建議一律使用 IAM 角色。您可以使用 `PutTarget` 呼叫附加 IAM 角色。如需關於建立規則以將事件傳送至其他帳戶或區域的相關資訊，請參閱 [在 Amazon EventBridge 中的 AWS 帳戶之間傳送和接收事件](eb-cross-account.md)。

# 在 Amazon EventBridge 中管理事件匯流排許可
<a name="eb-event-bus-permissions-manage"></a>

使用下列程序修改現有事件匯流排的許可。如需如何使用 CloudFormation 建立事件匯流排政策的資訊，請參閱 [AWS::Events::EventBusPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html)。

**管理現有事件匯流排的權限**

1. 訪問 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 在導覽窗格中，選擇**事件匯流排**。

1. 在**名稱**中，選擇要管理其許可的事件匯流排名稱。

   如果資源策略已附加至事件匯流排，則會顯示策略。

1. 選擇**管理許可**，然後進行下列其中一個動作：
   + 輸入包含要授與事件匯流排之權限的政策。您可以貼上來自其他來源的政策，或輸入該政策的 JSON。
   + 若要使用政策的範例，請選擇**載入範例**。根據您的環境適當修改政策，包括新增您授權政策中主體使用的其他動作。

1. 選擇**更新**。

範本提供範例政策陳述式，您可以針對您的帳戶和環境自訂這些陳述式。範本不是有效的政策。您可以修改使用案例的範本，也可以複製其中一個範例政策並加以自訂。

範本會載入政策，其中包括如何授與帳戶以使用 `PutEvents` 動作的權限、如何授與權限給組織，以及如何授與帳戶管理帳戶規則的權限範例。您可以自訂特定帳戶的範本，然後從範本中刪除其他區段。本節稍後將包含更多範例政策。

如果您嘗試更新匯流排的權限，但政策包含錯誤，錯誤訊息會指出政策中的特定問題。

```
  ### Choose which sections to include in the policy to match your use case. ###
  ### Be sure to remove all lines that start with ###, including the ### at the end of the line. ###

  ### The policy must include the following: ###

  {
    "Version": "2012-10-17",		 	 	 
    "Statement": [

      ### To grant permissions for an account to use the PutEvents action, include the following, otherwise delete this section: ###

      {

        "Sid": "AllowAccountToPutEvents",
        "Effect": "Allow",
        "Principal": {
          "AWS": "<ACCOUNT_ID>"
        },
        "Action": "events:PutEvents",
        "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default"
      },

      ### Include the following section to grant permissions to all members of your AWS Organizations to use the PutEvents action ###

      {
        "Sid": "AllowAllAccountsFromOrganizationToPutEvents",
        "Effect": "Allow",
        "Principal": "*",
        "Action": "events:PutEvents",
        "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default",
        "Condition": {
          "StringEquals": {
            "aws:PrincipalOrgID": "o-yourOrgID"
          }
        }
      },

      ### Include the following section to grant permissions to the account to manage the rules created in the account ###

      {
        "Sid": "AllowAccountToManageRulesTheyCreated",
        "Effect": "Allow",
        "Principal": {
          "AWS": "<ACCOUNT_ID>"
        },
        "Action": [
          "events:PutRule",
          "events:PutTargets",
          "events:DeleteRule",
          "events:RemoveTargets",
          "events:DisableRule",
          "events:EnableRule",
          "events:TagResource",
          "events:UntagResource",
          "events:DescribeRule",
          "events:ListTargetsByRule",
          "events:ListTagsForResource"],
        "Resource": "arn:aws:events:us-east-1:123456789012:rule/default",
        "Condition": {
          "StringEqualsIfExists": {
            "events:creatorAccount": "<ACCOUNT_ID>"
          }
        }
    }]
  }
```

# 範例政策：將事件傳送至 Amazon EventBridge 中不同帳戶中的預設匯流排
<a name="eb-event-bus-example-policy-cross-account"></a>

下列範例政策會授與帳戶 111122223333 的權限，以便將事件發佈至帳戶 123456789012 中的預設事件匯流排。

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
        "Sid": "sid1",
        "Effect": "Allow",
        "Principal": {"AWS":"arn:aws:iam::111112222333:root"},
        "Action": "events:PutEvents",
        "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default"
        }
    ]
  }
```

------

# 範例政策：將事件傳送至 Amazon EventBridge 中不同帳戶中的自訂匯流排
<a name="eb-event-bus-example-policy-cross-account-custom-bus-source"></a>

下列範例政策授與帳戶 111122223333 權限，可將事件發佈至帳戶 123456789012，但僅適用於來源值 `central-event-bus` 設定為 `com.exampleCorp.webStore` 和來源值 `detail-type` 設定為 `newOrderCreated` 的事件。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "WebStoreCrossAccountPublish",
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:root"
      },
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/central-event-bus",
      "Condition": {
        "ForAllValues:StringEquals": {
          "events:source": "com.exampleCorp.webStore",
          "events:detail-type": "newOrderCreated"
        }
      }
    }
  ]
}
```

------

# 範例政策：將事件傳送至 Amazon EventBridge 中相同帳戶中的事件匯流排
<a name="eb-event-bus-example-policy-same-account"></a>

下列附加至事件匯流排的範例政策 `CustomBus1` 可讓事件匯流排接收來自相同帳戶和區域的事件。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "events:PutEvents"
            ],
            "Resource": [
                "arn:aws:events:us-east-1:111122223333:event-bus/CustomBus1"
            ]
        }
    ]
}
```

------

# 範例政策：將事件從特定規則傳送至不同區域中的 Amazon EventBridge 匯流排
<a name="eb-event-bus-example-policy-restrict-rule"></a>

下列範例政策授與帳戶 111122223333 權限，令其可將符合中東 (巴林) 和美國西部 (奧勒岡) 區域中以 `SendToUSE1AnotherAccount` 命名之規則的事件傳送至美國東部 (維吉尼亞北部) 帳戶 123456789012 中以 `CrossRegionBus` 命名的事件匯流排。範例政策會新增至帳戶 123456789012 `CrossRegionBus` 中指定的事件匯流排。只有當事件符合帳戶 111122223333 中為事件匯流排指定的規則時，此政策才允許事件。陳述式 `Condition` 會將事件限制為僅符合規則與指定規則 ARN 的事件。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowSpecificRulesAsCrossRegionSource",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111112222333:root"
      },
      "Action": "events:PutEvents",
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/CrossRegionBus",
      "Condition": {
        "ArnEquals": {
          "aws:SourceArn": [
            "arn:aws:events:us-west-2:111112222333:rule/CrossRegionBus/SendToUSE1AnotherAccount",
            "arn:aws:events:me-south-1:111112222333:rule/CrossRegionBus/SendToUSE1AnotherAccount"
          ]
        }
      }
    }
  ]
}
```

------

# 範例政策：僅將事件從特定區域傳送至 Amazon EventBridge 中的不同區域
<a name="eb-event-bus-example-policy-specific-region"></a>

下列範例政策授與帳戶 111122223333 權限，令其可將在中東 (巴林) 和美國西部 (奧勒岡) 區域中發生的事件傳送至美國東部 (維吉尼亞北部) 帳戶 123456789012 中以 `CrossRegionBus` 命名的事件匯流排。帳戶 111122223333 沒有傳送任何其他區域產生之事件的權限。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowCrossRegionEventsFromUSWest2AndMESouth1",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111112222333:root"
      },
      "Action": "events:PutEvents",
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/CrossRegionBus",
      "Condition": {
        "ArnEquals": {
          "aws:SourceArn": [
            "arn:aws:events:us-west-2:*:*",
            "arn:aws:events:me-south-1:*:*"
          ]
        }
      }
    }
  ]
}
```

------

# 範例政策：拒絕從 Amazon EventBridge 中的特定區域傳送事件
<a name="eb-event-bus-example-policy-deny-regions"></a>

下列附加至帳戶 123456789012 中以 `CrossRegionBus` 命名的事件匯流排的範例政策會授與事件匯流排接收來自帳戶 111122223333 的事件的權限，但不授與在美國西部 (奧勒岡) 區域產生的事件。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "1AllowAnyEventsFromAccount111112222333",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111112222333:root"
      },
      "Action": "events:PutEvents",
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/CrossRegionBus"
    },
    {
      "Sid": "2DenyAllCrossRegionUSWest2Events",
      "Effect": "Deny",
      "Principal": {
        "AWS": "*"
      },
      "Action": "events:PutEvents",
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/CrossRegionBus",
      "Condition": {
        "ArnEquals": {
          "aws:SourceArn": [
            "arn:aws:events:us-west-2:*:*"
          ]
        }
      }
    }
  ]
}
```

------

# Amazon EventBridge 中的事件
<a name="eb-events"></a>

*事件*指示某個環境 (例如 AWS 環境、SaaS 合作夥伴服務或應用程式) 或者您的某個應用程式或服務的變更。下列為事件的範例：
+ Amazon EC2 會在執行個體狀態變更時產生事件，例如從待定變更為執行中。
+ AWS CloudFormation 會在建立、更新或刪除堆疊時產生事件。
+ AWS CloudTrail 當您進行 API 呼叫時， 會發佈事件。

您也可以設定定期產生的排程事件。

事件表示為 JSON 物件，所有事件都具有類似的結構，且具有相同的最上層欄位。如需詳細資訊，請參閱 *EventBridge *[事件參考中的事件結構](https://docs.aws.amazon.com/eventbridge/latest/ref/welcome.html#overiew-event-structure)。

## 來自 AWS 服務的事件
<a name="eb-service-event"></a>

許多 AWS 服務會產生 EventBridge 接收的事件。當您帳戶中 AWS 的服務將事件傳送至 EventBridge 時，它會前往您帳戶的預設事件匯流排。

如需將事件傳送至 EventBridge AWS 的服務清單及其傳送的事件，請參閱 [EventBridge 事件參考](https://docs.aws.amazon.com/eventbridge/latest/ref/welcome.html)。

AWS 服務會以*持久*或*盡力*的方式將事件傳送至 EventBridge。如需詳細資訊，請參閱 *EventBridge *[事件參考中的事件交付層級](https://docs.aws.amazon.com/eventbridge/latest/ref/welcome.html#event-delivery-level)。

 下列影片說明事件的基本概念：




 以下影片涵蓋事件達到 EventBridge 的方式：




# 在 Amazon EventBridge `PutEvents`中使用 傳送事件
<a name="eb-putevents"></a>

`PutEvents` 動作可在單一請求中將多個[事件](eb-events.md)傳送至 EventBridge。如需詳細資訊，請參閱《Amazon EventBridge API 參考》**中的 [PutEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEvents.html) 和 *AWS CLI 命令參考*中的 [Put-Events](https://docs.aws.amazon.com/cli/latest/reference/events/put-events.html)。

每個 `PutEvents` 請求可支援有限數量的項目。如需詳細資訊，請參閱 [Amazon EventBridge 配額](eb-quota.md)。`PutEvents` 操作嘗試依照請求的自然順序處理所有項目。在您呼叫 `PutEvents` 之後，EventBridge 會為每個事件指派一個唯一的 ID。

在以下範例中，Java 程式碼將兩個相同的事件傳送至 EventBridge。

------
#### [ AWS SDK for Java Version 2.x ]

```
EventBridgeClient eventBridgeClient =
    EventBridgeClient.builder().build();

PutEventsRequestEntry requestEntry = PutEventsRequestEntry.builder()
    .resources("resource1", "resource2")
    .source("com.mycompany.myapp")
    .detailType("myDetailType")
    .detail("{ \"key1\": \"value1\", \"key2\": \"value2\" }")
    .build();

List <
PutEventsRequestEntry > requestEntries = new ArrayList <
PutEventsRequestEntry > ();
requestEntries.add(requestEntry);

PutEventsRequest eventsRequest = PutEventsRequest.builder()
    .entries(requestEntries)
    .build();

PutEventsResponse result = eventBridgeClient.putEvents(eventsRequest);

for (PutEventsResultEntry resultEntry: result.entries()) {
    if (resultEntry.eventId() != null) {
        System.out.println("Event Id: " + resultEntry.eventId());
    } else {
        System.out.println("PutEvents failed with Error Code: " + resultEntry.errorCode());
    }
}
```

------
#### [ AWS SDK for Java Version 1.0 ]

```
EventBridgeClient eventBridgeClient =
    EventBridgeClient.builder().build();
    
PutEventsRequestEntry requestEntry = new PutEventsRequestEntry()
        .withTime(new Date())
        .withSource("com.mycompany.myapp")
        .withDetailType("myDetailType")
        .withResources("resource1", "resource2")
        .withDetail("{ \"key1\": \"value1\", \"key2\": \"value2\" }");

PutEventsRequest request = new PutEventsRequest()
        .withEntries(requestEntry, requestEntry);

PutEventsResult result = awsEventsClient.putEvents(request);

for (PutEventsResultEntry resultEntry : result.getEntries()) {
    if (resultEntry.getEventId() != null) {
        System.out.println("Event Id: " + resultEntry.getEventId());
    } else {
        System.out.println("Injection failed with Error Code: " + resultEntry.getErrorCode());
    }
}
```

------

執行此程式碼之後，`PutEvents` 結果會包含回應項目的陣列。回應陣列中的每個項目按照從請求和回應的開始到結束的順序對應於請求陣列中的一個項目。回應 `Entries` 陣列通常包含與請求陣列相同數量的項目。

## 使用 `PutEvents` 處理失敗
<a name="eb-failure-handling"></a>

根據預設，如果要求中的個別項目失敗，EventBridge 會繼續處理要求中其餘的項目。回應 `Entries` 陣列可以同時包含成功和失敗的項目。您必須偵測未成功處理的項目，並將它們包含於後續呼叫中。

成功的結果項目包含一個 `Id` 值，不成功的結果項目包括 `ErrorCode` 和 `ErrorMessage` 值。`ErrorCode` 描述錯誤的類型。`ErrorMessage` 提供關於錯誤的詳細資訊。以下範例有 `PutEvents` 請求的三個結果項目。第二個項目不成功。

```
{
    "FailedEntryCount": 1, 
    "Entries": [
        {
            "EventId": "11710aed-b79e-4468-a20b-bb3c0c3b4860"
        },
        {   "ErrorCode": "InternalFailure",
            "ErrorMessage": "Internal Service Failure"
        },
        {
            "EventId": "d804d26a-88db-4b66-9eaf-9a11c708ae82"
        }
    ]
}
```

**注意**  
如果您使用 `PutEvents` 將事件發佈到不存在的事件匯流排，EventBridge 事件比對將找不到對應的規則，而且會捨棄該事件。雖然 EventBridge 會傳送 `200` 回應，但它不會讓要求失敗，也不會將事件包含在要求回應的 `FailedEntryCount` 值中。

未成功處理的項目可包含在後續的 `PutEvents` 請求中。首先，查看 `PutEventsResult` 中的 `FailedRecordCount` 參數以確認請求中是否有失敗的項目。如果其值非為零，您可以將具有非 null 值之 `ErrorCode` 中的每個 `Entry` 新增至後續請求中。以下範例顯示一個失敗處理常式。

```
PutEventsRequestEntry requestEntry = new PutEventsRequestEntry()
        .withTime(new Date())
        .withSource("com.mycompany.myapp")
        .withDetailType("myDetailType")
        .withResources("resource1", "resource2")
        .withDetail("{ \"key1\": \"value1\", \"key2\": \"value2\" }");

List<PutEventsRequestEntry> putEventsRequestEntryList = new ArrayList<>();
for (int i = 0; i < 3; i++) {
    putEventsRequestEntryList.add(requestEntry);
}

PutEventsRequest putEventsRequest = new PutEventsRequest();
putEventsRequest.withEntries(putEventsRequestEntryList);
PutEventsResult putEventsResult = awsEventsClient.putEvents(putEventsRequest);

while (putEventsResult.getFailedEntryCount() > 0) {
    final List<PutEventsRequestEntry> failedEntriesList = new ArrayList<>();
    final List<PutEventsResultEntry> PutEventsResultEntryList = putEventsResult.getEntries();
    for (int i = 0; i < PutEventsResultEntryList.size(); i++) {
        final PutEventsRequestEntry putEventsRequestEntry = putEventsRequestEntryList.get(i);
        final PutEventsResultEntry putEventsResultEntry = PutEventsResultEntryList.get(i);
        if (putEventsResultEntry.getErrorCode() != null) {
            failedEntriesList.add(putEventsRequestEntry);
        }
    }
    putEventsRequestEntryList = failedEntriesList;
    putEventsRequest.setEntries(putEventsRequestEntryList);
    putEventsResult = awsEventsClient.putEvents(putEventsRequest);
    }
```

## 使用 傳送事件 AWS CLI
<a name="eb-send-events-aws-cli"></a>

您可以使用 AWS CLI 將自訂事件傳送至 EventBridge，以便進行處理。以下範例將一個自訂事件放入 EventBridge：

```
aws events put-events \
--entries '[{"Time": "2016-01-14T01:02:03Z", "Source": "com.mycompany.myapp", "Resources": ["resource1", "resource2"], "DetailType": "myDetailType", "Detail": "{ \"key1\": \"value1\", \"key2\": \"value2\" }"}]'
```

您也可以建立包含自訂事件的 JSON 檔案。

```
[
  {
    "Time": "2016-01-14T01:02:03Z",
    "Source": "com.mycompany.myapp",
    "Resources": [
      "resource1",
      "resource2"
    ],
    "DetailType": "myDetailType",
    "Detail": "{ \"key1\": \"value1\", \"key2\": \"value2\" }"
  }
]
```

然後，若要使用 從此檔案 AWS CLI 讀取項目並傳送事件，請在命令提示字元中輸入：

```
aws events put-events --entries file://entries.json
```

## 計算 PutEvents 事件項目大小
<a name="eb-putevent-size"></a>

當您使用 `PutEvents`動作將自訂事件傳送至 EventBridge 時，您最多可以將 10 個事件項目批次處理為一個請求以提高效率。請求總大小，也就是請求中所有事件項目的總和，必須小於 1 MB。此限制適用於整個請求，不適用於個別項目。如果單一事件是請求中的唯一項目，則最多可以使用完整的 1 MB。您可以在傳送事件之前計算項目大小。



**注意**  
*項目*有大小的限制。即使項目小於大小限制，由於事件之 JSON 表示法的必要字元和鍵，EventBridge 中的*事件*始終大於項目大小。如需詳細資訊，請參閱 [Amazon EventBridge 中的事件](eb-events.md)。

EventBridge 會計算 `PutEventsRequestEntry` 大小，如下所示：
+ 如果已指定，`Time` 參數為 14 個位元。
+ `Source` 和 `DetailType` 參數為其 UTF-8 編碼表單的位元組數。
+ 如果已指定，`Detail` 參數為其 UTF-8 編碼表單的位元組數。
+ 如果已指定，`Resources` 參數的每個項目為其 UTF-8 編碼表單的位元組數。

以下範例 Java 程式碼會計算指定的 `PutEventsRequestEntry` 物件的大小：為了確認未違反 1MB 限制，您需要對請求中的所有事件執行計算。

```
int getSize(PutEventsRequestEntry entry) {
    int size = 0;
    if (entry.getTime() != null) {
        size += 14;
    }
    size += entry.getSource().getBytes(StandardCharsets.UTF_8).length;
    size += entry.getDetailType().getBytes(StandardCharsets.UTF_8).length;
    if (entry.getDetail() != null) {
        size += entry.getDetail().getBytes(StandardCharsets.UTF_8).length;
    }
    if (entry.getResources() != null) {
        for (String resource : entry.getResources()) {
            if (resource != null) {
                size += resource.getBytes(StandardCharsets.UTF_8).length;
            }
        }
    }
    return size;
}
```

**注意**  
如果項目大小大於 1MB，建議您將事件上傳至 Amazon S3 儲存貯體，並在`PutEvents`項目`Object URL`中包含 。

# EventBridge 如何重試交付事件
<a name="eb-rule-retry-policy"></a>

有時，[事件](eb-events.md)未成功交付至[規則](eb-rules.md)中指定的[目標](eb-targets.md)。這可能會發生，例如：
+ 如果目標資源無法使用
+ 由於網路條件

當事件因為可重新擷取的錯誤而未成功交付至目標時，EventBridge 會重試傳送事件。您可以設定嘗試的時間長度，以及目標的**重試政策**設定中重新嘗試的次數。在預設情況下，EventBridge 會重新嘗試傳送事件 24 小時且最多嘗試 185 次，並且具有[指數方式退避和*抖動*](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/)或隨機延遲。

如果事件在所有重試嘗試都用盡之後仍未交付，則會捨棄該事件，且 EventBridge 不會繼續處理該事件。

為了避免在事件無法交付至目標後遺失事件，請設定無效字母佇列 (DLQ) 來接收所有失敗的事件。如需詳細資訊，請參閱[使用無效字母佇列來處理 EventBridge 中未傳遞的事件](eb-rule-dlq.md)。

# 使用無效字母佇列來處理 EventBridge 中未傳遞的事件
<a name="eb-rule-dlq"></a>

若要避免在無法交付至目標後遺失事件，您可以設定無效字母佇列 (DLQ)，並將所有失敗事件傳送至事件，以便稍後處理。

EventBridge DLQ 是標準的 Amazon SQS 佇列，EventBridge 用來儲存無法成功傳遞至目標的事件。建立規則並新增目標時，您可以選擇是否使用 DLQ。設定 DLQ 時，您可以保留任何未成功交付的事件。然後，您可以解決導致事件交付失敗的問題，並在稍後處理事件。

當您為規則的目標設定 DLQ 時，EventBridge 會將調用失敗的事件傳送至選取的 Amazon SQS 佇列。

事件錯誤以不同的方式進行處理。有些事件會捨棄或傳送至 DLQ，而不會嘗試任何重試。例如，對於遺失對目標的許可、不再存在的目標資源，或由於無效地址或 DNS 查詢失敗而找不到的目標所造成的錯誤，在採取動作來解決基礎問題之前，不會重試。如果您已指定這些事件， 會直接將這些事件 EventBridge 傳送至目標 DLQ。

當事件交付失敗時，EventBridge 會將事件發佈至 Amazon CloudWatch 指標，指出目標 `invocation` 失敗。如果您使用 DLQ，則會將其他指標傳送至 CloudWatch，包括 `InvocationsSentToDLQ` 和 `InvocationsFailedToBeSentToDLQ`。

如果您使用 AWS KMS 客戶受管金鑰 加密靜態事件，也可以指定事件匯流排DLQs。如需詳細資訊，請參閱[使用無效字母佇列擷取 EventBridge 中的加密事件錯誤](eb-encryption-event-bus-dlq.md)。

DLQ 中的每則訊息都會包含下列自訂屬性：
+ `RULE_ARN`
+ `TARGET_ARN`
+ `ERROR_CODE`

  以下是 DLQ 可傳回的錯誤代碼範例：
  + `ACTION_DECRYPTION_FAILURE`
  + `CONNECTION_FAILURE`
  + `CROSS_ACCOUNT_INGESTION_FAILED`
  + `CROSS_REGION_INGESTION_FAILED`
  + `ERROR_FROM_TARGET`
  + `EVENT_DECRYPTION_FAILURE`
  + `EVENT_ENCRYPTION_FAILURE`
  + `EVENTS_IN_BATCH_REQUEST_REJECTED`
  + `FAILED_TO_ASSUME_ROLE`
  + `INTERNAL_ERROR`
  + `INVALID_JSON`
  + `INVALID_PARAMETER`
  + `NO_PERMISSIONS`
  + `NO_RESOURCE`
  + `RESOURCE_ALREADY_EXISTS`
  + `RESOURCE_LIMIT_EXCEEDED`
  + `RESOURCE_MODIFICATION_COLLISION`
  + `RULE_DECRYPTION_FAILURE`
  + `SDK_CLIENT_ERROR`
  + `THIRD_ACCOUNT_HOP_DETECTED`
  + `THIRD_REGION_HOP_DETECTED`
  + `THROTTLING`
  + `TIMEOUT`
  + `TRANSIENT_ASSUME_ROLE`
  + `UNKNOWN`
+ `ERROR_MESSAGE`
+ `EXHAUSTED_RETRY_CONDITION`

  可能回傳以下條件：
  + `MaximumRetryAttempts`
  + `MaximumEventAgeInSeconds`
+ `RETRY_ATTEMPTS`

 以下影片會介紹如何設定 DLQs：




**Topics**
+ [

## 使用無效字母佇列的考量
](#eb-dlq-considerations)
+ [

## 將許可授予無效字母佇列
](#eb-dlq-perms)
+ [

## 如何從無效字母佇列重新傳送事件
](#eb-dlq-resend)

## 使用無效字母佇列的考量
<a name="eb-dlq-considerations"></a>

設定 EventBridge 的 DLQ 時請考量下列事項。
+ 僅支援[標準佇列](https://docs.aws.amazon.com//AWSSimpleQueueService/latest/SQSDeveloperGuide/standard-queues.html)。您無法在 EventBridge 中將 FIFO 佇列用於 DLQ。
+ EventBridge 在訊息中包含事件中繼資料和訊息屬性，包括：錯誤碼、錯誤訊息、用盡重試條件、規則 ARN、重試嘗試次數和目標 ARN。您可以使用這些值來識別事件和失敗原因。
+ 相同帳戶中 DLQ 的許可：
  + 如果您使用主控台將目標新增至規則，並在同一帳戶中選擇 Amazon SQS 佇列，則會將授予 EventBridge 存取佇列的[資源型政策](eb-use-resource-based.md)附加至佇列。
  + 如果您使用 EventBridge API 的 `PutTargets` 操作來新增或更新規則的目標，並在同一帳戶中選取 Amazon SQS 佇列，則必須手動授予所選取佇列的許可。如需詳細資訊，請參閱 [將許可授予無效字母佇列](#eb-dlq-perms)。
+ 從不同 AWS 帳戶使用 Amazon SQS 佇列的許可。
  + 如果您從主控台建立規則，則不會顯示來自其他帳戶的佇列供您選取。您必須為其他帳戶中的佇列提供 ARN，然後手動附加以資源為基礎的政策，以授予佇列的許可。如需詳細資訊，請參閱 [將許可授予無效字母佇列](#eb-dlq-perms)。
  + 如果您使用 API 建立規則，則必須手動將以資源為基礎的政策附加到另一個帳戶中作為無效字母佇列的 SQS 佇列。如需詳細資訊，請參閱 [將許可授予無效字母佇列](#eb-dlq-perms)。
+ 您使用的 Amazon SQS 佇列必須位於建立規則的相同區域。

## 將許可授予無效字母佇列
<a name="eb-dlq-perms"></a>

若要成功將事件交付至佇列，EventBridge 必須擁有執行此動作的許可。當您使用 EventBridge 主控台指定 DLQ 時，會自動新增許可。其中包含：
+ 當您為規則的目標設定 DLQ 時。
+ 當您為已指定 EventBridge 使用 AWS KMS 客戶受管金鑰 加密靜態事件的事件匯流排設定 DLQ 時。

  如需詳細資訊，請參閱[使用無效字母佇列擷取 EventBridge 中的加密事件錯誤](eb-encryption-event-bus-dlq.md)。

 如果您使用 API 指定 DLQ，或使用不同 AWS 帳戶中的佇列，則必須手動建立以資源為基礎的政策，以授予所需的許可，然後將其連接到佇列。

**目標無效字母佇列許可範例**

以下以資源為基礎的政策示範如何授予 EventBridge 將事件訊息傳送至 Amazon SQS 佇列的必要許可。此政策範例會授予 EventBridge 服務許可，以便使用 `SendMessage` 操作將訊息傳送至名為「MyEventDLQ」的佇列。佇列必須位於 AWS 帳戶 123456789012 中的 us-west-2 區域。`Condition` 陳述式僅允許來自名為 "MyTestRule" 的規則的請求，該規則是在 AWS 帳戶 123456789012 的 us-west-2 區域中建立的。

```
{
  "Sid": "Dead-letter queue permissions",
  "Effect": "Allow",
  "Principal": {
     "Service": "events.amazonaws.com"
  },
  "Action": "sqs:SendMessage",
  "Resource": "arn:aws:sqs:us-west-2:123456789012:MyEventDLQ",
  "Condition": {
    "ArnEquals": {
      "aws:SourceArn": "arn:aws:events:us-west-2:123456789012:rule/MyTestRule"
    }
  }
}
```

**事件匯流排無效字母佇列許可範例**

下列資源型政策示範如何在為事件匯流排指定 DLQ 時授予所需的許可。在此情況下， 會`aws:SourceArn`指定將事件傳送至 DLQ 的事件匯流排 ARN。在此範例中，佇列必須與事件匯流排位於相同的區域。

```
{
  "Sid": "Dead-letter queue permissions",
  "Effect": "Allow",
  "Principal": {
     "Service": "events.amazonaws.com"
  },
  "Action": "sqs:SendMessage",
  "Resource": "arn:aws:sqs:region:account-id:queue-name",
  "Condition": {
    "ArnEquals": {
      "aws:SourceArn": "arn:aws:events:region:account-id:event-bus/event-bus-arn"
    }
  }
}
```

若要將政策附加到佇列，請使用 Amazon SQS 主控台，開啟佇列，然後選擇**存取政策**並編輯政策。您也可以使用 AWS CLI。如需詳細資訊，請參閱 [Amazon SQS 許可](eb-use-resource-based.md#eb-sqs-permissions)。

## 如何從無效字母佇列重新傳送事件
<a name="eb-dlq-resend"></a>

您可以以下列兩種方式將訊息從無效字母佇列中移出：
+ 避免編寫 Amazon SQS 消費者邏輯 - 將無效字母佇列設為 Lambda 函數的事件來源，以耗盡無效字母佇列。
+ 寫入 Amazon SQS 消費者邏輯 – 使用 Amazon SQS API、 AWS SDK 或 AWS CLI 撰寫自訂消費者邏輯，以輪詢、處理和刪除 DLQ 中的訊息。

# AWS 透過 傳遞的服務事件 AWS CloudTrail
<a name="eb-service-event-cloudtrail"></a>

 AWS CloudTrail 是一種服務，可自動記錄 AWS API 呼叫等事件。您可以建立 EventBridge 規則，以使用 CloudTrail 的資訊。如需 CloudTrail 的詳細資訊，請參閱[什麼是 AWS CloudTrail？](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)。

CloudTrail 會將下列類型的事件傳送至預設 EventBridge 事件匯流排。在每個案例中，事件`detail-type`的值都是列出的事件類型：
+ `AWS API Call via CloudTrail`

  代表公有 AWS 服務 API 請求的事件。

  如需詳細資訊，請參閱*AWS CloudTrail 《 使用者指南*》中的[了解 CloudTrail 事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-events.html)。
+ `AWS Console Signin via CloudTrail`

  嘗試登入 AWS 管理主控台、 AWS 開發論壇和 AWS 支援中心。

  如需詳細資訊，請參閱*AWS CloudTrail 《 使用者指南*》中的[AWS 管理主控台登入事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-aws-console-sign-in-events.html)。
+ `AWS Console Action via CloudTrail`

  在主控台中採取的動作不是 API 呼叫。

  如需詳細資訊，請參閱*AWS CloudTrail 《 使用者指南*》中的[AWS 管理主控台登入事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-aws-console-sign-in-events.html)。
+ `AWS Service Event via CloudTrail`

  由 AWS 服務建立但未由公有 AWS 服務 API 請求直接觸發的事件。

  如需詳細資訊，請參閱*AWS CloudTrail 《 使用者指南*》中的[AWS 服務事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/non-api-aws-service-events.html)。
+ `AWS Insight via CloudTrail`

  當客戶啟用 CloudTrail Insight 功能時，CloudTrail 會觸發 Insights 事件。

  如需詳細資訊，請參閱*AWS CloudTrail 《 使用者指南*》中的 [CloudTrail Insights](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-insight-details.html)。

若要使用其中一個 CloudTrail `detail-type`值記錄事件，您必須啟用具有記錄的 CloudTrail 追蹤。如需詳細資訊，請參閱*AWS CloudTrail 《 使用者指南*》中的[使用 CloudTrail 追蹤](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html)。

 AWS 服務本身和 CloudTrail 都可以向 EventBridge 報告某些事件。例如，啟動執行個體的 Amazon EC2 API 呼叫會產生多個事件：
+ `EC2 Instance State-change Notification` 當執行個體進入 `pending`，然後進入 `running` 狀態時，直接從 Amazon EC2 傳送至 EventBridge 的事件。例如：

  ```
  {
      . . . 
     "detail-type":"EC2 Instance State-change Notification",
     "source":"aws.ec2",
      . . . 
     "detail":{
        "instance-id":"i-abcd1111",
        "state":"pending"
     }
  }
  ```
+ 從 CloudTrail 傳送至 EventBridge `AWS API Call via CloudTrail`的事件，代表 API 呼叫本身。例如：

  ```
  {
      . . . 
     "detail-type":"AWS API Call via CloudTrail",
     "source":"aws.ec2",
      . . . 
     ],
    "detail": {
      "eventSource": "ec2.amazonaws.com",
      "eventName": "StartInstances"
      }
  }
  ```

**注意**  
如果您使用 `Put*Events` API 呼叫事件做為建立事件模式的基礎，請確定最終事件模式不超過 1 MB。任何`Put*Events`請求的大小上限為 1 MB。如需詳細資訊，請參閱[](eb-putevents.md)。

如需有關 CloudTrail 支援之服務的詳細資訊，請參閱[CloudTrail 使用者指南》中的 CloudTrail 支援的服務和整合](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html)。 *CloudTrail *

# 從 AWS 服務接收唯讀管理事件
<a name="eb-service-event-cloudtrail-management"></a>

您可以在預設或自訂事件匯流排上設定規則，透過 CloudTrail 從 AWS 服務接收唯讀*管理事件*。管理事件可讓您查看在 AWS 帳戶中資源上執行的管理操作。這些也稱為控制平面操作。如需詳細資訊，請參閱《CloudTrail 使用者指南》**中的[記錄管理事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-events-with-cloudtrail.html#logging-management-events)。

針對有關預設或自訂事件匯流排的每個規則，您可以設定規則狀態來控制要接收的事件類型：
+ 停用規則，讓 EventBridge 不符合規則的事件。
+ 啟用規則，讓 EventBridge 符合規則的事件，但透過 傳遞的唯讀 AWS 管理事件除外 CloudTrail。
+ 啟用規則，讓 EventBridge 符合規則的所有事件，*包括*透過 傳遞的唯讀管理事件 CloudTrail。

合作夥伴事件匯流排不會接收 AWS 事件。

決定是否接收唯讀管理事件時需要考量的一些事項：
+ 某些唯讀管理事件，例如 AWS Key Management Service `GetKeyPolicy` 和 `DescribeKey`，或 IAM `GetPolicy`和 `GetRole`事件，其發生量遠高於一般變更事件。
+ 您可能已經收到唯讀管理事件`Get`，即使這些事件的開頭不是 `Describe`、 或 `List`。其中一個範例來自 `TestEventPattern` EventBridge。

  如需依 AWS 服務不符合 `Describe`、 `Get`或 `List` 命名慣例的唯讀管理事件清單，請參閱 [EventBridge 中 AWS 服務產生的管理事件](eb-service-management-event-list.md)。

**使用 CLI AWS 建立接收唯讀管理事件的規則**
+ 使用 `put-rule` 指令建立或更新規則，並使用參數執行下列作業：
  + 指定規則屬於預設事件匯流排或特定自訂事件匯流排
  + 將規則狀態設為 `ENABLED_WITH_ALL_CLOUDTRAIL_MANAGEMENT_EVENTS`

  `aws events put-rule --name "ruleForManagementEvents" --event-bus-name "default" --state "ENABLED_WITH_ALL_CLOUDTRAIL_MANAGEMENT_EVENTS"`

**注意**  
僅支援透過 CLI 和 CloudFormation 範本啟用 CloudWatch AWS 管理事件的規則。

**Example**  
下列範例說明如何與特定事件進行比對。最佳實務是為比對特定事件定義專用規則，以保持清晰和易於編輯。  
在此情況下，專用規則會比對來自 的`AssumeRole`管理事件 AWS Security Token Service。  

```
{
    "source" : [ "aws.sts" ],
    "detail-type": ["AWS API Call via CloudTrail"],
    "detail" : {
        "eventName" : ["AssumeRole"]
    }
}
```

# EventBridge 中 AWS 服務產生的管理事件
<a name="eb-service-management-event-list"></a>

一般而言，產生管理 (或唯讀) 事件的 API 會以動詞 `Describe`、`Get` 或 `List` 開頭。下表列出其產生的不遵循此命名慣例 AWS 的服務和管理事件。如需管理事件的詳細資訊，請參閱 [從 AWS 服務接收唯讀管理事件](eb-service-event-cloudtrail-management.md)。

## 不是以 `Describe`、`Get` 或 `List` 開頭的管理事件
<a name="eb-service-management-table-list"></a>

下表列出 AWS 服務和其產生的管理事件，這些事件不遵循以 `Describe`、 `Get`或 開頭的典型命名慣例`List`。


| 服務 | 事件名稱 | 事件類型 | 
| --- | --- | --- | 
| 企業版 Alexa | ResolveRoom | API 呼叫 | 
| 企業版 Alexa | SearchAddressBooks | API 呼叫 | 
| 企業版 Alexa | SearchContacts | API 呼叫 | 
| 企業版 Alexa | SearchDevices | API 呼叫 | 
| 企業版 Alexa | SearchProfiles | API 呼叫 | 
| 企業版 Alexa | SearchRooms | API 呼叫 | 
| 企業版 Alexa | SearchSkillGroups | API 呼叫 | 
| 企業版 Alexa | SearchUsers | API 呼叫 | 
| IAM Access Analyzer | ValidatePolicy | API 呼叫 | 
| AWS AdSpace 無塵室 | BatchGetSchema | API 呼叫 | 
| AWS Amplify UI Builder | ExportComponents | API 呼叫 | 
| AWS Amplify UI Builder | ExportForms | API 呼叫 | 
| AWS Amplify UI Builder | ExportThemes | API 呼叫 | 
| Amazon OpenSearch Service | BatchGetCollection | API 呼叫 | 
| Amazon API Gateway | ExportApi | API 呼叫 | 
| AWS AppConfig | ValidateConfiguration | API 呼叫 | 
| Amazon AppFlow | RetrieveConnectorData | API 呼叫 | 
| Amazon CloudWatch Application Insights | UpdateApplicationDashboardConfiguration | API 呼叫 | 
| Amazon Athena | BatchGetNamedQuery | API 呼叫 | 
| Amazon Athena | BatchGetPreparedStatement | API 呼叫 | 
| Amazon Athena | BatchGetQueryExecution | API 呼叫 | 
| Amazon Athena | CheckQueryCompatibility | API 呼叫 | 
| Amazon Athena | ExportNotebook | API 呼叫 | 
| AWS Auto Scaling | AreScalableTargetsRegistered | API 呼叫 | 
| AWS Auto Scaling | 測試 | API 呼叫 | 
| AWS Marketplace | SearchAgreements | API 呼叫 | 
| AWS Backup | CreateLegalHold | API 呼叫 | 
| AWS Backup | ExportBackupPlanTemplate | API 呼叫 | 
| AWS Backup gateway | TestHypervisorConfiguration | API 呼叫 | 
| AWS 帳單與成本管理 | AWSPaymentInstrumentGateway.Get | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.DescribeMakePaymentPage | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.DescribePaymentsDashboard | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetAccountPreferences | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetAdvancePaySummary | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetAsoBulkDownload | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetBillingContactAddress | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetDocuments | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetEligiblePaymentInstruments | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetEntitiesByIds | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetFundingDocuments | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetKybcValidationStatus | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetOneTimePasswordStatus | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetPaymentHistory | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetPaymentProfileByArn | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetPaymentProfileCurrencies | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetPaymentProfiles | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetPaymentProfileServiceProviders | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetPaymentsDue | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetRemittanceInformation | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetTaxInvoiceMetadata | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetTermsAndConditionsForProgramGroup | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetTransactionsHistory | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetUnappliedFunds | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPortalService.GetUnpaidInvoices | 主控台動作 | 
| AWS 帳單與成本管理 | AWSPaymentPreferenceGateway.Get | 主控台動作 | 
| AWS 帳單與成本管理 | CancelBulkDownload | 主控台動作 | 
| AWS 帳單與成本管理 | DownloadCommercialInvoice | 主控台動作 | 
| AWS 帳單與成本管理 | DownloadCsv | 主控台動作 | 
| AWS 帳單與成本管理 | DownloadDoc | 主控台動作 | 
| AWS 帳單與成本管理 | DownloadECSVForBillingPeriod | 主控台動作 | 
| AWS 帳單與成本管理 | DownloadPaymentHistory | 主控台動作 | 
| AWS 帳單與成本管理 | DownloadRegistrationDocument | 主控台動作 | 
| AWS 帳單與成本管理 | DownloadTaxInvoice | 主控台動作 | 
| AWS 帳單與成本管理 | FindBankRedirectPaymentInstruments | 主控台動作 | 
| AWS 帳單與成本管理 | FindECSVForBillingPeriod | 主控台動作 | 
| AWS 帳單與成本管理 | ValidateReportDestination | 主控台動作 | 
| AWS 帳單與成本管理 | VerifyChinaPaymentEligibility | 主控台動作 | 
| Amazon Braket | SearchCompilations | API 呼叫 | 
| Amazon Braket | SearchDevices | API 呼叫 | 
| Amazon Braket | SearchQuantumTasks | API 呼叫 | 
| Amazon Connect Cases | BatchGetField | API 呼叫 | 
| Amazon Connect Cases | SearchCases | API 呼叫 | 
| Amazon Connect Cases | SearchRelatedItems | API 呼叫 | 
| Amazon Chime | RetrieveDataExports | API 呼叫 | 
| Amazon Chime | SearchChannels | API 呼叫 | 
| Amazon Chime SDK 身分 | DeleteProfile | 服務事件 | 
| Amazon Chime SDK 身分 | DeleteWorkTalkAccount | 服務事件 | 
| AWS Clean 房間 | BatchGetSchema | API 呼叫 | 
| Amazon 雲端目錄 | BatchRead | API 呼叫 | 
| Amazon 雲端目錄 | LookupPolicy | API 呼叫 | 
| CloudFormation | DetectStackDrift | API 呼叫 | 
| CloudFormation | DetectStackResourceDrift | API 呼叫 | 
| CloudFormation | DetectStackSetDrift | API 呼叫 | 
| CloudFormation | EstimateTemplateCost | API 呼叫 | 
| CloudFormation | ValidateTemplate | API 呼叫 | 
| AWS CloudShell | RedeemCode | API 呼叫 | 
| AWS CloudTrail | LookupEvents | API 呼叫 | 
| AWS CodeArtifact | ReadFromRepository | API 呼叫 | 
| AWS CodeArtifact | SearchPackages | API 呼叫 | 
| AWS CodeArtifact | VerifyResourcesExistForTagris | API 呼叫 | 
| AWS CodeBuild | BatchGetBuildBatches | API 呼叫 | 
| AWS CodeBuild | BatchGetBuilds | API 呼叫 | 
| AWS CodeBuild | BatchGetProjects | API 呼叫 | 
| AWS CodeBuild | BatchGetReportGroups | API 呼叫 | 
| AWS CodeBuild | BatchGetReports | API 呼叫 | 
| AWS CodeBuild | BatchPutCodeCoverages | API 呼叫 | 
| AWS CodeBuild | BatchPutTestCases | API 呼叫 | 
| AWS CodeBuild | RequestBadge | 服務事件 | 
| AWS CodeCommit | BatchDescribeMergeConflicts | API 呼叫 | 
| AWS CodeCommit | BatchGetCommits | API 呼叫 | 
| AWS CodeCommit | BatchGetPullRequests | API 呼叫 | 
| AWS CodeCommit | BatchGetRepositories | API 呼叫 | 
| AWS CodeCommit | EvaluatePullRequestApprovalRules | API 呼叫 | 
| AWS CodeCommit | GitPull | API 呼叫 | 
| AWS CodeDeploy | BatchGetApplicationRevisions | API 呼叫 | 
| AWS CodeDeploy | BatchGetApplications | API 呼叫 | 
| AWS CodeDeploy | BatchGetDeploymentGroups | API 呼叫 | 
| AWS CodeDeploy | BatchGetDeploymentInstances | API 呼叫 | 
| AWS CodeDeploy | BatchGetDeployments | API 呼叫 | 
| AWS CodeDeploy | BatchGetDeploymentTargets | API 呼叫 | 
| AWS CodeDeploy | BatchGetOnPremisesInstances | API 呼叫 | 
| Amazon CodeGuru Profiler | BatchGetFrameMetricData | API 呼叫 | 
| Amazon CodeGuru Profiler | SubmitFeedback | API 呼叫 | 
| AWS CodePipeline | PollForJobs | API 呼叫 | 
| AWS CodePipeline | PollForThirdPartyJobs | API 呼叫 | 
| CodeConnections | StartAppRegistrationHandshake | API 呼叫 | 
| CodeConnections | StartOAuthHandshake | API 呼叫 | 
| CodeConnections | ValidateHostWebhook | API 呼叫 | 
| Amazon CodeWhisperer | CreateCodeScan | API 呼叫 | 
| Amazon CodeWhisperer | CreateProfile | API 呼叫 | 
| Amazon CodeWhisperer | CreateUploadUrl | API 呼叫 | 
| Amazon CodeWhisperer | GenerateRecommendations | API 呼叫 | 
| Amazon CodeWhisperer | UpdateProfile | API 呼叫 | 
| Amazon Cognito 身分 | LookupDeveloperIdentity | API 呼叫 | 
| Amazon Cognito 使用者集區 | AdminGetDevice | API 呼叫 | 
| Amazon Cognito 使用者集區 | AdminGetUser | API 呼叫 | 
| Amazon Cognito 使用者集區 | AdminListDevices | API 呼叫 | 
| Amazon Cognito 使用者集區 | AdminListGroupsForUser | API 呼叫 | 
| Amazon Cognito 使用者集區 | AdminListUserAuthEvents | API 呼叫 | 
| Amazon Cognito 使用者集區 | Beta\$1Authorize\$1GET | 服務事件 | 
| Amazon Cognito 使用者集區 | Confirm\$1GET | 服務事件 | 
| Amazon Cognito 使用者集區 | ConfirmForgotPassword\$1GET | 服務事件 | 
| Amazon Cognito 使用者集區 | Error\$1GET | 服務事件 | 
| Amazon Cognito 使用者集區 | ForgotPassword\$1GET | 服務事件 | 
| Amazon Cognito 使用者集區 | IntrospectToken | API 呼叫 | 
| Amazon Cognito 使用者集區 | Login\$1Error\$1POST | 服務事件 | 
| Amazon Cognito 使用者集區 | Login\$1GET | 服務事件 | 
| Amazon Cognito 使用者集區 | Mfa\$1GET | 服務事件 | 
| Amazon Cognito 使用者集區 | MfaOption\$1GET | 服務事件 | 
| Amazon Cognito 使用者集區 | ResetPassword\$1GET | 服務事件 | 
| Amazon Cognito 使用者集區 | Signup\$1GET | 服務事件 | 
| Amazon Cognito 使用者集區 | UserInfo\$1GET | 服務事件 | 
| Amazon Cognito 使用者集區 | UserInfo\$1POST | 服務事件 | 
| Amazon Cognito Sync | BulkPublish | API 呼叫 | 
| Amazon Comprehend | BatchContainsPiiEntities | API 呼叫 | 
| Amazon Comprehend | BatchDetectDominantLanguage | API 呼叫 | 
| Amazon Comprehend | BatchDetectEntities | API 呼叫 | 
| Amazon Comprehend | BatchDetectKeyPhrases | API 呼叫 | 
| Amazon Comprehend | BatchDetectPiiEntities | API 呼叫 | 
| Amazon Comprehend | BatchDetectSentiment | API 呼叫 | 
| Amazon Comprehend | BatchDetectSyntax | API 呼叫 | 
| Amazon Comprehend | BatchDetectTargetedSentiment | API 呼叫 | 
| Amazon Comprehend | ClassifyDocument | API 呼叫 | 
| Amazon Comprehend | ContainsPiiEntities | API 呼叫 | 
| Amazon Comprehend | DetectDominantLanguage | API 呼叫 | 
| Amazon Comprehend | DetectEntities | API 呼叫 | 
| Amazon Comprehend | DetectKeyPhrases | API 呼叫 | 
| Amazon Comprehend | DetectPiiEntities | API 呼叫 | 
| Amazon Comprehend | DetectSentiment | API 呼叫 | 
| Amazon Comprehend | DetectSyntax | API 呼叫 | 
| Amazon Comprehend | DetectTargetedSentiment | API 呼叫 | 
| Amazon Comprehend | DetectToxicContent | API 呼叫 | 
| AWS Compute Optimizer | ExportAutoScalingGroupRecommendations | API 呼叫 | 
| AWS Compute Optimizer | ExportEBSVolumeRecommendations | API 呼叫 | 
| AWS Compute Optimizer | ExportECInstanceRecommendations | API 呼叫 | 
| AWS Compute Optimizer | ExportECSServiceRecommendations | API 呼叫 | 
| AWS Compute Optimizer | ExportLambdaFunctionRecommendations | API 呼叫 | 
| AWS Compute Optimizer | ExportRDSInstanceRecommendations | API 呼叫 | 
| AWS Config | BatchGetAggregateResourceConfig | API 呼叫 | 
| AWS Config | BatchGetResourceConfig | API 呼叫 | 
| AWS Config | SelectAggregateResourceConfig | API 呼叫 | 
| AWS Config | SelectResourceConfig | API 呼叫 | 
| Amazon Connect | AdminGetEmergencyAccessToken | API 呼叫 | 
| Amazon Connect | SearchQueues | API 呼叫 | 
| Amazon Connect | SearchRoutingProfiles | API 呼叫 | 
| Amazon Connect | SearchSecurityProfiles | API 呼叫 | 
| Amazon Connect | SearchUsers | API 呼叫 | 
| AWS Glue DataBrew | SendProjectSessionAction | API 呼叫 | 
| AWS Data Pipeline | EvaluateExpression | API 呼叫 | 
| AWS Data Pipeline | QueryObjects | API 呼叫 | 
| AWS Data Pipeline | ValidatePipelineDefinition | API 呼叫 | 
| AWS DataSync | VerifyResourcesExistForTagris | API 呼叫 | 
| AWS DeepLens | BatchGetDevice | API 呼叫 | 
| AWS DeepLens | BatchGetModel | API 呼叫 | 
| AWS DeepLens | BatchGetProject | API 呼叫 | 
| AWS DeepLens | CreateDeviceCertificates | API 呼叫 | 
| AWS DeepRacer | AdminGetAccountConfig | API 呼叫 | 
| AWS DeepRacer | AdminListAssociatedUsers | API 呼叫 | 
| AWS DeepRacer | TestRewardFunction | API 呼叫 | 
| AWS DeepRacer | VerifyResourcesExistForTagris | API 呼叫 | 
| Amazon Detective | BatchGetGraphMemberDatasources | API 呼叫 | 
| Amazon Detective | BatchGetMembershipDatasources | API 呼叫 | 
| Amazon Detective | SearchGraph | API 呼叫 | 
| Amazon DevOps Guru | SearchInsights | API 呼叫 | 
| Amazon DevOps Guru | SearchOrganizationInsights | API 呼叫 | 
| AWS Database Migration Service | BatchStartRecommendations | API 呼叫 | 
| AWS Database Migration Service | ModifyRecommendation | API 呼叫 | 
| AWS Database Migration Service | StartRecommendations | API 呼叫 | 
| AWS Database Migration Service | VerifyResourcesExistForTagris | API 呼叫 | 
| AWS Directory Service | VerifyTrust | API 呼叫 | 
| Amazon Elastic Compute Cloud | ConfirmProductInstance | API 呼叫 | 
| Amazon Elastic Compute Cloud | ReportInstanceStatus | API 呼叫 | 
| Amazon Elastic Container Registry | BatchCheckLayerAvailability | API 呼叫 | 
| Amazon Elastic Container Registry | BatchGetImage | API 呼叫 | 
| Amazon Elastic Container Registry | BatchGetImageReferrer | API 呼叫 | 
| Amazon Elastic Container Registry | BatchGetRepositoryScanningConfiguration | API 呼叫 | 
| Amazon Elastic Container Registry | DryRunEvent | 服務事件 | 
| Amazon Elastic Container Registry | PolicyExecutionEvent | 服務事件 | 
| Amazon Elastic Container Registry Public | BatchCheckLayerAvailability | API 呼叫 | 
| Amazon Elastic Container Service | DiscoverPollEndpoint | API 呼叫 | 
| Amazon Elastic Container Service | FindSubfleetRoute | API 呼叫 | 
| Amazon Elastic Container Service | ValidateResources | API 呼叫 | 
| Amazon Elastic Container Service | VerifyTaskSetsExist | API 呼叫 | 
| Amazon Elastic Kubernetes Service | AccessKubernetesApi | API 呼叫 | 
| AWS Elastic Beanstalk | CheckDNSAvailability | API 呼叫 | 
| AWS Elastic Beanstalk | RequestEnvironmentInfo | API 呼叫 | 
| AWS Elastic Beanstalk | RetrieveEnvironmentInfo | API 呼叫 | 
| AWS Elastic Beanstalk | ValidateConfigurationSettings | API 呼叫 | 
| Amazon Elastic File System | NewClientConnection | 服務事件 | 
| Amazon Elastic File System | UpdateClientConnection | 服務事件 | 
| Amazon Elastic Transcoder | ReadJob | API 呼叫 | 
| Amazon Elastic Transcoder | ReadPipeline | API 呼叫 | 
| Amazon Elastic Transcoder | ReadPreset | API 呼叫 | 
| Amazon EventBridge | TestEventPattern | API 呼叫 | 
| Amazon EventBridge | TestScheduleExpression | API 呼叫 | 
| Amazon FinSpace API | BatchListCatalogNodesByDataset | API 呼叫 | 
| Amazon FinSpace API | BatchListNodesByDataset | API 呼叫 | 
| Amazon FinSpace API | BatchValidateAccess | API 呼叫 | 
| Amazon FinSpace API | CreateAuditRecordsQuery | API 呼叫 | 
| Amazon FinSpace API | SearchDatasets | API 呼叫 | 
| Amazon FinSpace API | SearchDatasetsV | API 呼叫 | 
| Amazon FinSpace API | ValidateIdToken | API 呼叫 | 
| AWS Firewall Manager | DisassociateAdminAccount | API 呼叫 | 
| Amazon Forecast | InvokeForecastEndpoint | API 呼叫 | 
| Amazon Forecast | QueryFeature | API 呼叫 | 
| Amazon Forecast | QueryForecast | API 呼叫 | 
| Amazon Forecast | QueryWhatIfForecast | API 呼叫 | 
| Amazon Forecast | VerifyResourcesExistForTagris | API 呼叫 | 
| Amazon Fraud Detector | BatchGetVariable | API 呼叫 | 
| Amazon Fraud Detector | VerifyResourcesExistForTagris | API 呼叫 | 
| FreeRTOS | VerifyEmailAddress | API 呼叫 | 
| Amazon GameLift Servers | RequestUploadCredentials | API 呼叫 | 
| Amazon GameLift Servers | ResolveAlias | API 呼叫 | 
| Amazon GameLift Servers | SearchGameSessions | API 呼叫 | 
| Amazon GameLift Servers | ValidateMatchmakingRuleSet | API 呼叫 | 
| Amazon GameSparks | ExportSnapshot | API 呼叫 | 
| Amazon Location Service | BatchGetDevicePosition | API 呼叫 | 
| Amazon Location Service | CalculateRoute | API 呼叫 | 
| Amazon Location Service | CalculateRouteMatrix | API 呼叫 | 
| Amazon Location Service | SearchPlaceIndexForPosition | API 呼叫 | 
| Amazon Location Service | SearchPlaceIndexForSuggestions | API 呼叫 | 
| Amazon Location Service | SearchPlaceIndexForText | API 呼叫 | 
| Amazon Glacier | InitiateJob | API 呼叫 | 
| AWS Glue | BatchGetBlueprints | API 呼叫 | 
| AWS Glue | BatchGetColumnStatisticsForTable | API 呼叫 | 
| AWS Glue | BatchGetCrawlers | API 呼叫 | 
| AWS Glue | BatchGetCustomEntityTypes | API 呼叫 | 
| AWS Glue | BatchGetDataQualityResult | API 呼叫 | 
| AWS Glue | BatchGetDevEndpoints | API 呼叫 | 
| AWS Glue | BatchGetJobs | API 呼叫 | 
| AWS Glue | BatchGetMLTransform | API 呼叫 | 
| AWS Glue | BatchGetPartition | API 呼叫 | 
| AWS Glue | BatchGetTriggers | API 呼叫 | 
| AWS Glue | BatchGetWorkflows | API 呼叫 | 
| AWS Glue | QueryJobRuns | API 呼叫 | 
| AWS Glue | QueryJobRunsAggregated | API 呼叫 | 
| AWS Glue | QueryJobs | API 呼叫 | 
| AWS Glue | QuerySchemaVersionMetadata | API 呼叫 | 
| AWS Glue | SearchTables | API 呼叫 | 
| AWS HealthLake | ReadResource | API 呼叫 | 
| AWS HealthLake | SearchWithGet | API 呼叫 | 
| AWS HealthLake | SearchWithPost | API 呼叫 | 
| AWS Identity and Access Management | GenerateCredentialReport | API 呼叫 | 
| AWS Identity and Access Management | GenerateOrganizationsAccessReport | API 呼叫 | 
| AWS Identity and Access Management | GenerateServiceLastAccessedDetails | API 呼叫 | 
| AWS Identity and Access Management | SimulateCustomPolicy | API 呼叫 | 
| AWS Identity and Access Management | SimulatePrincipalPolicy | API 呼叫 | 
| AWS 身分存放區 | IsMemberInGroups | API 呼叫 | 
| AWS 身分存放區驗證 | BatchGetSession | API 呼叫 | 
| Amazon Inspector Classic | PreviewAgents | API 呼叫 | 
| Amazon Inspector Classic | BatchGetAccountStatus | API 呼叫 | 
| Amazon Inspector Classic | BatchGetFreeTrialInfo | API 呼叫 | 
| Amazon Inspector Classic | BatchGetMember | API 呼叫 | 
| AWS Invoicing | ValidateDocumentDeliveryS3LocationInfo | API 呼叫 | 
| AWS IoT | SearchIndex | API 呼叫 | 
| AWS IoT | TestAuthorization | API 呼叫 | 
| AWS IoT | TestInvokeAuthorizer | API 呼叫 | 
| AWS IoT | ValidateSecurityProfileBehaviors | API 呼叫 | 
| AWS IoT Analytics | SampleChannelData | API 呼叫 | 
| AWS IoT SiteWise | GatewaysVerifyResourcesExistForTagrisInternal | API 呼叫 | 
| AWS IoT Things Graph | SearchEntities | API 呼叫 | 
| AWS IoT Things Graph | SearchFlowExecutions | API 呼叫 | 
| AWS IoT Things Graph | SearchFlowTemplates | API 呼叫 | 
| AWS IoT Things Graph | SearchSystemInstances | API 呼叫 | 
| AWS IoT Things Graph | SearchSystemTemplates | API 呼叫 | 
| AWS IoT Things Graph | SearchThings | API 呼叫 | 
| AWS IoT TwinMaker | ExecuteQuery | API 呼叫 | 
| AWS IoT Wireless | CreateNetworkAnalyzerConfiguration | API 呼叫 | 
| AWS IoT Wireless | DeleteNetworkAnalyzerConfiguration | API 呼叫 | 
| AWS IoT Wireless | DeregisterWirelessDevice | API 呼叫 | 
| Amazon Interactive Video Service | BatchGetChannel | API 呼叫 | 
| Amazon Interactive Video Service | BatchGetStreamKey | API 呼叫 | 
| Amazon Kendra | BatchGetDocumentStatus | API 呼叫 | 
| Amazon Kendra | Query | API 呼叫 | 
| Amazon Managed Service for Apache Flink | DiscoverInputSchema | API 呼叫 | 
| AWS Key Management Service | 解密 | API 呼叫 | 
| AWS Key Management Service | 加密 | API 呼叫 | 
| AWS Key Management Service | GenerateDataKey | API 呼叫 | 
| AWS Key Management Service | GenerateDataKeyPair | API 呼叫 | 
| AWS Key Management Service | GenerateDataKeyPairWithoutPlaintext | API 呼叫 | 
| AWS Key Management Service | GenerateDataKeyWithoutPlaintext | API 呼叫 | 
| AWS Key Management Service | GenerateMac | API 呼叫 | 
| AWS Key Management Service | GenerateRandom | API 呼叫 | 
| AWS Key Management Service | ReEncrypt | API 呼叫 | 
| AWS Key Management Service | 符號 | API 呼叫 | 
| AWS Key Management Service | 確認 | API 呼叫 | 
| AWS Key Management Service | VerifyMac | API 呼叫 | 
| AWS Lake Formation | SearchDatabasesByLFTags | API 呼叫 | 
| AWS Lake Formation | SearchTablesByLFTags | API 呼叫 | 
| AWS Lake Formation | StartQueryPlanning | API 呼叫 | 
| Amazon Lex | BatchCreateCustomVocabularyItem | API 呼叫 | 
| Amazon Lex | BatchDeleteCustomVocabularyItem | API 呼叫 | 
| Amazon Lex | BatchUpdateCustomVocabularyItem | API 呼叫 | 
| Amazon Lex | DeleteCustomVocabulary | API 呼叫 | 
| Amazon Lex | SearchAssociatedTranscripts | API 呼叫 | 
| Amazon Lightsail | CreateGUISessionAccessDetails | API 呼叫 | 
| Amazon Lightsail | DownloadDefaultKeyPair | API 呼叫 | 
| Amazon Lightsail | IsVpcPeered | API 呼叫 | 
| Amazon CloudWatch Logs | FilterLogEvents | API 呼叫 | 
| Amazon Macie | BatchGetCustomDataIdentifiers | API 呼叫 | 
| Amazon Macie | UpdateFindingsFilter | API 呼叫 | 
| AWS Elemental MediaConnect | ManagedDescribeFlow | API 呼叫 | 
| AWS Elemental MediaConnect | PrivateDescribeFlowMeta | API 呼叫 | 
| AWS Application Migration Service | OperationalDescribeJobLogItems | API 呼叫 | 
| AWS Application Migration Service | OperationalDescribeJobs | API 呼叫 | 
| AWS Application Migration Service | OperationalDescribeReplicationConfigurationTemplates | API 呼叫 | 
| AWS Application Migration Service | OperationalDescribeSourceServer | API 呼叫 | 
| AWS Application Migration Service | OperationalGetLaunchConfiguration | API 呼叫 | 
| AWS Application Migration Service | OperationalListSourceServers | API 呼叫 | 
| AWS Application Migration Service | VerifyClientRoleForMgn | API 呼叫 | 
| AWS HealthOmics | VerifyResourceExists | API 呼叫 | 
| AWS HealthOmics | VerifyResourcesExistForTagris | API 呼叫 | 
| Amazon Polly | SynthesizeLongSpeech | API 呼叫 | 
| Amazon Polly | SynthesizeSpeech | API 呼叫 | 
| Amazon Polly | SynthesizeSpeechGet | API 呼叫 | 
| AWS 提供受管私有網路的服務 | Ping | API 呼叫 | 
| AWS Proton | DeleteEnvironmentTemplateVersion | API 呼叫 | 
| AWS Proton | DeleteServiceTemplateVersion | API 呼叫 | 
| Amazon QLDB | ShowCatalog | API 呼叫 | 
| Amazon Quick | GenerateEmbedUrlForAnonymousUser | API 呼叫 | 
| Amazon Quick | GenerateEmbedUrlForRegisteredUser | API 呼叫 | 
| Amazon Quick | QueryDatabase | 服務事件 | 
| Amazon Quick | SearchAnalyses | API 呼叫 | 
| Amazon Quick | SearchDashboards | API 呼叫 | 
| Amazon Quick | SearchDataSets | API 呼叫 | 
| Amazon Quick | SearchDataSources | API 呼叫 | 
| Amazon Quick | SearchFolders | API 呼叫 | 
| Amazon Quick | SearchGroups | API 呼叫 | 
| Amazon Quick | SearchUsers | API 呼叫 | 
| Amazon Relational Database Service | DownloadCompleteDBLogFile | API 呼叫 | 
| Amazon Relational Database Service | DownloadDBLogFilePortion | API 呼叫 | 
| Amazon Rekognition | CompareFaces | API 呼叫 | 
| Amazon Rekognition | 偵測自訂標籤 | API 呼叫 | 
| Amazon Rekognition | DetectFaces | API 呼叫 | 
| Amazon Rekognition | DetectLabels | API 呼叫 | 
| Amazon Rekognition | DetectModerationLabels | API 呼叫 | 
| Amazon Rekognition | DetectProtectiveEquipment | API 呼叫 | 
| Amazon Rekognition | DetectText | API 呼叫 | 
| Amazon Rekognition | RecognizeCelebrities | API 呼叫 | 
| Amazon Rekognition | SearchFaces | API 呼叫 | 
| Amazon Rekognition | SearchFacesByImage | API 呼叫 | 
| Amazon Rekognition | SearchUsers | API 呼叫 | 
| Amazon Rekognition | SearchUsersByImage | API 呼叫 | 
| AWS 資源總管 | BatchGetView | API 呼叫 | 
| AWS 資源總管 | 搜尋 | API 呼叫 | 
| AWS Resource Groups | SearchResources | API 呼叫 | 
| AWS Resource Groups | ValidateResourceSharing | API 呼叫 | 
| AWS RoboMaker | BatchDescribeSimulationJob | API 呼叫 | 
| Amazon Route 53 | TestDNSAnswer | API 呼叫 | 
| Amazon Route 53 網域 | checkAvailabilities | API 呼叫 | 
| Amazon Route 53 網域 | CheckDomainAvailability | API 呼叫 | 
| Amazon Route 53 網域 | checkDomainTransferability | API 呼叫 | 
| Amazon Route 53 網域 | CheckDomainTransferability | API 呼叫 | 
| Amazon Route 53 網域 | isEmailReachable | API 呼叫 | 
| Amazon Route 53 網域 | searchDomains | API 呼叫 | 
| Amazon Route 53 網域 | sendVerificationMessage | API 呼叫 | 
| Amazon Route 53 網域 | ViewBilling | API 呼叫 | 
| Amazon Route 53 網域 | viewBilling | API 呼叫 | 
| Amazon CloudWatch RUM | BatchGetRumMetricDefinitions | API 呼叫 | 
| Amazon Simple Storage Service | 回應 | API 呼叫 | 
| Amazon Simple Storage Service | GenerateInventory | 服務事件 | 
| Amazon SageMaker AI | BatchDescribeModelPackage | API 呼叫 | 
| Amazon SageMaker AI | DeleteModelCard | API 呼叫 | 
| Amazon SageMaker AI | QueryLineage | API 呼叫 | 
| Amazon SageMaker AI | RenderUiTemplate | API 呼叫 | 
| Amazon SageMaker AI | 搜尋 | API 呼叫 | 
| Amazon EventBridge 結構描述 | ExportSchema | API 呼叫 | 
| Amazon EventBridge 結構描述 | SearchSchemas | API 呼叫 | 
| Amazon SimpleDB | DomainMetadata | API 呼叫 | 
| AWS Secrets Manager | ValidateResourcePolicy | API 呼叫 | 
| AWS Service Catalog | ScanProvisionedProducts | API 呼叫 | 
| AWS Service Catalog | SearchProducts | API 呼叫 | 
| AWS Service Catalog | SearchProductsAsAdmin | API 呼叫 | 
| AWS Service Catalog | SearchProvisionedProducts | API 呼叫 | 
| Amazon SES | BatchGetMetricData | API 呼叫 | 
| Amazon SES | TestRenderEmailTemplate | API 呼叫 | 
| Amazon SES | TestRenderTemplate | API 呼叫 | 
| Amazon Simple Notification Service | CheckIfPhoneNumberIsOptedOut | API 呼叫 | 
| AWS SQL Workbench | BatchGetNotebookCell | API 呼叫 | 
| AWS SQL Workbench | ExportNotebook | API 呼叫 | 
| Amazon EC2 Systems Manager | ExecuteApi | API 呼叫 | 
| AWS Systems Manager Incident Manager | DeleteContactChannel | API 呼叫 | 
| AWS IAM Identity Center | IsMemberInGroup | API 呼叫 | 
| AWS IAM Identity Center | SearchGroups | API 呼叫 | 
| AWS IAM Identity Center | SearchUsers | API 呼叫 | 
| AWS STS | AssumeRole | API 呼叫 | 
| AWS STS | AssumeRoleWithSAML | API 呼叫 | 
| AWS STS | AssumeRoleWithWebIdentity | API 呼叫 | 
| AWS STS | DecodeAuthorizationMessage | API 呼叫 | 
| AWS 稅務設定 | atchGetTaxExemptions | API 呼叫 | 
| AWS WAFV2 | CheckCapacity | API 呼叫 | 
| AWS WAFV2 | GenerateMobileSdkReleaseUrl | API 呼叫 | 
| AWS Well-Architected Tool | ExportLens | API 呼叫 | 
| AWS Well-Architected Tool | TagResource | API 呼叫 | 
| AWS Well-Architected Tool | UntagResource | API 呼叫 | 
| AWS Well-Architected Tool | UpdateGlobalSettings | API 呼叫 | 
| Amazon Connect Wisdom | QueryAssistant | API 呼叫 | 
| Amazon Connect Wisdom | SearchContent | API 呼叫 | 
| Amazon Connect Wisdom | SearchSessions | API 呼叫 | 
| Amazon WorkDocs | AbortDocumentVersionUpload | API 呼叫 | 
| Amazon WorkDocs | AddUsersToGroup | API 呼叫 | 
| Amazon WorkDocs | BatchGetUsers | API 呼叫 | 
| Amazon WorkDocs | CheckAlias | API 呼叫 | 
| Amazon WorkDocs | CompleteDocumentVersionUpload | API 呼叫 | 
| Amazon WorkDocs | CreateAnnotation | API 呼叫 | 
| Amazon WorkDocs | CreateComment | API 呼叫 | 
| Amazon WorkDocs | CreateFeedbackRequest | API 呼叫 | 
| Amazon WorkDocs | CreateFolder | API 呼叫 | 
| Amazon WorkDocs | CreateGroup | API 呼叫 | 
| Amazon WorkDocs | CreateShare | API 呼叫 | 
| Amazon WorkDocs | CreateUser | API 呼叫 | 
| Amazon WorkDocs | DeleteAnnotation | API 呼叫 | 
| Amazon WorkDocs | DeleteComment | API 呼叫 | 
| Amazon WorkDocs | DeleteDocument | API 呼叫 | 
| Amazon WorkDocs | DeleteFeedbackRequest | API 呼叫 | 
| Amazon WorkDocs | DeleteFolder | API 呼叫 | 
| Amazon WorkDocs | DeleteFolderContents | API 呼叫 | 
| Amazon WorkDocs | DeleteGroup | API 呼叫 | 
| Amazon WorkDocs | DeleteOrganizationShare | API 呼叫 | 
| Amazon WorkDocs | DeleteUser | API 呼叫 | 
| Amazon WorkDocs | DownloadDocumentVersion | API 呼叫 | 
| Amazon WorkDocs | DownloadDocumentVersionUnderlays | API 呼叫 | 
| Amazon WorkDocs | InitiateDocumentVersionUpload | API 呼叫 | 
| Amazon WorkDocs | LogoutUser | API 呼叫 | 
| Amazon WorkDocs | PaginatedOrganizationActivity | API 呼叫 | 
| Amazon WorkDocs | PublishAnnotations | API 呼叫 | 
| Amazon WorkDocs | PublishComments | API 呼叫 | 
| Amazon WorkDocs | RestoreDocument | API 呼叫 | 
| Amazon WorkDocs | RestoreFolder | API 呼叫 | 
| Amazon WorkDocs | SearchGroups | API 呼叫 | 
| Amazon WorkDocs | SearchOrganizationUsers | API 呼叫 | 
| Amazon WorkDocs | TransferUserResources | API 呼叫 | 
| Amazon WorkDocs | UpdateAnnotation | API 呼叫 | 
| Amazon WorkDocs | UpdateComment | API 呼叫 | 
| Amazon WorkDocs | UpdateDocument | API 呼叫 | 
| Amazon WorkDocs | UpdateDocumentVersion | API 呼叫 | 
| Amazon WorkDocs | UpdateFolder | API 呼叫 | 
| Amazon WorkDocs | UpdateGroup | API 呼叫 | 
| Amazon WorkDocs | UpdateOrganization | API 呼叫 | 
| Amazon WorkDocs | UpdateUser | API 呼叫 | 
| Amazon WorkMail | AssumeImpersonationRole | API 呼叫 | 
| Amazon WorkMail | QueryDnsRecords | API 呼叫 | 
| Amazon WorkMail | SearchMembers | API 呼叫 | 
| Amazon WorkMail | TestAvailabilityConfiguration | API 呼叫 | 
| Amazon WorkMail | TestInboundMailFlowRules | API 呼叫 | 
| Amazon WorkMail | TestOutboundMailFlowRules | API 呼叫 | 

# Amazon EventBridge 事件詳細資訊參考
<a name="event-reference"></a>

EventBridge 本身會發出下列事件。這些事件會自動傳送至預設事件匯流排，就像任何其他 AWS 服務一樣。

如需所有事件中包含的中繼資料欄位定義，請參閱 [AWS 事件參考中的服務事件中繼資料](https://docs.aws.amazon.com/eventbridge/latest/ref/events-structure.html)。 **


| 事件詳細資訊類型 | Description | 
| --- | --- | 
|   [排程事件](#event-detail-scheduled-event)   |  代表排程的事件。 | 
|   [已建立結構描述](#event-detail-schema-created)   |  代表建立新事件結構描述。 | 
|   [已建立結構描述版本](#event-detail-schema-version-created)   |  代表建立新版本的新或現有事件結構描述。  | 
|   [連線狀態事件](#event-detail-connection-state)   |  代表連線狀態的變更。  | 
|   [API 目的地狀態事件](#event-detail-api-destination-state)   |  代表 API 目的地狀態的變更。  | 

## 排程事件
<a name="event-reference-schedules"></a>

EventBridge 會將下列排程事件傳送至預設事件匯流排。如需詳細資訊，請參閱[排程器](using-eventbridge-scheduler.md)。

### 排程事件
<a name="event-detail-scheduled-event"></a>

代表排程的事件。

包含 `source`和 `detail-type` 欄位，因為它們包含 EventBridge 事件的特定值。如需所有事件中包含的其他中繼資料欄位的定義，請參閱 [AWS 事件參考中的服務事件中繼資料](https://docs.aws.amazon.com/eventbridge/latest/ref/events-structure.html)。 **

```
{
  . . .,
  "detail-type": "Scheduled Event",
  "source": "aws.events",
  . . .,
  "detail": {}
}
```

`detail-type`  <a name="scheduled-event-detail-type"></a>
識別事件的類型。  
對於此事件，此值為 `Scheduled Event`。  
必要：是

`source`  <a name="scheduled-event-source"></a>
識別產生事件的服務。對於 EventBridge 事件，此值為 `aws.events`。  
必要：是

`detail`  <a name="scheduled-event-detail"></a>
包含事件相關資訊的 JSON 物件。產生事件的服務會決定此欄位的內容。  
必要：是  
此物件中沒有`Scheduled Event`事件的必要欄位。

**Example 排程事件範例**  <a name="event-detail-scheduled-event.example"></a>

```
{
  "version": "0",
  "id": "89d1a02d-5ec7-412e-82f5-13505f849b41",
  "detail-type": "Scheduled Event",
  "source": "aws.events",
  "account": "123456789012",
  "time": "2016-12-30T18:44:49Z",
  "region": "us-east-1",
  "resources": ["arn:aws:events:us-east-1:123456789012:rule/SampleRule"],
  "detail": {}
}
```

## 結構描述登錄檔事件
<a name="event-reference-schemas"></a>

EventBridge 會將下列結構描述登錄事件傳送至預設事件匯流排。如需詳細資訊，請參閱[](eb-schema.md)。

### 已建立結構描述
<a name="event-detail-schema-created"></a>

代表建立新結構描述。

建立結構描述時， 會同時 EventBridge 傳送 `Schema Created`和 `Schema Version Created`事件。

包含 `source`和 `detail-type` 欄位，因為它們包含 EventBridge 事件的特定值。如需所有事件中包含的其他中繼資料欄位的定義，請參閱 [AWS 事件參考中的服務事件中繼資料](https://docs.aws.amazon.com/eventbridge/latest/ref/events-structure.html)。 **

```
{
  . . .,
  "detail-type": "Schema Created",
  "source": "aws.schemas",
  . . .,
  "detail": {
    "SchemaName" : "String",
    "SchemaType" : "String",
    "RegistryName" : "String",
    "CreationDate" : "DateTime",
    "Version" : "Number"
  }
}
```

`detail-type`  <a name="schema-created-detail-type"></a>
識別事件的類型。  
對於此事件，此值為 `Schema Created`。  
必要：是

`source`  <a name="schema-created-source"></a>
識別產生事件的服務。對於 EventBridge 事件，此值為 `aws.schemas`。  
必要：是

`detail`  <a name="schema-created-detail"></a>
包含事件相關資訊的 JSON 物件。產生事件的服務會決定此欄位的內容。  
必要：是  
對於此事件，此資料包含：    
`SchemaName`  <a name="schema-created-schema-name"></a>
結構描述的名稱。  
必要：是  
`SchemaType`  <a name="schema-created-schema-type"></a>
結構描述的類型。  
有效值：`OpenApi3` \$1 `JSONSchemaDraft4`  
必要：是  
`RegistryName`  <a name="schema-created-registry-name"></a>
包含結構描述的登錄檔的名稱。  
必要：是  
`CreationDate`  <a name="schema-created-creation-date"></a>
建立結構描述的日期。  
必要：是  
`Version`  <a name="schema-created-version"></a>
此結構描述的版本。  
對於 `Schema Created` 事件，此值一律為 `1`。  
必要：是

**Example 已建立的結構描述事件範例**  <a name="event-detail-schema-created.example"></a>

```
{
  "version": "0",
  "id": "01234567-0123-0123-0123-012345678901",
  "detail-type": "Schema Created",
  "source": "aws.schemas",
  "account": "123456789012",
  "time": "2019-05-31T21:49:54Z",
  "region": "us-east-1",
  "resources": ["arn:aws:schemas:us-east-1::schema/myRegistry/mySchema"],
  "detail": {
    "SchemaName": "mySchema",
    "SchemaType": "OpenApi3",
    "RegistryName": "myRegistry",
    "CreationDate": "2019-11-29T20:08:55Z",
    "Version": "1"
  }
}
```

### 已建立結構描述版本
<a name="event-detail-schema-version-created"></a>

代表建立新版本的新或現有事件結構描述。

建立結構描述時， 會同時 EventBridge 傳送 `Schema Created`和 `Schema Version Created`事件。

包含 `source`和 `detail-type` 欄位，因為它們包含 EventBridge 事件的特定值。如需所有事件中包含的其他中繼資料欄位的定義，請參閱 [AWS 事件參考中的服務事件中繼資料](https://docs.aws.amazon.com/eventbridge/latest/ref/events-structure.html)。 **

```
{
  . . .,
  "detail-type": "Schema Version Created",
  "source": "aws.schemas",
  . . .,
  "detail": {
    "SchemaName" : "String",
    "SchemaType" : "String",
    "RegistryName" : "String",
    "CreationDate" : "DateTime",
    "Version" : "Number"
  }
}
```

`detail-type`  <a name="schema-version-created-detail-type"></a>
識別事件的類型。  
對於此事件，此值為 `Schema Version Created`。  
必要：是

`source`  <a name="schema-version-created-source"></a>
識別產生事件的服務。對於 EventBridge 事件，此值為 `aws.schemas`。  
必要：是

`detail`  <a name="schema-version-created-detail"></a>
包含事件相關資訊的 JSON 物件。產生事件的服務會決定此欄位的內容。  
必要：是  
對於此事件，此資料包含：    
`SchemaName`  <a name="schema-version-created-schema-name"></a>
結構描述的名稱。  
必要：是  
`SchemaType`  <a name="schema-version-created-schema-type"></a>
結構描述的類型。  
有效值：`OpenApi3` \$1 `JSONSchemaDraft4`  
必要：是  
`RegistryName`  <a name="schema-version-created-registry-name"></a>
包含結構描述的登錄檔的名稱。  
必要：是  
`CreationDate`  <a name="schema-version-created-creation-date"></a>
建立結構描述版本的日期。  
必要：是  
`Version`  <a name="schema-version-created-version"></a>
此結構描述的版本。  
必要：是

**Example 已建立的結構描述版本事件範例**  <a name="event-detail-schema-version-created.example"></a>

```
{
  "version": "0",
  "id": "01234567-0123-0123-0123-012345678901",
  "detail-type": "Schema Version Created",
  "source": "aws.schemas",
  "account": "123456789012",
  "time": "2019-05-31T21:49:54Z",
  "region": "us-east-1",
  "resources": ["arn:aws:schemas:us-east-1::schema/myRegistry/mySchema"],
  "detail": {
    "SchemaName": "mySchema",
    "SchemaType": "OpenApi3",
    "RegistryName": "myRegistry",
    "CreationDate": "2019-11-29T20:08:55Z",
    "Version": "5"
  }
}
```

## 連線事件
<a name="event-reference-connections"></a>

EventBridge 會將下列連線事件傳送至預設事件匯流排。如需詳細資訊，請參閱[連線](eb-target-connection.md)。

### 連線狀態事件
<a name="event-detail-connection-state"></a>

這些事件各自代表新連線或現有連線的狀態變更。

包含 `source`和 `detail-type` 欄位，因為它們包含 EventBridge 事件的特定值。如需所有事件中包含的其他中繼資料欄位的定義，請參閱 [AWS 事件參考中的服務事件中繼資料](https://docs.aws.amazon.com/eventbridge/latest/ref/events-structure.html)。 **

```
{
  . . .,
  "detail-type": "Connection status",
  "source": "aws.events",
  . . .,
  "detail": {
    "ConnectionName" : "String",
    "StateReason" : "String",
    "Timestamp" : "DateTime"
  }
}
```

`detail-type`  <a name="connection-state-detail-type"></a>
識別事件的類型。  
對於此事件，此值為下列其中一項：  
+ `Connection Creation Started`
+ `Connection Update Started`
+ `Connection Deletion Started`
+ `Connection Activated`
+ `Connection Authorized`
+ `Connection Authorization Started`
+ `Connection Deauthorization Started`
+ `Connection Deauthorized`
+ `Connection Failed Connectivity`
必要：是

`source`  <a name="connection-state-source"></a>
識別產生事件的服務。對於 EventBridge 事件，此值為 `aws.events`。  
必要：是

`detail`  <a name="connection-state-detail"></a>
包含事件相關資訊的 JSON 物件。產生事件的服務會決定此欄位的內容。  
必要：是  
對於此事件，此資料包含：    
`ConnectionName`  <a name="connection-state-connection-name"></a>
連線的名稱。  
必要：是  
`StateReason`  <a name="connection-state-state-reason"></a>
連線狀態變更的原因。  
必要：否  
`Timestamp`  <a name="connection-state-timestamp"></a>
連線狀態變更的時間和日期。  
必要：是

**Example 連線狀態事件範例**  <a name="event-detail-connection-state.example"></a>

```
{
    "version": "0",
    "id": "1d7a4ac6-a50a-745f-a331-a0d802f7badb",
    "detail-type": "Connection Creation Started",
    "source": "aws.events",
    "account": "123456789012",
    "time": "2024-10-28T09:08:20Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:events:us-east-1:123456789012:connection/sample-connection/ee7e4d52-8df0-4bed-a0d5-fa7dea43fcf8"
    ],
    "detail": {
        "ConnectionName": "sample-connection",
        "Timestamp": "2024-10-24 09:26:35 +0000 UTC"
    }
}
```

## API 目的地事件
<a name="event-reference-api-destinations"></a>

EventBridge 會將下列 API 目的地事件傳送至預設事件匯流排。如需詳細資訊，請參閱[API 目的地](eb-api-destinations.md)。

### API 目的地狀態事件
<a name="event-detail-api-destination-state"></a>

這些事件各自代表 API 目的地的狀態變更。

包含 `source`和 `detail-type` 欄位，因為它們包含 EventBridge 事件的特定值。如需所有事件中包含的其他中繼資料欄位的定義，請參閱 [AWS 事件參考中的服務事件中繼資料](https://docs.aws.amazon.com/eventbridge/latest/ref/events-structure.html)。 **

```
{
  . . .,
  "detail-type": "API Destination status",
  "source": "aws.events",
  . . .,
  "detail": {
    "ApiDestinationName" : "String",
    "Timestamp" : "DateTime"
  }
}
```

`detail-type`  <a name="api-destination-state-detail-type"></a>
識別事件的類型。  
對於此事件，此值為下列其中一項：  
+ `API Destination Activated`
+ `API Destination Deactivated`
必要：是

`source`  <a name="api-destination-state-source"></a>
識別產生事件的服務。對於 EventBridge 事件，此值為 `aws.events`。  
必要：是

`detail`  <a name="api-destination-state-detail"></a>
包含事件相關資訊的 JSON 物件。產生事件的服務會決定此欄位的內容。  
必要：是  
對於此事件，此資料包含：    
`ApiDestinationName`  <a name="api-destination-state-connection-name"></a>
API 目的地的名稱。  
必要：是  
`Timestamp`  <a name="api-destination-state-timestamp"></a>
API 目的地狀態變更的時間和日期。  
必要：是

**Example API 目的地狀態事件範例**  <a name="event-detail-api-destination-state.example"></a>

```
{
    "version": "0",
    "id": "1d7a4ac6-a50a-745f-a331-a0d802f7badb",
    "detail-type": "API Destination Deactivated",
    "source": "aws.events",
    "account": "123456789012",
    "time": "2024-10-28T09:08:20Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:events:us-east-1:123456789012:api-destination/sample-api-destination/ee7e4d52-8df0-4bed-a0d5-fa7dea43fcf8"
    ],
    "detail": {
        "ApiDestinationName": "sample-api-destination",
        "Timestamp": "2024-10-24 09:26:35 +0000 UTC"
    }
}
```

# Amazon EventBridge 中的規則
<a name="eb-rules"></a>

您可以指定 EventBridge 如何處理傳送至每個事件匯流排的事件。若要這樣做，您可以建立 *規則*。規則會指定要傳送至哪些[目標](eb-targets.md)進行處理的事件。單一規則可以將事件傳送至多個目標，然後再平行執行。

您可以建立兩種類型的規則：事件交付時與事件資料相符的規則，以及依定義的排程執行的規則。此外，某些 AWS 服務也可能會在您的帳戶中建立和管理規則。

## 符合事件資料的規則
<a name="eb-rules-match"></a>

您可以根據事件資料條件 （稱為*事件模式*)，建立符合傳入事件的規則。事件模式定義事件結構和規則比對的欄位。如果事件符合事件模式中定義的條件， EventBridge 會將事件傳送到您指定的目標 (s)。

如需詳細資訊，請參閱[在 Amazon EventBridge 中建立規則](eb-create-rule-visual.md)。

## 依排程執行的規則
<a name="eb-rules-scheduled"></a>

**注意**  
排程規則是 EventBridge 的舊版功能。  
EventBridge 提供更靈活且強大的方法來集中大規模建立、執行和管理排程任務：EventBridge 排程器。使用 EventBridge 排程器，您可以使用週期性模式的 Cron 和 Rate 表達式來建立排程，或設定一次性調用。您可以設定彈性的交付時段、定義重試次數上限，以及設定失敗的 API 調用的最長保留時間。  
排程器可高度自訂，並透過更廣泛的目標 API 操作 AWS 和服務，提供比排程規則更高的可擴展性。我們建議您使用 Scheduler 來排程叫用目標。  
如需詳細資訊，請參閱 [建立排程](using-eventbridge-scheduler.md#using-eventbridge-scheduler-create)或 *[EventBridge 排程器使用者指南](https://docs.aws.amazon.com/scheduler/latest/UserGuide/what-is-scheduler.html)*。

您也可以建立規則，以指定的間隔將事件傳送至指定的目標。例如，若要定期執行 Lambda 函數，您可以建立規則以排程執行。

如需詳細資訊，請參閱[在 Amazon EventBridge 中建立排程規則 （舊版）](eb-create-rule-schedule.md)。

## 由 AWS 服務管理的規則
<a name="eb-rules-managed"></a>

除了您建立的規則之外， AWS 服務還可以在 AWS 帳戶中建立和管理這些服務中特定函數所需的 EventBridge 規則。這些稱為*受管規則*。

當服務建立受管規則時，也可以建立[IAM 政策](eb-iam.md)，授予該服務建立規則的許可。以此方式建立的 IAM 政策會以資源層級許可來限縮範圍，而只允許建立必要的規則。

您可以使用**強制刪除**選項刪除受管規則，但只有在確定其他服務不再需要該規則時，才應刪除這些規則。否則，刪除受管規則會導致倚賴此規則的功能停止運作。

# 在 Amazon EventBridge 中建立規則
<a name="eb-create-rule-visual"></a>

## 先決條件
<a name="eb-create-rule-prerequisites"></a>

開始前，請確保您具備以下條件：
+ 存取 Amazon EventBridge 主控台
+ 建立 EventBridge 規則的適當 IAM 許可
+ 對事件驅動型架構的基本了解

## 概觀
<a name="eb-create-rule-overview"></a>

若要對 EventBridge 收到的事件採取動作，您可以建立規則。當事件符合您規則中定義的事件模式時，EventBridge 會將事件傳送至指定的目標。

本主題會逐步引導您建立規則，讓 EventBridge 用來比對傳送至指定事件匯流排的事件。

建立 EventBridge 規則包含四個主要步驟：

1. 選擇您要處理的事件

1. 設定事件篩選和測試

1. 選取並設定目標

1. 設定規則設定

## 選擇事件
<a name="eb-create-rule-source"></a>

首先，選擇您要傳送至目標的事件。

**若要選取事件**

1. 前往 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 在導覽窗格中，選擇**規則**，然後選擇**建立規則**。

1. 在**事件**索引標籤中，尋找您要傳送至目標的事件：

   1. 選擇**AWS 服務事件**或**自訂事件**。

   1. 使用搜尋方塊或瀏覽事件清單來尋找您要傳送至目標的事件。

   1. 將一或多個事件拖曳至**建置**畫布，並將其放入**觸發事件**。

   EventBridge 會顯示**觸發事件**區段。本節包括：
   + **事件**，列出您選擇的事件。
   + **結構描述**，如果可用，會顯示所選事件的結構描述。

     **結構描述**包含三個標籤：
     + **樹狀**結構：事件結構描述的樹狀檢視。
     + **程式碼**：Open API 規格或 JSON 格式的事件結構描述。
     + **資訊**：關於結構描述的概觀資訊。
   + **範例事件**，如果可用，會顯示所選事件的範例。
   + **事件模式 （篩選條件）**，其中包含選取您所選所有事件的事件模式。

## 篩選事件以僅傳送您想要的內容
<a name="eb-create-rule-event-pattern-visual"></a>

您可能不想將特定類型*的所有*事件傳送至目標。您可以讓事件模式更具體，使其只選取包含您感興趣的屬性和值的事件。

### 編輯事件模式 （選用）
<a name="eb-create-rule-event-pattern-steps"></a>

在**觸發事件**窗格中，您可以用兩種方式建置事件模式：
+ 視覺效果，使用**結構描述**樹狀檢視
+ 在**事件模式**窗格中直接編輯 JSON

**使用結構描述樹狀檢視編輯事件模式**

1. 選擇**結構描述**窗格的**樹**狀標籤。

1. 新增和編輯篩選條件以建置事件模式。

   1. 選擇您要新增為事件模式篩選條件之屬性旁的篩選條件圖示。

   1. 從下拉式清單中選擇比較運算子。

      如需比較運算子的詳細資訊，請參閱[建立事件模式](eb-create-pattern-operators.md)。

   1. 輸入您要比對的值。

   1. 按一下核取記號以完成。

   EventBridge 會將您建立的篩選條件新增至**事件模式**窗格中的 JSON。

1. 新增其他篩選條件，直到您已建構符合所有事件屬性的事件模式為止。

### 測試事件模式
<a name="eb-create-rule-event-pattern-test"></a>

在您建構符合您所需所有事件屬性的事件模式之後，請測試 以確保事件模式如預期般執行。

#### 測試事件模式 （選用）
<a name="eb-create-rule-event-pattern-test-steps"></a>

1. 選擇測試的範例事件，或使用您自己的事件。
   + **使用提供的範例事件**

     1. 選擇**使用提供的範例事件**。

     1. 在**範例觸發事件**下，從下拉式清單中選取用於測試的事件。
   + **使用您自己的事件**

     1. 選擇**使用您自己的事件**。

        EventBridge 會顯示具有空白`details`元素的一般事件。

     1. 編輯事件 JSON，以建立您要測試事件模式的事件。
**提示**  
您可以使用提供的範例事件做為起點，以建立要在您的測試中使用的自訂事件：  
選擇**使用提供的範例事件**，從**範例觸發事件**中選擇事件，然後選擇**複製**。
選擇**使用您自己的事件**。
在視窗中選取整個事件，然後將範例事件貼至其中。
視需要編輯事件。

1. 選擇**執行測試**。

   EventBridge 會顯示訊息，指出測試事件是否符合事件模式。

## 選取目標
<a name="eb-create-rule-target-visual"></a>

將一個 （最多五個） 目標拖曳到**建置**畫布，並將其拖放到**目標**上，以接收符合指定事件模式的事件。目標可以包括：
+ 其他 EventBridge 事件匯流排，位於相同或不同的 AWS 帳戶
+ EventBridge API 目的地，包括 SaaS 合作夥伴，例如 Salesforce
+ 各種 AWS 服務資源，例如 Amazon SQS 佇列或 Amazon SNS 主題

**若要選取目標**

1. 從目標****窗格選取目標類型，並將其拖放到建置畫布中的**目標**形狀。

   EventBridge 會根據您選取的**目標**類型，顯示建置中的目標區段，以及適用的組態選項。
**提示**  
如果您已指定多個目標，選取目標形狀會顯示該目標的組態區段。

1. 根據您的目標類型設定目標。如需詳細的組態步驟，請參閱 [EventBridge 目標](eb-targets.md)。

### 自訂傳送至目標的事件資料
<a name="eb-create-rule-target-transform"></a>

如果您選取 EventBridge 事件匯流排或 EventBridge API 目的地以外的目標，您可以選擇自訂實際交付至目標的資料。

#### 轉換或取代傳送的事件資料 （選用）
<a name="eb-create-rule-target-transform-steps"></a>

1. 在建置設計畫布中，選擇**目標**形狀中的**輸入轉換**圖示。

   EventBridge 會顯示**輸入轉換**區段。

1. 在**輸入轉換組態**下，選擇**啟用**。

1. 選取轉換方法，以選擇您要如何自訂傳送至目標的文字，以進行相符事件：
   + **相符事件的一部分**：EventBridge 只會將原始來源事件的指定部分傳送至目標。
   + **常數 (JSON 文字)**：EventBridge 只會將指定的 JSON 文字傳送至目標。不會傳送原始來源事件的任何部分。
   + **輸入轉換器** – 設定輸入轉換器以自訂您希望 EventBridge 傳送至目標的文字。如需詳細資訊，請參閱[轉換目標輸入](eb-transform-target-input.md)。

## 設定規則
<a name="eb-create-rule-configure"></a>

最後，設定和建立規則。

**設定規則 （主控台）**

1. 選擇**設定**。

1. 輸入**名稱**，(選用) 輸入規則**描述**。

   規則不能與相同 AWS 區域 和相同事件匯流排上的另一個規則具有相同的名稱。

1. 針對**事件匯流排**，選擇要與此規則建立關聯的事件匯流排。

   如果您想要此規則匹配來自您的帳戶的事件，請選取 **AWS 預設事件匯流排**。當您帳戶中 AWS 服務 的 傳送事件時，一律會前往您帳戶的預設事件匯流排。

1. 若要在建立規則後立即啟用規則，請在**啟用啟用啟用**下啟用**。**

1. (選用) 為規則輸入一或多個標籤。如需詳細資訊，請參閱[在 Amazon EventBridge 中標記資源](eb-tagging.md)。

1. 選擇**建立**。

## 後續步驟
<a name="eb-create-rule-next-steps"></a>

建立規則之後，您可以：
+ [使用指標監控規則效能](eb-monitoring.md)
+ [使用範例事件測試您的規則](eb-event-pattern-sandbox.md)
+ [視需要修改事件模式](eb-event-patterns.md)
+ [將其他目標新增至現有規則](eb-targets.md)

## 其他資源
<a name="eb-create-rule-additional-resources"></a>

如需 EventBridge 規則的詳細資訊，請參閱：
+ [EventBridge 規則概觀](eb-rules.md)
+ [建立事件模式](eb-event-patterns.md)
+ [EventBridge 目標](eb-targets.md)
+ [故障診斷 EventBridge 規則](eb-troubleshooting.md)

# 建立對 Amazon EventBridge 中的事件做出反應的規則
<a name="eb-create-rule-wizard"></a>

若要對 Amazon EventBridge 收到的事件採取動作，您可以建立[規則](eb-rules.md)。當事件與您規則定義的[事件模式](eb-event-patterns.md)相符時，EventBridge 將事件發送到指定的[目標](eb-targets.md)並觸發規則中定義的動作。

下列步驟將逐步引導您如何建立 EventBridge 用來比對事件傳送至指定事件匯流排的規則。

**Topics**
+ [

## 定義規則
](#eb-create-rule-define)
+ [

## 建置事件模式
](#eb-create-rule-event-pattern)
+ [

## 選取目標
](#eb-create-rule-target)
+ [

## 設定標籤和檢閱規則
](#eb-create-rule-review)

## 定義規則
<a name="eb-create-rule-define"></a>

首先，輸入規則的名稱和說明以定義規則。您還必須定義事件匯流排，您的規則會在其中尋找與事件模式相符的事件。

**若要定義規則詳細資訊**

1. 前往 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 在導覽窗格中，選擇**規則**。

1. 選擇**建立規則**。

1. 輸入**名稱**，(選用) 輸入規則**描述**。

   規則不能與相同 AWS 區域 和相同事件匯流排上的另一個規則具有相同的名稱。

1. 針對**事件匯流排**，選擇要與此規則建立關聯的事件匯流排。如果您想要此規則匹配來自您的帳戶的事件，請選取 **AWS 預設事件匯流排**。當您帳戶中 AWS 服務 的 發出事件時，一律會前往您帳戶的預設事件匯流排。

1. 針對**規則類型**，選擇**具有事件模式的規則**。

1. 選擇**下一步**。

## 建置事件模式
<a name="eb-create-rule-event-pattern"></a>

接下來，建置事件模式。若要這麼做，請指定事件來源、選擇事件模式的基礎，然後定義要比對的屬性和值。您也可以在 JSON 中產生事件模式，並根據範例事件進行測試。

**若要建置事件模式**

1. 在**事件來源**欄位中，選擇 **AWS 事件或 EventBridge 合作夥伴事件**。

1. (選用 ) 在**範例事件**區段中，選擇您要測試事件模式的**範例事件類型**。

   可使用以下範例事件類型：
   + **AWS 事件 **– 從支援的事件中選取 AWS 服務。
   + **EventBridge 合作夥伴事件**：從支援 EventBridge 的第三方服務 (例如 Salesforce) 所發出的事件中選取。
   + **輸入我自己的**：以 JSON 文字輸入您自己的事件。

     您也可以使用 AWS 或 合作夥伴事件做為建立自訂事件的起點。

     1. 選取 **AWS 活動**或 **EventBridge 合作夥伴事件**。

     1. 使用**範例事件**下拉式清單，選取要用作自訂事件起點的事件。

        EventBridge 會顯示範例事件。

     1. 選取**複製**。

     1. 針對**事件類型**選取**輸入我自己的**。

     1. 在 JSON 編輯窗格中刪除範例事件結構，並將 AWS 或 合作夥伴事件貼到位。

     1. 編輯事件 JSON 以建立您自己的範例事件。

1. 選擇**建立方法**。您可以從 EventBridge 結構描述或範本建立事件模式，也可以建立自訂事件模式。

------
#### [ Existing schema ]

   若要使用現有的 EventBridge 結構描述建立事件模式，請執行下列動作：

   1. 在**建立方法**區段中，針對**方法**，選取**使用結構描述**。

   1. 在**事件模式**區段中，針對**結構描述類型**，選取**從結構描述登錄檔選取結構描述**。

   1. 針對**結構描述登錄檔**，選擇下拉式方塊，然後輸入結構描述登錄檔的名稱，例如 `aws.events`。您也可以從出現的下拉式清單中選取選項。

   1. 針對**結構描述**，選擇下拉式方塊，然後輸入要使用的結構描述名稱。例如 `aws.s3@ObjectDeleted`。您也可以從出現的下拉式清單中選取選項。

   1. 在**模型**區段中，選擇任何屬性旁的**編輯**按鈕以開啟其屬性內容。視需要設定**關係**與**值**欄位，然後選擇**設定**以儲存屬性。
**注意**  
如需有關屬性定義的資訊，請選擇屬性名稱旁邊的**資訊**圖示。如需有關如何在事件中設定屬性內容的參考資料，請開啟屬性內容對話方塊的**註記**區段。  
若要刪除屬性的内容，請選擇該屬性的**編輯**按鈕，然後選擇**清除**。

   1. 選擇**在 JSON 中產生事件模式**，以 JSON 文字產生並驗證您的事件模式。

   1. (選用) 若要根據您的測試模式測試範例事件，請選擇**測試模式**。

      EventBridge 會顯示一個訊息方塊，說明您的範例事件是否符合事件模式。

      您也可以選擇以下其中一個選項：
      + **複製**：將事件模式複製到設備的剪貼板。
      + **美化**：透過新增換行符號、定位鍵和空格鍵，讓 JSON 文字更易於閱讀。

------
#### [ Custom schema ]

   若要撰寫自訂結構描述並將其轉換為事件模式，請執行下列動作：

   1. 在**建立方法**區段中，針對**方法**，選擇**使用結構描述**。

   1. 在**事件模式**區段中，針對**結構描述類型**，選擇**輸入結構描述**。

   1. 將結構描述輸入文字方塊。您必須將結構描述格式化為有效的 JSON 文字。

   1. 在**模型**區段中，選擇任何屬性旁的**編輯**按鈕以開啟其屬性內容。視需要設定**關係**與**值**欄位，然後選擇**設定**以儲存屬性。
**注意**  
如需有關屬性定義的資訊，請選擇屬性名稱旁邊的**資訊**圖示。如需有關如何在事件中設定屬性內容的參考資料，請開啟屬性內容對話方塊的**註記**區段。  
若要刪除屬性的内容，請選擇該屬性的**編輯**按鈕，然後選擇**清除**。

   1. 選擇**在 JSON 中產生事件模式**，以 JSON 文字產生並驗證您的事件模式。

   1. (選用) 若要根據您的測試模式測試範例事件，請選擇**測試模式**。

      EventBridge 會顯示一個訊息方塊，說明您的範例事件是否符合事件模式。

      您也可以選擇以下其中一個選項：
      + **複製**：將事件模式複製到設備的剪貼板。
      + **美化**：透過新增換行符號、定位鍵和空格鍵，讓 JSON 文字更易於閱讀。

------
#### [ Event pattern ]

   若要以 JSON 格式撰寫自訂事件模式，請執行下列動作：

   1. 在**建立方法**區段中，針對**方法**，選擇**自訂模式 (JSON 編輯器)**。

   1. 針對**事件模式**，請在 JSON 格式文字中輸入您的自訂事件模式。

   1. (選用) 若要根據您的測試模式測試範例事件，請選擇**測試模式**。

      EventBridge 會顯示一個訊息方塊，說明您的範例事件是否符合事件模式。

      您也可以選擇以下其中一個選項：
      + **複製**：將事件模式複製到設備的剪貼板。
      + **美化**：透過新增換行符號、定位鍵和空格鍵，讓 JSON 文字更易於閱讀。
      + **事件模式表單**：打開模式生成器的事件模式。如果模式無法依原樣在模式產生器中呈現，EventBridge 會在開啟模式產生器之前警告您。

------

1. 選擇**下一步**。

## 選取目標
<a name="eb-create-rule-target"></a>

選擇一或多個目標以接收符合指定模式的事件。目標可以包括 EventBridge 事件匯流排、EventBridge API 目的地，包括 SaaS 合作夥伴 (例如 Salesforce) 或其他 AWS 服務。

**若要選取目標**

1. 針對**目標類型**，請選擇下列其中一個：

------
#### [ Event bus ]

   1. 選取 **EventBridge 事件匯流排**。

   1. 選擇要用作目標的事件匯流排。
      + 若要在與此規則 AWS 區域 相同的 中使用事件匯流排：

        1. 選取**相同帳戶和區域中的事件匯流排**。

        1. 針對**目標的事件匯流排**，選擇下拉式方塊並輸入事件匯流排的名稱。您也可以從下拉式清單中選取事件匯流排。

           如需詳細資訊，請參閱[在相同帳戶中的事件匯流排與 Amazon EventBridge 中的區域之間傳送事件](eb-bus-to-bus.md)。
      + 若要使用不同 AWS 區域 或帳戶中的事件匯流排做為此規則：

        1. 選取**不同帳戶或地區中的事件匯流排**。

        1. 針對**作為目標的事件匯流排**，輸入您要使用的事件匯流排的 ARN。

           如需詳細資訊，請參閱：
           + [在 Amazon EventBridge 中的 AWS 帳戶之間傳送和接收事件](eb-cross-account.md)
           + [在 Amazon EventBridge 中的 AWS 區域之間傳送和接收事件](eb-cross-region.md)

   1. 對於許多目標類型而言，EventBridge 需要許可才能將事件傳送到目標。在這些情況下，EventBridge 可建立執行您的規則所需的 IAM 角色。

      針對**執行角色**，執行下列任何一項：
      + 若要為此規則建立新的執行角色：

        1. 選取**為此特定資源建立新角色**。

        1. 輸入此執行角色的名稱，或使用 EventBridge 產生的名稱。
      + 若要針對此規則使用現有的執行角色：

        1. 選取**使用現有角色**。

        1. 從下拉式清單中輸入或選取要使用的執行角色名稱。

   1. (選用) 在**其他設定**中，指定任何可供您目標類型使用的選擇性設定：

      (選用) 針對**無效字母佇列**，選擇是否使用標準 Amazon SQS 佇列做為無效字母佇列。若與此規則匹配的事件未成功傳送到目標，則 EventBridge 會將其傳送至無效字母佇列。執行以下任意一項：
      + 選擇**無**，即不使用無效字母佇列。
      + 選擇**選取當前 AWS 帳戶中的 Amazon SQS 佇列以用作無效字母佇列**，然後從下拉式清單中選取要使用的佇列。
      + 選擇**選取其他 AWS 帳戶中的 Amazon SQS 佇列做為無效字母佇列**，然後輸入要使用的佇列的 ARN。您必須將以資源為基礎政策連接到佇列，而且該佇列授與 EventBridge 向其傳送簡訊的許可。

        如需詳細資訊，請參閱[將許可授予無效字母佇列](eb-rule-dlq.md#eb-dlq-perms)。

------
#### [ API destination ]

   1. 選取 **EventBridge API 目的地**。

   1. 選擇新的或現有的 API 目的地：
      + 若要使用現有的 API 目的地，請選取**使用現有的 API 目的地**。然後從下拉式清單中選取 API 目標。
      + 若要建立新的 API 目的地，請選取**建立新的 API 目的地**。接下來，為目的地提供以下詳細資訊：
        + **名稱**：輸入目的地名稱。

          名稱在您的 AWS 帳戶內必須是獨一無二的。名稱長度最長可達 64 個字元。有效字元為 **A-Z**、**a-z**、**0-9** 和 ** **** ** **-** (連字號)。
        + (選用) **說明**：請輸入目的地的說明。

          說明最多可有 512 個字元。
        + **API 目標端點**：目標的 URL 端點。

          端點 URL 必須以 **https** 開頭。您可以包含 **\$1** 作為路徑參數萬用字元。您可以從目標的 `HttpParameters` 屬性設置路徑參數。
        + **HTTP 方法**：選取調用端點時使用的 HTTP 方法。
        + (選用) **每秒調用速率限制**：輸入此目的地每秒可接受的調用數目上限。

          該值必須大於零。依預設，此值設為 300。
        + **連線**：選擇使用新的或現有的連線：
          + 若要使用現有的連線，請選取**使用現有連線**，然後從下拉式清單中選取連線。
          + 若要為此目的地建立新連線，請選取**建立新連線**，然後定義連線的**名稱**、**目的地類型**和**授權類型**。您也可以為此連線新增選擇性的**描述**。

   1. 對於許多目標類型而言，EventBridge 需要許可才能將事件傳送到目標。在這些情況下，EventBridge 可建立執行您的規則所需的 IAM 角色。

      針對**執行角色**，執行下列任何一項：
      + 若要為此規則建立新的執行角色：

        1. 選取**為此特定資源建立新角色**。

        1. 輸入此執行角色的名稱，或使用 EventBridge 產生的名稱。
      + 若要針對此規則使用現有的執行角色：

        1. 選取**使用現有角色**。

        1. 從下拉式清單中輸入或選取要使用的執行角色名稱。

   1. (選用) 在**其他設定**中，指定任何可供您目標類型使用的選擇性設定：

      請注意，EventBridge 可能不會顯示指定 AWS 服務的所有下列欄位。

      1. (選用) 對於設定目標輸入，請選擇您要如何自訂傳送至目標的文字以進行相符事件。選擇下列其中一項：
         + **符合的事件**：EventBridge 會將整個原始來源事件傳送至目標。這是預設值。
         + **相符事件的一部分**：EventBridge 只會將原始來源事件的指定部分傳送至目標。

           在**指定相符事件的部分**下，指定定義您希望 EventBridge 傳送至目標之事件部分的 JSON 路徑。
         + **常數 (JSON 文字)**：EventBridge 只會將指定的 JSON 文字傳送至目標。不會傳送原始來源事件的任何部分。

           **在 JSON 中指定常數**下，指定您希望 EventBridge 傳送到目標而非事件的 JSON 文字。
         + **輸入轉換器**：設定輸入轉換器，以自訂您希望 EventBridge 傳送至目標的文字。如需詳細資訊，請參閱[Amazon EventBridge 輸入轉換](eb-transform-target-input.md)。

           1. 選取**設定輸入轉換器**。

           1. 按照中的步驟配置輸入轉換器 [在 EventBridge 中建立規則時設定輸入轉換器](eb-transform-input-rule.md)。

      1. (選用) 在**「重試」政策**下，指定 EventBridge 在發生錯誤後如何重試將事件傳送至目標。
         + **最長事件保留時間**：輸入 EventBridge 保留未處理事件的時間上限 (以小時、分鐘和秒為單位)。預設值為 24 小時。
         + **重試嘗試**：輸入發生錯誤後，EventBridge 應該重試將事件傳送至目標的次數上限。預設值為 185 次。

      1. (選用) 針對**無效字母佇列**，選擇是否使用標準 Amazon SQS 佇列做為無效字母佇列。若與此規則匹配的事件未成功傳送到目標，則 EventBridge 會將其傳送至無效字母佇列。執行以下任意一項：
         + 選擇**無**，即不使用無效字母佇列。
         + 選擇**目前 AWS 帳戶中的選取 Amazon SQS 佇列以用作無效字母佇列**，然後從下拉式清單中選取要使用的佇列。
         + 選擇**選取其他 AWS 帳戶中的 Amazon SQS 佇列做為無效字母佇列**，然後輸入要使用的佇列的 ARN。您必須將以資源為基礎政策連接到佇列，而且該佇列授與 EventBridge 向其傳送簡訊的許可。

           如需詳細資訊，請參閱[將許可授予無效字母佇列](eb-rule-dlq.md#eb-dlq-perms)。

   如需詳細資訊，請參閱[作為 Amazon EventBridge 中目標的 API 目的地](eb-api-destinations.md)。

------
#### [ AWS 服務 ]

   1. 選取 **AWS 服務**。

   1. 針對**選取目標**，請選取 AWS 服務 要用作目標的目標。

   1. 如果您選擇支援跨帳戶目標 AWS 的服務，您可以在與事件匯流排相同的帳戶中選取目標，或選取不同的帳戶。
      + 對於相同帳戶中的目標，針對**目標類型**選取**此帳戶中的目標**。

        1. 提供您所選取服務所要求的資訊。
**注意**  
顯示的欄位會因選擇的服務而異。如需目標的詳細資訊，請參閱 [EventBridge 主控台中可用的事件匯流排目標](eb-targets.md#eb-console-targets)。

        1. 對於許多目標類型而言，EventBridge 需要許可才能將事件傳送到目標。在這些情況下，EventBridge 可建立執行您的規則所需的 IAM 角色。

           針對**執行角色**，執行下列任何一項：
           + 若要為此規則建立新的執行角色：

             1. 選取**為此特定資源建立新角色**。

             1. 輸入此執行角色的名稱，或使用 EventBridge 產生的名稱。
           + 若要針對此規則使用現有的執行角色：

             1. 選取**使用現有角色**。

             1. 從下拉式清單中輸入或選取要使用的執行角色名稱。
      + 對於不同帳戶中的目標，針對**目標類型**選取**另一個帳戶中的目標 AWS **。

        1. 輸入您要傳送事件的目標資源 ARN。

        1. 提供您為所選服務請求的任何其他資訊。

        1. 從下拉式清單中選取要使用的執行角色名稱。

   1. (選用) 在**其他設定**中，指定任何可供您目標類型使用的選擇性設定：

      1. (選用) 對於設定目標輸入，請選擇您要如何自訂傳送至目標的文字以進行相符事件。選擇下列其中一項：
         + **符合的事件**：EventBridge 會將整個原始來源事件傳送至目標。這是預設值。
         + **相符事件的一部分**：EventBridge 只會將原始來源事件的指定部分傳送至目標。

           在**指定相符事件的部分**下，指定定義您希望 EventBridge 傳送至目標之事件部分的 JSON 路徑。
         + **常數 (JSON 文字)**：EventBridge 只會將指定的 JSON 文字傳送至目標。不會傳送原始來源事件的任何部分。

           **在 JSON 中指定常數**下，指定您希望 EventBridge 傳送到目標而非事件的 JSON 文字。
         + **輸入轉換器**：設定輸入轉換器，以自訂您希望 EventBridge 傳送至目標的文字。如需詳細資訊，請參閱[Amazon EventBridge 輸入轉換](eb-transform-target-input.md)。

           1. 選取**設定輸入轉換器**。

           1. 按照中的步驟配置輸入轉換器 [在 EventBridge 中建立規則時設定輸入轉換器](eb-transform-input-rule.md)。

      1. (選用) 在**「重試」政策**下，指定 EventBridge 在發生錯誤後如何重試將事件傳送至目標。
         + **最長事件保留時間**：輸入 EventBridge 保留未處理事件的時間上限 (以小時、分鐘和秒為單位)。預設值為 24 小時。
         + **重試嘗試**：輸入發生錯誤後，EventBridge 應該重試將事件傳送至目標的次數上限。預設值為 185 次。

      1. (選用) 針對**無效字母佇列**，選擇是否使用標準 Amazon SQS 佇列做為無效字母佇列。若與此規則匹配的事件未成功傳送到目標，則 EventBridge 會將其傳送至無效字母佇列。執行以下任意一項：
         + 選擇**無**，即不使用無效字母佇列。
         + 選擇**目前 AWS 帳戶中的選取 Amazon SQS 佇列做為無效字母佇列，**然後從下拉式清單中選取要使用的佇列。
         + 選擇**選取其他 AWS 帳戶中的 Amazon SQS 佇列做為無效字母佇列**，然後輸入要使用的佇列的 ARN。您必須將以資源為基礎政策連接到佇列，而且該佇列授與 EventBridge 向其傳送簡訊的許可。

           如需詳細資訊，請參閱 [將許可授予無效字母佇列](eb-rule-dlq.md#eb-dlq-perms)。

------

1. (選用) 選擇**新增其他目標**，為此規則新增另一個目標。

1. 選擇**下一步**。

## 設定標籤和檢閱規則
<a name="eb-create-rule-review"></a>

最後，為規則輸入任何想要的標籤，然後檢閱並建立規則。

**若要設定標籤，以及檢閱和建立規則**

1. (選用) 為規則輸入一或多個標籤。如需詳細資訊，請參閱 [在 Amazon EventBridge 中標記資源](eb-tagging.md)。

1. 選擇**下一步**。

1. 檢閱新規則的詳細資料。若要對區段進行變更，請為要編輯的區段選擇**編輯**按鈕。

   如果您滿意規則詳細資訊，請選擇**建立規則**。

# 在 Amazon EventBridge 中停用或刪除規則
<a name="eb-delete-rule"></a>

若要停止[規則](eb-rules.md)處理[事件](eb-events.md)或按排程執行，您可以刪除或停用規則。下列步驟將逐步引導您如何刪除或停用 EventBridge 規則。

**刪除或停用規則**

1. 前往 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 在導覽窗格中，選擇**規則**。

   在**事件匯流排**下，選取與規則相關聯的事件匯流排。

1. 執行以下任意一項：

   1. 若要刪除規則，請選取規則旁的按鈕，然後選擇 **Actions (動作)**、**Delete (刪除)**、**Delete (刪除)**。

      如果規則是受管規則，輸入規則的名稱以表示它是受管規則，而且刪除它可能會使建立該規則的服務停止運作。若要繼續，請輸入規則名稱並選擇 **Force delete (強制刪除)**。

   1. 若要暫時停用規則，請選取規則旁的按鈕，然後選擇 **Disable (停用)**、**Disable (停用)**。

      您無法停用受管規則。

# 在 Amazon EventBridge 中定義規則時的最佳實務
<a name="eb-rules-best-practices"></a>

以下是為事件匯流排建立規則時應考量的一些最佳作法。

## 為每個規則設定單一目標
<a name="eb-rules-best-practices-single-target"></a>

雖然您可以為指定規則最多指定五個目標，但是當您為每個規則指定單一目標時，管理規則會比較容易。如果有多個目標需要接收相同的事件集，建議您複製規則以將相同的事件傳遞至不同的目標。這種封裝簡化了規則的維護：如果事件目標的需求隨著時間的推移而發生差異，您可以獨立於其他規則更新每個規則及其事件模式。

## 設定規則許可
<a name="eb-rules-best-practices-permissions"></a>

您可以讓取用事件的應用程式元件或服務控制管理自己的規則。客戶採用的常見架構方法是使用個別 AWS 帳戶隔離這些應用程式元件或服務。若要啟用事件從一個帳戶到另一個帳戶的流程，您必須在一個事件匯流排上建立規則，將事件路由至另一個帳戶中的事件匯流排。您可以讓取用事件的團隊或服務控制管理自己的規則。您可以透過資源策略為其帳號指定適當的權限來執行此操作。這適用於帳戶和區域。

如需詳細資訊，請參閱[Amazon EventBridge 中事件匯流排的許可](eb-event-bus-perms.md)。

如需資源政策的範例，請參閱 GitHub 上的 [Amazon EventBridge 多帳戶設計模式](https://github.com/aws-samples/amazon-eventbridge-resource-policy-samples/tree/main/patterns)。

## 監控規則效能
<a name="eb-rules-best-practices-monitor"></a>

監控您的規則，以確保它們的執行如您所期望：
+ 監視遺失資料點或異常的 `TriggeredRules` 指標，可協助您偵測發布者發生重大變更的差異。如需詳細資訊，請參閱[監控 Amazon EventBridge](eb-monitoring.md)。
+ 針對異常或預期計數上限發出警示，也可協助偵測規則何時符合新事件。當事件發布者，包括 AWS 服務和 SaaS 合作夥伴，在啟用新的使用案例和功能時引入新事件時，可能會發生這種情況。當這些新事件非預期且導致數量高於下游目標的處理速率時，可能會導致事件積壓。

  這種意外事件的處理也可能導致不必要的帳單費用。

  當帳戶超過其每秒 service quota 的彙總目標調用時，也可以觸發規則限流。EventBridge 仍會嘗試傳遞受限流規則相符的事件，並重試最多 24 小時，或如目標自訂重試原則中所述。您可以使用 `ThrottledRules` 量度偵測並警示限流規則
+ 對於低延遲的使用案例，您也可以使用 `IngestionToInvocationStartLatency` 來監控延遲，這會提供事件匯流排健康狀態的指示。任何長時間超過 30 秒的高延遲時間可能表示服務中斷或規則限流。

# 使用 AWS Serverless Application Model 範本部署 Amazon EventBridge 資源
<a name="eb-use-sam"></a>

您可以在 EventBridge 主控台中手動建置和測試[規則](eb-rules.md)，這可在您精簡[事件模式](eb-event-patterns.md)時協助開發程序。不過，您準備好部署應用程式後，即可以更輕鬆地使用架構，例如 [AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html)，以一致地啟動所有無伺服器資源。

我們將使用此[範例應用程式](https://github.com/aws-samples/amazon-eventbridge-producer-consumer-example)來查看您可以使用 AWS SAM 範本來建置 EventBridge 資源的方式。此範例中的 template.yaml 檔案是定義四個[AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)函數的 AWS SAM 範本，並顯示將 Lambda 函數與 EventBridge 整合的兩種不同方式。

如需此範例應用程式的逐步解說，請參閱 [教學課程：建立範例 Amazon EventBridge 應用程式](eb-tutorial-get-started.md)。

 使用 EventBridge 和 AWS SAM 範本的方法有兩種。針對由一個規則調用一個 Lambda 函數的簡單整合，建議使用**組合範本**方法。如果您有複雜的路由邏輯，或您要連線到 AWS SAM 範本外部的資源，則**使用分隔範本**方法是更好的選擇。

**Topics**
+ [

## 組合範本
](#eb-combined-template)
+ [

## 分離範本
](#eb-separated-template)

## 組合範本
<a name="eb-combined-template"></a>

第一種方法會使用 `Events` 屬性來設定 EventBridge 規則。下列範例程式碼會定義調用 Lambda 函數的[事件](eb-events.md)。

**注意**  
此範例會自動在每個 AWS 帳戶中存在的預設[事件匯流排](eb-event-bus.md)上建立規則。若要將規則與自訂事件匯流排建立關聯，您可以將 `EventBusName` 新增至範本。

```
atmConsumerCase3Fn:
  Type: AWS::Serverless::Function
  Properties:
    CodeUri: atmConsumer/
    Handler: handler.case3Handler
    Runtime: nodejs12.x
    Events:
      Trigger:
        Type: CloudWatchEvent 
        Properties:
          Pattern:
            source:
              - custom.myATMapp
            detail-type:
              - transaction                
            detail:
              result:
                - "anything-but": "approved"
```

 這個 YAML 程式碼等於 EventBridge 主控台中的事件模式。在 YAML 中，您只需定義事件模式，並 AWS SAM 自動建立具有所需許可的 IAM 角色。

## 分離範本
<a name="eb-separated-template"></a>

在 中定義 EventBridge 組態的第二個方法中 AWS SAM，資源會在範本中更清楚地分隔。

1. 首先，您可以定義 Lambda 函數：

   ```
   atmConsumerCase1Fn:
     Type: AWS::Serverless::Function
     Properties:
       CodeUri: atmConsumer/
       Handler: handler.case1Handler
       Runtime: nodejs12.x
   ```

1. 接下來，使用 `AWS::Events::Rule` 資源定義規則。屬性定義事件模式，也可以指定[目標](eb-targets.md)。您可以明確定義多個目標。

   ```
   EventRuleCase1: 
     Type: AWS::Events::Rule
     Properties: 
       Description: "Approved transactions"
       EventPattern: 
         source: 
           - "custom.myATMapp"
         detail-type:
           - transaction   
         detail: 
           result: 
             - "approved"
       State: "ENABLED"
       Targets: 
         - 
           Arn: 
             Fn::GetAtt: 
               - "atmConsumerCase1Fn"
               - "Arn"
           Id: "atmConsumerTarget1"
   ```

1. 最後，定義一個 `AWS::Lambda::Permission` 資源，該資源授予 EventBridge 調用目標的權限。

   ```
   PermissionForEventsToInvokeLambda: 
     Type: AWS::Lambda::Permission
     Properties: 
       FunctionName: 
         Ref: "atmConsumerCase1Fn"
       Action: "lambda:InvokeFunction"
       Principal: "events.amazonaws.com"
       SourceArn: 
         Fn::GetAtt: 
           - "EventRuleCase1"
           - "Arn"
   ```

# 從現有的 EventBridge 規則產生 AWS CloudFormation 範本
<a name="rule-generate-template"></a>

AWS CloudFormation 可讓您透過將基礎設施視為程式碼，以集中且可重複的方式設定和管理跨帳戶和區域的 AWS 資源。CloudFormation 透過讓您建立*範本* (定義您要佈建和管理的資源) 來執行此作業。

EventBridge 可讓您從帳戶中現有的規則產生範本，以協助您快速開始開發 CloudFormation 範本。您可以選取要包含在範本中的單一規則或多個規則。然後，您可以使用這些範本作為基礎，以便建立受 CloudFormation 管理的資源[堆疊](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)。

如需 CloudFormation 的詳細資訊，請參閱 [* CloudFormation 使用者指南*。](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)

**注意**  
EventBridge 不會在產生的範本中包含[受管理的規則](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html)。

您也可以[從現有的事件匯流排 (包括事件匯流排所包含的規則) 產生範本](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-generate-event-bus-template.html)。

**從一或多個規則產生 CloudFormation 範本**

1. 前往 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 在導覽窗格中，選擇**規則**。

1. 在**選取事件匯流排**下，選擇包含您要包含在範本中之規則的事件匯流排。

1. 在**規則**下，選擇您要包含在產生的 CloudFormation 範本中的規則。

   對於單一管道，您也可以選擇規則名稱以顯示該規則的詳細資訊頁面。

1. 選擇 **CloudFormation 範本**，然後選擇您希望 EventBridge 在其中產生範本的格式：**JSON** 或 **YAML**。

   EventBridge 會顯示以所選取格式產生的範本。

1. EventBridge 可讓您選擇下載範本檔案，或將範本複製到剪貼簿。
   + 選擇**立即下載**以下載範本檔案。
   + 若要將範本複製剪貼簿，請選擇**複製**。

1. 若要結束範本，請選擇**取消**。

視需要為您的使用案例自訂 CloudFormation 範本後，您可以使用它在 中[建立堆疊](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) CloudFormation。

## 使用從 Amazon EventBridge 產生的 CloudFormation 範本時的注意事項
<a name="eb-generate-rule-template-considerations"></a>

使用從 EventBridge 產生的 CloudFormation 範本時，請考量下列因素：
+ EventBridge 不會在產生的範本中包含任何密碼。

  您可以編輯範本以包含[範本參數](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)，讓使用者在使用範本建立或更新 CloudFormation 堆疊時，能夠指定密碼或其他敏感資訊。

  此外，使用者可以使用 Secrets Manager 在所需區域中建立密碼，然後編輯產生的範本以使用[動態參數](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager)。
+ 產生的範本中的目標會保持與原始事件匯流排中指定的完全相同。如果您在使用範本在其他地區建立堆疊之前未適當地編輯範本，這可能會導致跨區域問題。

  此外，產生的範本不會自動建立下游目標。

# Amazon EventBridge 中的事件匯流排目標
<a name="eb-targets"></a>

*目標*是指當事件符合為[規則](eb-rules.md)定義的事件模式時，EventBridge 會傳送[事件](eb-events.md)的資源或端點。**規則會處理[事件](eb-events.md)資料，並將相關資訊傳送至目標。若要將事件資料交付至目標，EventBridge 需要存取目標資源的許可。您最多可以為每個規則定義五個目標。

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

## EventBridge 主控台中可用的事件匯流排目標
<a name="eb-console-targets"></a>

您可以在 EventBridge 主控台中為規則設定下列目標類型：
+ API 目的地

  API 目的地是 HTTPS 端點，您可以呼叫它做為事件匯流排規則的目標。當您將 API 目的地指定為規則目標時，EventBridge 會針對符合規則中指定事件模式的任何事件叫用 HTTPS 端點，然後隨請求傳遞事件資訊。如需詳細資訊，請參閱[API 目的地](eb-api-destinations.md)。
+ 事件匯流排

  您可以指定其他事件匯流排做為規則的目標。這包括相同或不同 AWS 帳戶中的事件匯流排。
  + [跨帳戶事件匯流排做為目標](eb-cross-account.md)
  + [與目標相同的帳戶事件匯流排](eb-bus-to-bus.md)
+ AWS 服務

  您可以讓 EventBridge 將事件傳送到許多 AWS 服務資源。其中包含：
  + [API Gateway](eb-api-gateway-target.md)
  + [AWS AppSync](target-appsync.md)
  + [批次任務佇列](#targets-specifics-batch)
  + [CloudWatch 日誌群組](#targets-specifics-cwl)
  + [CodeBuild 專案](#targets-specifics-codebuild)
  + CodePipeline
  + Amazon EBS `CreateSnapshot` API 呼叫
  + EC2 Image Builder
  + EC2 `RebootInstances` API 呼叫
  + EC2 `StopInstances` API 呼叫
  + EC2 `TerminateInstances` API 呼叫
  + [ECS 任務](#targets-specifics-ecs-task)
  + Firehose 交付串流
  + Glue 工作流程
  + [Indent Manager 回應計劃](https://docs.aws.amazon.com//incident-manager/latest/userguide/incident-creation.html#incident-tracking-auto-eventbridge)
  + Inspector 評估範本
  + Kinesis 串流
  + Lambda 函數 (ASYNC)
  + [Amazon Redshift 叢集資料 API 查詢](https://docs.aws.amazon.com/redshift/latest/mgmt/data-api-calling-event-bridge.html) 
  + [Amazon Redshift Serverless 工作群組資料 API 查詢](https://docs.aws.amazon.com/redshift/latest/mgmt/data-api-calling-event-bridge.html)
  + SageMaker AI 管道
  + Amazon SNS 主題
  + [Amazon SQS 標準、公平和 FIFO 佇列](#targets-specifics-sqs)
  + Step Functions 狀態機器 (ASYNC)
  + Systems Manager Automation
  + Systems Manager OpsItem
  + Systems Manager Run Command

## 目標參數
<a name="targets-specific-parms"></a>

有些目標不會將事件裝載中的資訊傳送至目標，而是將事件視為調用特定 API 的觸發器。EventBridge 使用[目標](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_Target.html)參數來決定該目標會發生什麼情況。這些索引標籤包括以下項目：
+ API 目的地

  傳送至 API 目的地的資料必須符合 API 的結構。使用 [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_InputTransformer.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_InputTransformer.html) 物件來確保資料結構正確。如果您想要包含原始事件承載，請在 中參考它[https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_InputTransformer.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_InputTransformer.html)。
+ API Gateway 

  傳送至 API Gateway 的資料必須符合 API 的結構。使用 [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_InputTransformer.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_InputTransformer.html) 物件來確保資料結構正確。如果您想要包含原始事件承載，請在 中參考它[https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_InputTransformer.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_InputTransformer.html)。
+ Amazon EC2 Image Builder
+ Amazon Redshift Data API 叢集

  請使用 [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_RedshiftDataParameters.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_RedshiftDataParameters.html)。
+ Amazon SageMaker 執行期模型建置管道

  請使用 [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_SageMakerPipelineParameters.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_SageMakerPipelineParameters.html)。
+ Amazon SQS 公平佇列和 FIFO 佇列

  使用 [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_SqsParameters.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_SqsParameters.html)指定要用作目標的訊息群組。
+ Systems Manager Run Command

  使用 [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_RunCommandParameters.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_RunCommandParameters.html)指定 SSM 文件和目標執行個體。如需詳細資訊，請參閱 [Systems Manager Run Command 做為目標](#targets-specifics-ssm-run-command)。

**注意**  
EventBridge 不支援所有 JSON 路徑語法，並在執行期對其進行評估。支援的語法包括：  
點符號 (例如 `$.detail`)
破折號
底線
英數字元
陣列索引
萬用字元 (\$1)
正斜線

### 動態路徑參數
<a name="dynamic-path-parameters"></a>

動態路徑參數可讓您使用 JSON 路徑語法在執行時間參考事件資料，而非靜態值。

您可以使用動態 JSON 路徑語法搭配目標參數來指定 JSON 路徑，而不是靜態值 （例如 `$.detail.state`)。

#### 要求
<a name="requirements"></a>

整個值必須是 JSON 路徑，而不只是其中的一部分。例如：
+ ✓ 正確：`RedshiftParameters.Sql`可以是 `$.detail.state`
+ ✗ 不正確：`RedshiftParameters.Sql`不能是 `"SELECT * FROM $.detail.state"`

EventBridge 會在執行時間將這些路徑取代為指定路徑上事件承載的資料。

#### 限制
<a name="limitations"></a>

動態路徑參數無法參考來自輸入轉換的新值或轉換值。JSON 路徑語法與輸入轉換語法相同。如需詳細資訊，請參閱 [Amazon EventBridge 輸入轉換](eb-transform-target-input.md)。

#### 支援的參數
<a name="supported-parameters"></a>

您可以在這些參數的所有字串、非列舉欄位上使用動態語法：
+ [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_EcsParameters.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_EcsParameters.html)
+ [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_HttpParameters.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_HttpParameters.html) (`HeaderParameters` 按鍵除外)
+ [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_RedshiftDataParameters.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_RedshiftDataParameters.html)
+ [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_SageMakerPipelineParameters.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_SageMakerPipelineParameters.html)
+ [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_SqsParameters.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_SqsParameters.html)

## 許可
<a name="targets-permissions"></a>

若要對您擁有的資源進行 API 呼叫，EventBridge 需要適當的許可。[使用 EventBridge 主控台](eb-create-rule-wizard.md#eb-create-rule-target)或在 中設定 `RoleARN` 參數來指定 IAM 執行角色[https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutTargets.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutTargets.html)。

例如，下列政策會定義傳送訊息至 Amazon SQS 佇列的許可：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sqs:SendMessage"
            ],
            "Resource": [
                "arn:aws:sqs:us-east-1:111122223333:sqs-queue-name"
            ]
        }
    ]
}
```

------

而下列信任政策可讓 EventBridge 擔任該角色：

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "events.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

您可以調用具有已設定 IAM 授權的 API Gateway 端點，但如果您尚未設定授權，則該角色為選用角色。如需詳細資訊，請參閱 [Amazon EventBridge 和 AWS Identity and Access Management](eb-iam.md)。

如果另一個帳戶位於同一地區，並已授予您許可，您可以將事件傳送至該帳戶。

如需詳細資訊，請參閱[在 Amazon EventBridge 中的 AWS 帳戶之間傳送和接收事件](eb-cross-account.md)。

如果您的目標，例如 Amazon SQS 佇列，使用 AWS Key Management Service (AWS KMS) 加密，您必須在 KMS 金鑰政策中包含下列區段：

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

## AWS Batch 任務佇列做為目標
<a name="targets-specifics-batch"></a>

某些 的 AWS Batch `submitJob`參數可以透過 [BatchParameters](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_BatchParameters.html) 設定。

其他可以在事件裝載中進行指定。如果事件裝載 (透過或經由 [InputTransformers](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-transform-target-input.html) 傳遞) 包含以下鍵，則它們將映射至 `submitJob` [請求](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html#API_SubmitJob_RequestSyntax)參數：
+ `ContainerOverrides: containerOverrides`
**注意**  
這僅包括命令、環境、記憶體和 vcpus
+ `DependsOn: dependsOn`
**注意**  
這僅包括 jobId
+ `Parameters: parameters`

## CloudWatch Logs 群組做為目標
<a name="targets-specifics-cwl"></a>

如果您未將 [InputTransformer](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-transform-target-input.html) 與 CloudWatch 日誌搭配使用，則會使用事件裝載作為日誌訊息，且事件來源則用作時間戳記。如果您確實使用 InputTransformer，則模板必須是：

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

EventBridge 會批次處理傳送至日誌串流的項目；因此，EventBridge 可能會將單一或多個事件傳送至日誌串流，視流量而定。

## CodeBuild 專案作為目標
<a name="targets-specifics-codebuild"></a>

EventBridge 支援標準和批次建置做為目標。

如果您使用[輸入轉換器](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-transform-target-input.html)來塑造來源事件，使其在交付至 CodeBuild 目標之前符合 [StartBuildRequest](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_StartBuild.html#API_StartBuild_RequestSyntax) 結構，參數將依`codeBuild.StartBuild`預設對應 1 對 1，並傳遞至 。

若要改為將參數傳遞至 `codeBuild.StartBuildBatch`，請轉換來源事件以符合 [StartBuildBatchRequest](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_StartBuildBatch.html#API_StartBuildBatch_RequestSyntax) 結構，並將下列金鑰/值對新增至轉換事件的根目錄：

`"buildType": "BATCH"`

## Amazon ECS 任務做為目標
<a name="targets-specifics-ecs-task"></a>

如果您使用 [InputTransformers](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-transform-target-input.html) 將輸入事件塑造為目標，以符合 Amazon ECS RunTask [TaskOverride](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TaskOverride.html) 結構，則這些參數將被映射到 1 對 1 並傳遞至 `ecs.RunTask`。

## Incident Manager 回應計畫作為目標
<a name="targets-specifics-incident-manager"></a>

如果符合的事件來自 CloudWatch 警示，警示狀態變更詳細資料會填入事件管理員的 StartIncidentRequest 呼叫的觸發詳細資料中。

## Systems Manager 執行命令做為目標
<a name="targets-specifics-ssm-run-command"></a>

當您指定 Systems Manager Run Command 做為目標時，EventBridge 會代表您呼叫 [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendCommand.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendCommand.html) API。使用 設定目標[https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_RunCommandParameters.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_RunCommandParameters.html)，指定要執行的 SSM 文件和目標執行個體或標籤。

`RunCommandParameters` 包含下列欄位：
+ `RunCommandTargets` — （必要） 指定目標執行個體的鍵值對清單。將 `Key`設定為 `InstanceIds` 搭配執行個體 IDs 清單，或將 `Key`設定為 `tag:tag-name` 搭配標籤值，依標籤將執行個體設為目標。您可以指定 1 到 5 個執行命令目標。

若要指定要執行哪些 SSM 文件並將其傳遞參數，請使用 [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_Target.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_Target.html) 物件上的 `Input` 欄位。此`Input`值必須是具有下列結構的 JSON 物件：

```
{
  "DocumentName": "document-name",
  "DocumentVersion": "version",
  "Parameters": {
    "parameter-key": ["parameter-value"]
  }
}
```

其中：
+ `DocumentName` — 要執行之 SSM 文件的名稱或 ARN。
+ `DocumentVersion` — （選用） 文件的版本。如果省略，則會使用預設版本。
+ `Parameters` — （選用） 參數名稱與值陣列的映射，符合 SSM 文件中定義的參數。

例如，下列 AWS CLI 命令會建立規則，當 EventBridge 事件相符時，在特定執行個體上執行`AWS-RunShellScript`文件：

```
aws events put-targets --rule "my-rule" --targets '[{
  "Id": "ssm-target-1",
  "Arn": "arn:aws:ssm:region:account-id:document/AWS-RunShellScript",
  "RoleArn": "arn:aws:iam::account-id:role/EventBridgeSSMRole",
  "Input": "{\\"Parameters\\":{\\"commands\\":[\\"echo Hello from EventBridge\\"]}}",
  "RunCommandParameters": {
    "RunCommandTargets": [{
      "Key": "InstanceIds",
      "Values": ["i-0123456789abcdef0"]
    }]
  }
}]'
```

**注意**  
`Target` 物件上的 `Input` 欄位用於將文件名稱和參數傳遞至 Systems Manager Run Command。這與 不同[https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_InputTransformer.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_InputTransformer.html)，它會轉換事件承載。使用 Systems Manager Run Command 做為目標時，請在 中設定文件參數，`Input`並在 中指定目標執行個體`RunCommandParameters`。

## Amazon SQS 佇列做為目標
<a name="targets-specifics-sqs"></a>

EventBridge 不支援使用使用 加密的 Amazon SQS 佇列 AWS 擁有的金鑰。這包括目標，以及指定為目標無效字母佇列的 Amazon SQS 佇列。如需詳細資訊 AWS 擁有的金鑰，請參閱《 *AWS Key Management Service 開發人員指南*》中的[AWS 擁有的金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)。

# Amazon EventBridge 中規則的 Amazon API Gateway 目標 EventBridge
<a name="eb-api-gateway-target"></a>

您可以使用 Amazon API Gateway 來建立、發佈、維護與監控 API。Amazon EventBridge 支援將事件傳送至 API Gateway 端點。當您指定 API Gateway 端點做為[目標](eb-targets.md)時，傳送至目標的每個[事件](eb-events.md)都會映射至傳送至端點的請求。

**重要**  
EventBridge 支援使用 API Gateway *邊緣最佳化*和*區域*端點作為目標。目前不支援*私人*端點。若要進一步了解叢集端點，請參閱 [https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-endpoint-types.html](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-endpoint-types.html)。

您可以針對下列使用案例使用 API Gateway 目標：
+ 根據 AWS 或第三方事件調用 API Gateway 中託管的客戶指定 API。
+ 按照排程定期調用端點。

EventBridge JSON 事件資訊會做為 HTTP 請求的主體傳送至您的端點。您可以在目標 `HttpParameters` 欄位中指定其他請求屬性，如下所示：
+ `PathParameterValues` 列出了與端點 ARN 中的任何路徑變量順序對應的值，例如 `"arn:aws:execute-api:us-east-1:112233445566:myapi/dev/POST/pets/*/*"`。
+ `QueryStringParameters` 代表 EventBridge 附加至調用端點的查詢字串參數。
+ `HeaderParameters` 定義了要新增至請求的 HTTP 標頭。

**注意**  
基於安全性考量，不允許使用下列 HTTP 標頭金鑰：  
任何前綴為 `X-Amz` 或 `X-Amzn`
`Authorization`
`Connection`
`Content-Encoding`
`Content-Length`
`Host`
`Max-Forwards`
`TE`
`Transfer-Encoding`
`Trailer`
`Upgrade`
`Via`
`WWW-Authenticate`
`X-Forwarded-For`

## 動態參數
<a name="eb-targets-apigateway-dynamic"></a>

調用 API Gateway 目標時，您可以動態地將資料新增至傳送至目標的事件。如需詳細資訊，請參閱 [目標參數](eb-targets.md#targets-specific-parms)。

## 調用指標
<a name="eb-targets-apigateway-retries"></a>

與所有目標一樣，EventBridge 會重試某些失敗的調用。對於 API Gateway，EventBridge 會重試使用 5xx 或 429 HTTP 狀態碼傳送的回應，最長可達 24 小時，並具有[指數退回和抖動](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/)。之後，EventBridge 在 Amazon CloudWatch 中發布 `FailedInvocations` 指標。EventBridge 不會重試其他 4xx HTTP 錯誤。

## Timeout (逾時)
<a name="eb-targets-apigateway-timeout"></a>

EventBridge 規則 API Gateway 請求的用戶端執行逾時上限必須為 5 秒。如果 API Gateway 的回應時間超過 5 秒，則 EventBridge 會逾時請求，然後重試。

EventBridge 管道 API Gateway 請求的逾時上限為 29 秒，即 API Gateway 上限。

# AWS AppSync Amazon EventBridge 中規則的目標
<a name="target-appsync"></a>

AWS AppSync 可讓開發人員使用安全、無伺服器且高效能的 GraphQL 和 Pub/Sub APIs，將其應用程式和服務連線至資料和事件。使用 AWS AppSync，您可以將即時資料更新發佈至具有 GraphQL 變動的應用程式。EventBridge 支援為相符事件呼叫有效 GraphQL 突變作業。當您指定 AWS AppSync API 變動做為目標時， 會透過變動操作 AWS AppSync 處理事件，然後觸發連結至變動的訂閱。

**注意**  
EventBridge 支援 AWS AppSync 公有 GraphQL APIs。EventBridge 目前不支援 AWS AppSync 私有 APIs。

您可以針對下列使用案例使用 AWS AppSync GraphQL API 目標：
+ 將事件資料推送、轉換和儲存到您設定的資料來源中。
+ 將即時通知傳送至連線的應用程式用戶端。

**注意**  
AWS AppSync 目標僅支援使用 [`AWS_IAM` 授權類型](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html#aws-iam-authorization)呼叫 AWS AppSync GraphQL APIs。

如需 AWS AppSync GraphQL APIs的詳細資訊，請參閱《 *AWS AppSync 開發人員指南*》中的 [GraphQL 和 AWS AppSync 架構](https://docs.aws.amazon.com/appsync/latest/devguide/graphql-overview.html)。

**使用主控台指定 EventBridge 規則 AWS AppSync 的目標**

1. [建立或編輯此規則。](eb-create-rule-visual.md)

1. 在**目標**下，依序選擇 **AWS 服務**、**AWS AppSync**，[來指定目標](eb-create-rule-wizard.md#eb-create-rule-target)。

1. 指定要剖析和執行的突變作業，以及選取集。
   + 選擇 AWS AppSync API，然後選擇要叫用的 GraphQL API 變動。
   + 在**設定參數和選取集**下，選擇使用鍵-值對映或輸入轉換器來建立選取集。

------
#### [ Key-value mapping ]

     若要使用鍵-值對映來建立選取集：
     + 指定 API 參數的變數。每個變數都可以是靜態值，也可以是事件承載的動態 JSON 路徑表達式。
     + 在**選取集**下，選擇您要在回應中包含的變數。

------
#### [ Input transformer ]

     若要使用輸入轉換器建立選取集：
     + 指定定義要使用之變數的輸入路徑。
     + 指定輸入範本，以定義和格式化您要傳遞至目標的資訊。

     如需詳細資訊，請參閱[在 EventBridge 中建立規則時設定輸入轉換器](eb-transform-input-rule.md)。

------

1. 對於**執行角色**，選擇是否要新建角色，或使用現有的角色。

1. 完成規則的建立或編輯。

## 範例：Amazon EventBridge AWS AppSync 的目標
<a name="target-appsync-walkthrough"></a>

在下列範例中，我們將逐步解說如何指定 EventBridge 規則 AWS AppSync 的目標，包括定義輸入轉換以格式化要交付的事件。

假設您有由下列結構描述定義的 AWS AppSync GraphQL API `Ec2EventAPI`：

```
type Event {
    id: ID!
    statusCode: String
    instanceId: String
}

type Mutation {
    pushEvent(id: ID!, statusCode: String!, instanceId: String): Event
}

type Query {
    listEvents: [Event]
}

type Subscription {
    subscribeToEvent(id: ID, statusCode: String, instanceId: String): Event
        @aws_subscribe(mutations: ["pushEvent"])
}
```

使用此 API 的應用程式用戶端可以訂閱 `subscribeToEvent`，該訂閱是由 `pushEvent` 突變所觸發。

您可以使用目標建立 EventBridge 規則，該規則會透過 `pushEvent` 突變將事件傳送至 AppSync API。調用突變時，任何訂閱的用戶端都會收到該事件。

若要指定此 API 作為 EventBridge 規則的目標，您需執行下列動作：

1. 將規則目標的 Amazon Resource Name (ARN) 設為 `Ec2EventAPI` API 的 GraphQL 端點 ARN。

1. 將突變 GraphQL 作業指定為目標參數：

   ```
   mutation CreatePushEvent($id: ID!, $statusCode: String, $instanceId: String) {
     pushEvent(id: $input, statusCode: $statusCode, instanceId: $instanceId) {
       id
       statusCode
       instanceId
     }
   }
   ```

   突變選取集必須包含您希望在 GraphQL 訂閱中訂閱的所有欄位。

1. 設定輸入轉換器，以指定如何在作業中使用相符事件中的資料。

   假設您選取了 `“EC2 Instance Launch Successful”` 範例事件：

   ```
   {
     "version": "0",
     "id": "3e3c153a-8339-4e30-8c35-687ebef853fe",
     "detail-type": "EC2 Instance Launch Successful",
     "source": "aws.autoscaling",
     "account": "123456789012",
     "time": "2015-11-11T21:31:47Z",
     "region": "us-east-1",
     "resources": ["arn:aws:autoscaling:us-east-1:123456789012:autoScalingGroup:eb56d16b-bbf0-401d-b893-d5978ed4a025:autoScalingGroupName/sampleLuanchSucASG", "arn:aws:ec2:us-east-1:123456789012:instance/i-b188560f"],
     "detail": {
       "StatusCode": "InProgress",
       "AutoScalingGroupName": "sampleLuanchSucASG",
       "ActivityId": "9cabb81f-42de-417d-8aa7-ce16bf026590",
       "Details": {
         "Availability Zone": "us-east-1b",
         "Subnet ID": "subnet-95bfcebe"
       },
       "RequestId": "9cabb81f-42de-417d-8aa7-ce16bf026590",
       "EndTime": "2015-11-11T21:31:47.208Z",
       "EC2InstanceId": "i-b188560f",
       "StartTime": "2015-11-11T21:31:13.671Z",
       "Cause": "At 2015-11-11T21:31:10Z a user request created an AutoScalingGroup changing the desired capacity from 0 to 1.  At 2015-11-11T21:31:11Z an instance was started in response to a difference between desired and actual capacity, increasing the capacity from 0 to 1."
     }
   }
   ```

   您可以使用目標輸入轉換器的輸入路徑，定義要在範本中使用的下列變數：

   ```
   {
     "id": "$.id",
     "statusCode": "$.detail.StatusCode",
     "EC2InstanceId": "$.detail.EC2InstanceId"
   }
   ```

   編寫輸入轉換器範本，以定義 EventBridge 傳遞給 AWS AppSync 變動操作的變數。此範本必須評估為 JSON。考量到輸入路徑，您可以撰寫以下範本：

   ```
   {
     "id": <id>,
     "statusCode": <statusCode>,
     "instanceId": <EC2InstanceId>
   }
   ```

# 將事件傳送至 EventBridge 中另一個帳戶中 AWS 的服務
<a name="eb-service-cross-account"></a>

EventBridge 可以將事件從一個 AWS 帳戶中的事件匯流排傳送至另一個帳戶中支援的 AWS 服務，藉此簡化事件驅動解決方案的架構，並減少延遲。

例如，假設您有一組在多個帳戶中託管的事件匯流排，您需要將安全相關事件傳送至集中帳戶中的 Amazon SQS 佇列，以便進一步非同步處理和分析。

EventBridge 支援將事件傳送至相同區域中的跨帳戶目標。

## 支援的服務
<a name="eb-service-cross-account-services"></a>

EventBridge 支援將事件傳送至其他 AWS 帳戶中的下列目標：
+ Amazon API Gateway APIs
+ Amazon Kinesis Data Streams 串流
+ Lambda 函式
+ Amazon SNS 主題
+ Amazon SQS 佇列

如需定價，請參閱 [Amazon EventBridge 定價](https://aws.amazon.com/eventbridge/pricing/)。

## 許可
<a name="eb-service-cross-account-permissions"></a>

啟用跨帳戶事件交付至 AWS 服務的存取權做為目標，包括以下步驟：
+ 指定執行角色
+ 將資源政策連接至目標

### 指定執行角色
<a name="eb-service-cross-account-permissions-role"></a>

指定 EventBridge 在觸發規則時將事件傳送至目標時要使用的執行角色。

此執行角色必須與事件匯流排位於相同的 帳戶中。EventBridge 會在嘗試叫用目標時擔任此角色，並套用任何影響此帳戶的服務控制政策 (SCPs)。

SCP 是一種組織政策類型，可用來管理組織中的許可。如需詳細資訊，請參閱《AWS Organizations 使用者指南》**中的[服務控制政策](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)。

例如，下列政策允許 EventBridge 服務擔任執行角色：

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "events.amazonaws.com"
       },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

而下列政策允許 角色傳送訊息至 Amazon SQS 佇列：

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sqs:SendMessage",
      "Resource": "arn:aws:sqs:us-east-1:123456789012:queue-name"
    }
  ]
}
```

------

對於使用 的帳戶 AWS Organizations，您可以套用 SCP 以防止叫用不屬於您組織的資源，如下列範例所示：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
          {
            "Action": [
                "*"
            ],
            "Resource": "*",
            "Effect": "Deny",
            "Condition": {
                "StringNotEquals": {
                    "aws:ResourceOrgID": "o-1234567890"
                }
            }
        }
    ]
}
```

------

**注意**  
對於事件匯流排以外的跨帳戶目標，即使從呼叫帳戶提供執行角色，也不支援`PutTarget`從與事件匯流排不同的帳戶呼叫 。

### 將資源存取政策連接至目標
<a name="eb-service-cross-account-permissions-policy"></a>

可接收跨帳戶事件 AWS 的服務支援 IAM 資源型政策。這可讓您將資源存取政策連接至目標，以便您可以指定可存取該政策的帳戶。

根據先前的範例，下列政策允許事件匯流排帳戶存取目標帳戶中的 Amazon SQS 佇列：

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "SQS:SendMessage"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:sqs:us-east-1:123456789012:queue-name",
      "Principal": {
      "AWS": "123456789012"
     }
    }
  ]
}
```

------

如需詳細資訊，請參閱*AWS Identity and Access Management 《 使用者指南*》中的[身分型政策和資源型政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)。

## 建立將事件傳送至其他帳戶中 AWS 服務的規則
<a name="eb-service-cross-account"></a>

將另一個帳戶中 AWS 的服務指定為目標，是建立事件匯流排規則的一部分。

**使用主控台建立規則，將事件傳送至不同 AWS 帳戶中的 AWS 服務**

1. 然後依照 [在 Amazon EventBridge 中建立規則](eb-create-rule-visual.md) 程序中的步驟進行操作。

1. 在 [選取目標](eb-create-rule-wizard.md#eb-create-rule-target) 步驟中，當系統提示您選擇目標類型時：

   1. 選取 **AWS 服務**。

   1. 選取支援跨帳戶目標 AWS 的服務。

      如需詳細資訊，請參閱[支援的服務](#eb-service-cross-account-services)。

   1. 針對**目標位置**，選擇**另一個 AWS 帳戶中的目標**。

   1. 輸入您要傳送事件的目標資源 ARN。

   1. 從下拉式清單中選取要使用的執行角色名稱。

   1. 提供您為所選服務請求的任何其他資訊。顯示的欄位會因選擇的服務而異。

1. 依照下列程序步驟，完成建立規則的操作。

# 在 Amazon EventBridge 中的 AWS 帳戶之間傳送和接收事件
<a name="eb-cross-account"></a>

您可以設定 EventBridge 在 AWS 帳戶中[的事件](eb-events.md)[匯流排](eb-event-bus.md)之間傳送和接收事件。當您將 EventBridge 設定為在帳戶之間傳送或接收事件時，您可以指定哪些 AWS 帳戶可以傳送事件至您帳戶中的事件匯流排或從您帳戶中的事件匯流排接收事件。您也可以允許或拒絕來自與事件匯流排相關聯之特定[規則](eb-rules.md)的事件，或來自特定來源的事件。如需詳細資訊，請參閱[使用 Amazon EventBridge 資源政策簡化跨帳戶存取權](https://aws.amazon.com/blogs//compute/simplifying-cross-account-access-with-amazon-eventbridge-resource-policies/)

**注意**  
如果您使用 AWS Organizations，您可以指定組織，並授予該組織中所有帳戶的存取權。此外，傳送事件匯流排在傳送事件至其他帳戶時，必須附加 IAM 角色。如需詳細資訊，請參閱 *AWS Organizations 使用者指南*中的[什麼是 AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)。

**注意**  
如果您使用「事件管理員」回應計劃作為目標，預設會提供與您帳戶共用的所有回應計劃。

只要目的地區域是支援的[跨區域](eb-cross-region.md)目的地區域，您就可以在所有 區域中相同 區域內 AWS 的帳戶和不同區域中的帳戶之間傳送和接收事件。

將 EventBridge 設定為從不同帳戶的事件匯流排傳送事件或從事件匯流排接收事件的步驟如下：
+ 在*接收者*帳戶上，編輯事件匯流排上的許可，以允許指定的 AWS 帳戶、組織或所有 AWS 帳戶將事件傳送至接收者帳戶。
+ 在*寄件者*帳戶上，設定一或多個將接收者帳戶的事件匯流排作為目標的規則。

  如果寄件者帳戶繼承從 AWS 組織傳送事件的許可，則寄件者帳戶也必須具有 IAM 角色，其政策可讓其將事件傳送至接收者帳戶。如果您使用 AWS 管理主控台 建立以接收者帳戶中的事件匯流排為目標的規則，則會自動建立角色。如果您使用 AWS CLI，則必須手動建立角色。
+ 在*接收者*帳戶上，設定一個或多個符合來自寄件者帳戶事件的規則。

從一個帳戶傳送到另一個帳戶的事件，會做為自訂事件向傳送帳戶收費。接收帳戶不收費。如需詳細資訊，請參閱 [Amazon EventBridge 定價](https://aws.amazon.com/eventbridge/pricing/)。

接收者帳戶可以設定一個規則，將從寄件者帳戶收到的事件發送到第三個帳戶，但系統不會將這些事件傳送到第三個帳戶。

如果您在同一個帳戶中有三個事件匯流排，並在第一個事件匯流排上設定規則，將事件從第二個事件匯流排轉送到第三個事件匯流排，則這些事件不會傳送至第三個事件匯流排。

 下列影片涵蓋帳戶之間的路由事件：




## 授予許可以允許來自其他 AWS 帳戶的事件
<a name="eb-receiving-events-from-another-account"></a>

若要從其他帳戶或組織接受事件，您必須先在帳戶的預設事件匯流排上編輯許可。預設事件匯流排接受來自 AWS 服務、其他授權 AWS 帳戶和 `PutEvents` 呼叫的事件。使用附加至事件匯流排的資源型原則授與或拒絕事件匯流排的許可。在政策中，您可以使用 AWS 帳戶 ID 將許可授予其他帳戶，或使用 AWS 組織 ID 授予組織。若要進一步了解事件匯流排許可 (包括範例政策) 的更多資訊，請參閱 [Amazon EventBridge 中事件匯流排的許可](eb-event-bus-perms.md)。

**注意**  
EventBridge 現在要求所有新的跨帳戶事件匯流排目標新增 IAM 角色。這僅適用於 2023 年 3 月 2 日之後建立的事件匯流排目標。在該日期之前未透過 IAM 角色所建立的應用程式不受影響。不過，我們建議新增 IAM 角色以授予使用者存取其他帳戶中的資源，因為這樣可確保套用使用服務控制政策 (SCP) 的組織界限，以決定誰可以從組織中的帳戶傳送和接收事件。

**重要**  
如果您選擇從所有 AWS 帳戶接收事件，請小心建立僅符合要從其他帳戶接收之事件的規則。若要建立更多安全規則，請務必確認每個規則的事件模式包含 `Account` 欄位，此欄位為一或多個您想接收事件的帳戶，以及這些帳戶的 ID。具有包含 Account (帳戶) 欄位的事件模式的規則，不符合從 `Account` 欄位中未列出帳戶所傳送的事件。如需詳細資訊，請參閱[Amazon EventBridge 中的事件](eb-events.md)。

## AWS 帳戶之間事件的規則
<a name="eb-writing-rules-that-match-events-from-another-account"></a>

如果您的帳戶設定為從其他 AWS 帳戶中的事件匯流排接收事件，您可以撰寫符合這些事件的規則。設定規則的[事件模式](eb-event-patterns.md)，以符合您從其他帳戶所接收的事件。

除非您在規則的事件模式中指定 `account`，否則任何您帳戶中符合從其他帳戶内事件匯流排接收事件的新規則或現有規則，都將會根據這些事件而觸發。如果您正從其他帳戶接收事件，且您需要規則僅在規則從您自己的帳戶生成事件模式時觸發該事件模式，您必須新增 `account` 並指定自己的帳戶 ID 到規則的事件模式。

如果您將 AWS 帳戶設定為接受所有 AWS 帳戶中事件匯流排的事件，強烈建議您將 `account` 新增至帳戶中的每個 EventBridge 規則。這可防止您帳戶中的規則觸發來自未知 AWS 帳戶的事件。當您在規則中指定 `account` 欄位時，您可以在該欄位中指定多個 AWS 帳戶的帳戶 ID。

若要對來自您授予許可之 AWS 帳戶中任何事件匯流排的相符事件進行規則觸發，請勿在規則的 `account` 欄位中指定 \$1。這麼做就不會有任何事件符合，因為 \$1 絕不會出現在事件的 `account` 欄位中。反而會省略規則中的 `account` 欄位。

## 建立在 AWS 帳戶之間傳送事件的規則
<a name="eb-create-rule-cross-account-target"></a>

將另一個帳戶中的事件匯流排指定為目標是建立規則的一部分。

**使用主控台建立將事件傳送至不同 AWS 帳戶的規則**

1. 然後依照 [在 Amazon EventBridge 中建立規則](eb-create-rule-visual.md) 程序中的步驟進行操作。

1. 在 [選取目標](eb-create-rule-wizard.md#eb-create-rule-target) 步驟中，當系統提示您選擇目標類型時：

   1. 選取 **EventBridge 事件匯**流排。

   1. 選取**不同帳戶或地區中的事件匯流排**。

   1. 針對**作為目標的事件匯流排**，輸入您要使用的事件匯流排的 ARN。

1. 依照下列程序步驟，完成建立規則的操作。

# 在 Amazon EventBridge 中的 AWS 區域之間傳送和接收事件
<a name="eb-cross-region"></a>

您可以設定 EventBridge 在 AWS 區域之間傳送和接收[事件](eb-events.md)。您也可以允許或拒絕來自特定區域的事件、與事件匯流排相關聯的特定[規則](eb-rules.md)，或來自特定來源的事件。如需詳細資訊，請參閱[使用 Amazon EventBridge 介紹跨區域事件路由](https://aws.amazon.com/blogs//compute/introducing-cross-region-event-routing-with-amazon-eventbridge/)

 下列影片涵蓋使用 https：//[https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 的區域之間的路由事件 AWS CloudFormation，以及 AWS Serverless Application Model：




## 建立將事件傳送至不同 AWS 區域的規則
<a name="eb-create-rule-cross-region-target"></a>

將另一個 AWS 區域中的事件匯流排指定為目標，是建立規則的一部分。

**使用主控台建立將事件傳送至不同 AWS 帳戶的規則**

1. 然後依照 [在 Amazon EventBridge 中建立規則](eb-create-rule-visual.md) 程序中的步驟進行操作。

1. 在 [選取目標](eb-create-rule-wizard.md#eb-create-rule-target) 步驟中，當系統提示您選擇目標類型時：

   1. 選取 **EventBridge 事件匯**流排。

   1. 選取**不同帳戶或地區中的事件匯流排**。

   1. 針對**作為目標的事件匯流排**，輸入您要使用的事件匯流排的 ARN。

1. 依照下列程序步驟，完成建立規則的操作。

# 在相同帳戶中的事件匯流排與 Amazon EventBridge 中的區域之間傳送事件
<a name="eb-bus-to-bus"></a>

您可以設定 EventBridge 在相同 AWS 帳戶和區域中[的事件](eb-events.md)[匯流排](eb-event-bus.md)之間傳送和接收事件。

當您將 EventBridge 設定為在事件匯流排之間傳送或接收事件時，您可以在*傳送者*事件匯流排上使用 IAM 角色授予*寄件者*事件匯流排將事件傳送至*接收者*事件匯流排的許可。您可以在*接收者*事件匯流排上使用[資源型政策](eb-use-resource-based.md)，以授予*接收者*事件匯流排接收來自*傳送者*事件匯流排的許可。您也可以允許或拒絕來自特定事件匯流排的事件、與事件匯流排相關聯的特定[規則](eb-rules.md)，或來自特定來源的事件。如需有關事件匯流排許可的詳細資訊，包括範例政策，請參閱 [Amazon EventBridge 中事件匯流排的許可](eb-event-bus-perms.md)。

將 EventBridge 設定為在您帳戶中的事件匯流排之間傳送事件或接收事件的步驟如下：
+ 若要使用現有的 IAM 角色，您需要將寄件者事件匯流排許可授予接收者事件匯流排，或將接收者事件匯流排許可授予寄件者事件匯流排。
+ 針對*寄件者*事件匯流排，設定一個或多個將接收者帳戶的事件匯流排作為目標的規則，並建立 IAM 角色。如需應附加至角色之策略的範例，請參閱 [範例政策：將事件傳送至 Amazon EventBridge 中相同帳戶中的事件匯流排](eb-event-bus-example-policy-same-account.md)。
+ 在*接收者*事件匯流排上，編輯許可以允許從其他事件匯流排傳遞事件。
+ 在*接收者*事件上，設定一個或多個符合來自寄件者事件匯流排之事件的規則。
**注意**  
EventBridge 無法將從寄件者事件匯流排接收到的事件路由至第三個事件匯流排。

從一個事件匯流排傳送到另一個事件匯流排的事件會作為自訂事件。如需詳細資訊，請參閱 [Amazon EventBridge 定價](https://aws.amazon.com/eventbridge/pricing/)。

## 建立將事件傳送至相同 AWS 帳戶和區域中不同事件匯流排的規則
<a name="eb-create-rule-same-account-region-target"></a>

若要將事件傳送至另一個事件匯流排，您可以建立以事件匯流排做為目標的規則。在與目標相同的 AWS 帳戶和區域中指定事件匯流排，是建立規則的一部分。

**使用主控台建立規則，將事件傳送至相同 AWS 帳戶和區域中的不同事件匯流排**

1. 然後依照 [在 Amazon EventBridge 中建立規則](eb-create-rule-visual.md) 程序中的步驟進行操作。

1. 在 [選取目標](eb-create-rule-wizard.md#eb-create-rule-target) 步驟中，當系統提示您選擇目標類型時：

   1. 選取 **EventBridge 事件匯流排**。

   1. 選取**相同 AWS 帳戶和區域中的事件匯流排**。

   1. 針對**事件匯流排作爲目標**，從下拉式清單中選取事件匯流排。

1. 依照下列程序步驟，完成建立規則的操作。

# Amazon EventBridge 輸入轉換
<a name="eb-transform-target-input"></a>

在 EventBridge 將資訊傳遞至[規則](eb-rules.md)的[目標](eb-targets.md)之前，您可以自訂[事件](eb-events.md)中的文字。使用主控台或 API 中的輸入轉換器，您可以定義使用 JSON 路徑來參考原始事件來源中值的變數。轉換後的事件會傳送至目標，而不是原始事件。但是，[動態路徑參數](eb-targets.md#dynamic-path-parameters)必須參照原始事件，而不是轉換的事件。您可以定義多達 100 個變數，從輸入中為每個變數指定一個值。然後，您可以在*輸入範本*中以 <*variable-name*> 形式使用這些變數。

如需使用輸入轉換器的教程，請參閱 [教學課程：使用輸入轉換器轉換 EventBridge 中的事件](eb-input-transformer-tutorial.md)。

**注意**  
EventBridge 不支援所有 JSON 路徑語法，並在執行期對其進行評估。支援的語法包括：  
點符號 (例如 `$.detail`)
破折號
底線
英數字元
陣列索引
萬用字元 (\$1)
正斜線

**Topics**
+ [

## 預定義變數
](#eb-transform-input-predefined)
+ [

## 輸入轉換範例
](#eb-transform-input-examples)
+ [

## 使用 EventBridge API 轉換輸入
](#eb-transform-input-api)
+ [

## 使用 轉換輸入 AWS CloudFormation
](#eb-transform-input-cfn)
+ [

## 轉換輸入的常見問題
](#eb-transform-input-issues)
+ [

# 在 EventBridge 中建立規則時設定輸入轉換器
](eb-transform-input-rule.md)
+ [

# 使用 EventBridge 沙盒測試目標輸入轉換器
](eb-sandbox-input-trans.md)

## 預定義變數
<a name="eb-transform-input-predefined"></a>

您可以在不定義 JSON 路徑的情況下使用預先定義的變數。這些變數會被保留，而且您無法使用這些名稱建立變數。
+ ****`aws.events.rule-arn`：EventBridge 規則的 Amazon Resource Name (ARN)。
+ ****`aws.events.rule-name`：EventBridge 規則的名稱。
+ ****`aws.events.event.ingestion-time`：EventBridge 接收到事件的時間。這是一個 ISO 8601 時間戳記。這個變數是由 EventBridge 所產生，無法覆寫。
+ ****`aws.events.event`：原始事件承載為 JSON (不含 `detail` 欄位)。僅能用作 JSON 欄位的值，因為它的內容不會逸出。
+ ****`aws.events.event.json`：完整的原始事件承載為 JSON (含 `detail` 欄位)。僅能用作 JSON 欄位的值，因為它的內容不會逸出。

## 輸入轉換範例
<a name="eb-transform-input-examples"></a>

以下為範例 Amazon EC2 事件。

```
{
  "version": "0",
  "id": "7bf73129-1428-4cd3-a780-95db273d1602",
  "detail-type": "EC2 Instance State-change Notification",
  "source": "aws.ec2",
  "account": "123456789012",
  "time": "2015-11-11T21:29:54Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1111"
  ],
  "detail": {
    "instance-id": "i-0123456789",
    "state": "RUNNING"
  }
}
```

在主控台中定義規則時，請選取**設定輸入**下的**輸入轉換器**選項。此選項會顯示兩個文字方塊：一個用於 *Input Path (輸入路徑)*，另一個用於 *Input Template (輸入範本)*。

### 輸入路徑
<a name="eb-transform-target-input-path"></a>

*輸入路徑*係用於定義變數。使用 JSON 路徑來參考事件中的項目，並將這些值存放在變數中。例如，您可以在第一個文字方塊中輸入下列內容，建立*輸入路徑*以參照範例事件中的值。您還可以使用括號和索引從陣列中獲取項目。

**注意**  
EventBridge 在執行期替換輸入轉換器，以確保有效的 JSON 輸出。因此，請在參考 JSON 路徑參數的變數周圍加上引號，但不要在參考 JSON 物件或陣列的變數周圍加上引號。

```
{
  "timestamp" : "$.time",
  "instance" : "$.detail.instance-id", 
  "state" : "$.detail.state",
  "resource" : "$.resources[0]"
}
```

這會定義四個變數，`<timestamp>`、`<instance>`、`<state>` 和 `<resource>`。您可以在建立*輸入範本*時參考這些變數。

**注意**  
Amazon CloudWatch Logs 和 SSM 目標不支援在其輸入轉換器`InputPath`中使用 `Input`和 。

### 輸入範本
<a name="eb-transform-target-input-template"></a>

*輸入範本*是您要傳遞到目標的資訊範本。您可以建立一個將字串或 JSON 傳遞給目標的範本。使用先前的事件和*輸入路徑*，下列*輸入範本*範例會在將事件路由至目標之前，將事件轉換為範例輸出。


| Description | 範本 | Output | 
| --- | --- | --- | 
| 簡單字串 |  <pre>"instance <instance> is in <state>"</pre> |  <pre>"instance i-0123456789 is in RUNNING"</pre>  | 
|  **具有溢出引號的字串**  |  <pre>"instance \"<instance>\" is in <state>"</pre> |  <pre>"instance \"i-0123456789\" is in RUNNING"</pre> 請注意，這是 EventBridge 主控台中的行為。 AWS CLI 會溢出斜線字元，結果是 `"instance "i-0123456789" is in RUNNING"`。  | 
|  **簡單 JSON**  |  <pre>{<br />  "instance" : <instance>,<br />  "state": <state><br />}</pre> |  <pre>{<br />  "instance" : "i-0123456789",<br />  "state": "RUNNING"<br />}</pre>  | 
|  **帶有字符串和變數的 JSON**  |  <pre>{<br /> "instance" : <instance>,<br /> "state": "<state>",<br /> "instanceStatus": "instance \"<instance>\" is in <state>"<br />}</pre>  |  <pre>{<br /> "instance" : "i-0123456789",<br /> "state": "RUNNING",<br /> "instanceStatus": "instance \"i-0123456789\" is in RUNNING"<br />}</pre>  | 
|  **JSON 與變數和靜態資訊的混合**  |  <pre>{<br />  "instance" : <instance>,<br />  "state": [ 9, <state>, true ],<br />  "Transformed" : "Yes"<br />}<br /></pre> |  <pre>{<br />  "instance" : "i-0123456789",<br />  "state": [<br />    9,<br />    "RUNNING",<br />    true<br />  ],<br />  "Transformed" : "Yes"<br />}</pre>  | 
|  **在 JSON 中包含保留變數**  |  <pre>{<br />  "instance" : <instance>,<br />  "state": <state>,<br />  "ruleArn" : <aws.events.rule-arn>,<br />  "ruleName" : <aws.events.rule-name>,<br />  "originalEvent" : <aws.events.event.json><br />}</pre> |  <pre>{<br />  "instance" : "i-0123456789",<br />  "state": "RUNNING",<br />  "ruleArn" : "arn:aws:events:us-east-2:123456789012:rule/example",<br />  "ruleName" : "example",<br />  "originalEvent" : {<br />    ... // commented for brevity<br />  }<br />}</pre>  | 
|  **在字串中包含保留變數**  | <pre>"<aws.events.rule-name> triggered"</pre> |  <pre>"example triggered"</pre>  | 
|  **Amazon CloudWatch 日誌群組**  | <pre>{<br />  "timestamp" : <timestamp>,<br />  "message": "instance \"<instance>\" is in <state>"<br />}</pre> |  <pre>{<br />  "timestamp" : 2015-11-11T21:29:54Z,<br />  "message": "instance "i-0123456789" is in RUNNING<br />}</pre>  | 

## 使用 EventBridge API 轉換輸入
<a name="eb-transform-input-api"></a>

如需有關使用 EventBridge API 轉換輸入的資訊，請參閱[使用輸入轉換從事件擷取資料，並將該資料輸入至目標](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutTargets.html#API_PutTargets_Example_2)。

## 使用 轉換輸入 AWS CloudFormation
<a name="eb-transform-input-cfn"></a>

如需使用 AWS CloudFormation 轉換輸入的資訊，請參閱 [AWS::Events::Rule InputTransformer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html)。

## 轉換輸入的常見問題
<a name="eb-transform-input-issues"></a>

這些是在 EventBridge 中轉換輸入時的一些常見問題：
+  針對字串，引號是必要的。
+  為您的範本建立 JSON 路徑時沒有驗證。
+  如果您指定變數對應不存在於事件中的 JSON 路徑，則該變數不會建立，且不會出現在輸出中。
+ 像 `aws.events.event.json` 的 JSON 屬性只能用作 JSON 欄位的值，而不能內嵌在其他字串中。
+  當填入目標的*輸入範本*時，EventBridge 不會逸出由*輸入路徑*擷取的值。
+ 如果 JSON 路徑參考 JSON 物件或陣列，但該變數在字串中參照，EventBridge 會移除任何內部引號，以確保有效的字串。例如，對於指向 `$.detail` 的變數 `<detail>`，“詳細資料是 <detail>”會導致 EventBridge 從物件中移除引號。

  因此，如果您想要根據單一 JSON 路徑變數來輸出 JSON 物件，則必須將其做為索引鍵放置。在此範例中，`{"detail": <detail>}`。
+ 代表字串的變數不需要引號。這些是允許的，但是 EventBridge 會在轉換期間自動將引號新增至字串變數值，以確保轉換輸出是有效的 JSON。EventBridge 不會在代表 JSON 物件或陣列的變數中新增引號。請勿為代表 JSON 物件或陣列的變數加上引號。

  例如，下列輸入範本包含代表字串和 JSON 物件的變數：

  ```
  {
    "ruleArn" : <aws.events.rule-arn>,
    "ruleName" : <aws.events.rule-name>,
    "originalEvent" : <aws.events.event.json>
  }
  ```

  使用適當的引號導致有效的 JSON：

  ```
  {
    "ruleArn" : "arn:aws:events:us-east-2:123456789012:rule/example",
    "ruleName" : "example",
    "originalEvent" : {
      ... // commented for brevity
    }
  }
  ```
+ 對於多行字串形式的 （非 JSON) 文字輸出，請以雙引號包裝輸入範本中的每行。

  例如，如果您將[Amazon Inspector 問題清單](https://docs.aws.amazon.com/inspector/latest/user/eventbridge-integration.html#event-finding)事件與下列事件模式相符：

  ```
  {
    "detail": {
      "severity": ["HIGH"],
      "status": ["ACTIVE"]
    },
    "detail-type": ["Inspector2 Finding"],
    "source": ["inspector2"]
  }
  ```

  並使用下列輸入路徑：

  ```
  {
    "account": "$.detail.awsAccountId",
    "ami": "$.detail.resources[0].details.awsEc2Instance.imageId",
    "arn": "$.detail.findingArn",
    "description": "$.detail.description",
    "instance": "$.detail.resources[0].id",
    "platform": "$.detail.resources[0].details.awsEc2Instance.platform",
    "region": "$.detail.resources[0].region",
    "severity": "$.detail.severity",
    "time": "$.time",
    "title": "$.detail.title",
    "type": "$.detail.type"
  }
  ```

  您可以使用以下輸入範本來產生多行字串輸出：

  ```
  "<severity> severity finding <title>"
  "Description: <description>"
  "ARN: \"<arn>\""
  "Type: <type>"
  "AWS Account: <account>"
  "Region: <region>"
  "EC2 Instance: <instance>"
  "Platform: <platform>"
  "AMI: <ami>"
  ```

# 在 EventBridge 中建立規則時設定輸入轉換器
<a name="eb-transform-input-rule"></a>

作爲建立規則的一部分，您可以指定 EventBridge 的輸入轉換器，以便在將這些事件傳送至指定目標之前處理相符事件。您可以為 AWS 服務或 API 目的地的目標設定輸入轉換器。

**建立目標輸入轉換器做為規則的一部分**

1. 請遵循建立規則的步驟，如 [在 Amazon EventBridge 中建立規則](eb-create-rule-visual.md) 中所述。

1. 在**步驟 3 - 選取目標**中，展開**其他設定**。

1. 針對**設定目標輸入**，從下拉式清單中選擇**輸入轉換器**。

   按一下**設定輸入轉換器**。

   EventBridge 會顯示**設定輸入轉換器**對話方塊。

1. 在**範例事件**區段中，選擇您要測試事件模式的**範例事件類型**。您可以選擇 AWS 事件、合作夥伴事件，或輸入您自己的自訂事件。

------
#### [ AWS events ]

   從支援 AWS 服務發出的事件中選取。

   1. 選取 **AWS 事件**。

   1. 在**範例事件**下，選擇所需的 AWS 事件。事件會依 AWS 服務組織。

      當您選取事件時，EventBridge 會填入範例事件。

      例如，如果您選擇 **S3 物件已建立**，EventBridge 會顯示 S3 物件建立事件的範例。

   1. (選用) 您也可以選取**複製**，將範例事件複製到裝置的剪貼簿。

------
#### [ Partner events ]

   從支援 EventBridge 的第三方服務 (例如 Salesforce) 所發出的事件中選取。

   1. 選取 **EventBridge 合作夥伴事件**。

   1. 在**範例事件**下，選擇所需的合作夥伴事件。事件由合作夥伴進行組織。

      當您選取事件時，EventBridge 會填入範例事件。

   1. (選用) 您也可以選取**複製**，將範例事件複製到裝置的剪貼簿。

------
#### [ Enter your own ]

   以 JSON 文字輸入您自己的事件。

   1. 選取**輸入您自己的**。

   1. EventBridge 會以必要事件屬性的範本填入範例事件。

   1. 視需要編輯並新增至範例事件。範例事件必須是有效的 JSON。

   1. (選用) 您也可以選擇下列任一選項：
      + **複製**：將範例事件複製到裝置的剪貼簿。
      + **美化**：透過新增換行符號、定位鍵和空格鍵，讓 JSON 文字更易於閱讀。

------

1. (選用) 展開**範例輸入路徑、範本和輸出**區段，以查看下列範例：
   + 如何使用 JSON 路徑定義代表事件資料的變數
   + 如何在輸入轉換器模板中使用這些變量
   + EventBridge 傳送至目標的結果輸出

   如需輸入轉換的詳細範例，請參閱 [輸入轉換範例](eb-transform-target-input.md#eb-transform-input-examples)。

1. 在**目標輸入轉換器**區段中，定義要在輸入範本中使用的任何變數。

   使用 JSON 路徑來參考原始事件來源中值的變數。然後，您可以在輸入範本中參考這些變數，以便在 EventBridge 傳遞給目標的轉換事件中包含來自原始來源事件的資料。您最多可定義 100 個變數。輸入轉換器必須是有效的 JSON。

   例如，假設您已選擇 AWS 事件 **S3 Object Created** 作為此輸入轉換器的範例事件。然後，您可以定義在模板中使用的以下變量：

   ```
   {
     "requester": "$.detail.requester",
     "key": "$.detail.object.key",
     "bucket": "$.detail.bucket.name"
   }
   ```

   (選用) 您也可以選擇**複製**，將輸入轉換器複製到裝置的剪貼簿。

1. 在**範本**區段中，撰寫您要使用的範本來決定哪些 EventBridge 傳遞至目標。

   您可以使用 JSON、字符串、靜態信息、您定義的變量以及保留變量。如需輸入轉換的詳細範例，請參閱 [輸入轉換範例](eb-transform-target-input.md#eb-transform-input-examples)。

   例如，假設您已經在上一個範例中定義了變數。然後，您可以編寫以下模板，該模板引用這些變量以及保留變量和靜態信息。

   ```
   {
       "message": "<requester> has created the object \"<key>\" in the bucket \"<bucket>\"",
       "RuleName": <aws.events.rule-name>,
       "ruleArn" : <aws.events.rule-arn>,
       "Transformed": "Yes"
   }
   ```

   (選用) 您也可以選擇**複製**，將範本複製到裝置的剪貼簿。

1. 若要測試範本，請選取**產生輸出**。

   EventBridge 會根據輸入範本處理範例事件，並在**輸出**下顯示產生的轉換輸出。這是 EventBridge 將傳遞給目標以取代原始來源事件的資訊。

   上述範例輸入範本所產生的輸出如下：

   ```
   {
       "message": "123456789012 has created the object "example-key" in the bucket "amzn-s3-demo-bucket"",
       "RuleName": rule-name,
       "ruleArn" : arn:aws:events:us-east-1:123456789012:rule/rule-name,
       "Transformed": "Yes"
   }
   ```

   (選用) 您也可以選擇**複製**，將產生的輸出複製到裝置的剪貼簿。

1. 選取**確認**。

1. 請遵循建立規則的其餘步驟，如 [在 Amazon EventBridge 中建立規則](eb-create-rule-visual.md) 中所述。

# 使用 EventBridge 沙盒測試目標輸入轉換器
<a name="eb-sandbox-input-trans"></a>

在 EventBridge 將資訊傳遞至[規則](eb-rules.md)之[目標](eb-targets.md)之前，您可以使用輸入轉換器自訂[事件](eb-events.md)中的文字。

設定輸入轉換器通常是在[建立新規則](eb-create-rule-visual.md)或編輯現有規則時指定目標的較大程序的一部分。不過，在 EventBridge 中使用沙盒，您可以快速設定輸入轉換器，並使用範例事件來確認您取得所需的輸出，而不必建立或編輯規則。

如需有關輸入轉型的詳細資訊，請參閱 [Amazon EventBridge 輸入轉換](eb-transform-target-input.md)。

**測試目標輸入轉換器**

1. 前往 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 在**開發人員資源**下，選擇**沙盒**，然後在**沙盒**頁面上選擇**目標輸入轉換器**標籤。

1. 在**範例事件**區段中，選擇您要測試事件模式的**範例事件類型**。您可以選擇 AWS 事件、合作夥伴事件，或輸入您自己的自訂事件。

------
#### [ AWS events ]

   從支援 AWS 服務發出的事件中選取。

   1. 選取 **AWS 事件**。

   1. 在**範例事件**下，選擇所需的 AWS 事件。事件會依 AWS 服務組織。

      當您選取事件時，EventBridge 會填入範例事件。

      例如，如果您選擇 **S3 物件已建立**，EventBridge 會顯示 S3 物件建立事件的範例。

   1. (選用) 您也可以選取**複製**，將範例事件複製到裝置的剪貼簿。

------
#### [ Partner events ]

   從支援 EventBridge 的第三方服務 (例如 Salesforce) 所發出的事件中選取。

   1. 選取 **EventBridge 合作夥伴事件**。

   1. 在**範例事件**下，選擇所需的合作夥伴事件。事件由合作夥伴進行組織。

      當您選取事件時，EventBridge 會填入範例事件。

   1. (選用) 您也可以選取**複製**，將範例事件複製到裝置的剪貼簿。

------
#### [ Enter your own ]

   以 JSON 文字輸入您自己的事件。

   1. 選取**輸入您自己的**。

   1. EventBridge 會以必要事件屬性的範本填入範例事件。

   1. 視需要編輯並新增至範例事件。範例事件必須是有效的 JSON。

   1. (選用) 您也可以選擇下列任一選項：
      + **複製**：將範例事件複製到裝置的剪貼簿。
      + **美化**：透過新增換行符號、定位鍵和空格鍵，讓 JSON 文字更易於閱讀。

------

1. (選用) 展開**範例輸入路徑、範本和輸出**區段，以查看下列範例：
   + 如何使用 JSON 路徑定義代表事件資料的變數
   + 如何在輸入轉換器模板中使用這些變量
   + EventBridge 傳送至目標的結果輸出

   如需輸入轉換的詳細範例，請參閱 [輸入轉換範例](eb-transform-target-input.md#eb-transform-input-examples)。

1. 在**目標輸入轉換器**區段中，定義要在輸入範本中使用的任何變數。

   使用 JSON 路徑來參考原始事件來源中值的變數。然後，您可以在輸入範本中參考這些變數，以便在 EventBridge 傳遞給目標的轉換事件中包含來自原始來源事件的資料。您最多可定義 100 個變數。輸入轉換器必須是有效的 JSON。

   例如，假設您已選擇 AWS 事件 **S3 Object Created** 作為此輸入轉換器的範例事件。然後，您可以定義在模板中使用的以下變量：

   ```
   {
     "requester": "$.detail.requester",
     "key": "$.detail.object.key",
     "bucket": "$.detail.bucket.name"
   }
   ```

   (選用) 您也可以選擇**複製**，將輸入轉換器複製到裝置的剪貼簿。

1. 在**範本**區段中，撰寫您要使用的範本來決定哪些 EventBridge 傳遞至目標。

   您可以使用 JSON、字符串、靜態信息、您定義的變量以及保留變量。如需輸入轉換的詳細範例，請參閱 [輸入轉換範例](eb-transform-target-input.md#eb-transform-input-examples)。

   例如，假設您已經在上一個範例中定義了變數。然後，您可以編寫以下模板，該模板引用這些變量以及保留變量和靜態信息。

   ```
   {
       "message": "<requester> has created the object \"<key>\" in the bucket \"<bucket>\"",
       "RuleName": <aws.events.rule-name>,
       "ruleArn" : <aws.events.rule-arn>,
       "Transformed": "Yes"
   }
   ```

   (選用) 您也可以選擇**複製**，將範本複製到裝置的剪貼簿。

1. 若要測試範本，請選取**產生輸出**。

   EventBridge 會根據輸入範本處理範例事件，並在**輸出**下顯示產生的轉換輸出。這是 EventBridge 將傳遞給目標以取代原始來源事件的資訊。

   上述範例輸入範本所產生的輸出如下：

   ```
   {
       "message": "123456789012 has created the object "example-key" in the bucket "amzn-s3-demo-bucket"",
       "RuleName": rule-name,
       "ruleArn" : arn:aws:events:us-east-1:123456789012:rule/rule-name,
       "Transformed": "Yes"
   }
   ```

   (選用) 您也可以選擇**複製**，將產生的輸出複製到裝置的剪貼簿。

# 在 Amazon EventBridge 中封存和重播事件
<a name="eb-archive"></a>

在 EventBridge 中，您可以建立事件的封存檔，以便您可以輕鬆*重播*，或稍後將它們重新傳送至最初接收它們的事件匯流排。例如，您可能想要重播事件以從錯誤中復原，或驗證應用程式中的新功能。

## 封存事件
<a name="eb-archive-archive"></a>

建立封存時，您可以指定：
+ 要傳送至封存的事件。

  您可以指定 EventBridge 在篩選傳送至封存的事件時要使用的事件模式。
+ 在封存中保留事件的時間長度。

  您可以指定在封存中保留事件的天數。根據預設，EventBridge 會無限期地將事件存放在封存中。

每個封存都會從單一*來源*事件匯流排接收事件。建立封存後，您就無法變更來源事件匯流排。您可以為指定的事件匯流排建立多個封存。

![\[事件會依事件模式進行篩選，並傳送至可重新播放的封存。\]](http://docs.aws.amazon.com/zh_tw/eventbridge/latest/userguide/images/archive_eventbridge_conceptual.svg)


EventBridge 費用適用於封存。如需詳細資訊，請參閱 [Amazon EventBridge 定價](https://aws.amazon.com/eventbridge/pricing/)。

### 加密封存事件
<a name="eb-archive-encryption"></a>

預設情況下，EventBridge 在 [AWS 擁有的 CMK](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#aws-owned-cmk) 下使用 256 位元進階加密標準 (AES-256) 來加密封存中的事件資料，這有助於保護您的資料免遭未經授權的存取。

### 事件交付
<a name="eb-archive-timing"></a>

請記住下列有關 EventBridge 如何將事件交付至封存檔的考量事項：
+ 在事件匯流排上接收到的事件與到達封存的事件之間，可能會有延遲。我們建議您延遲重播封存的活動 10 分鐘，以確保所有事件都能重播。
+ [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_DescribeArchive.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_DescribeArchive.html) 操作的 `EventCount`和 `SizeBytes`值的調校期間為 24 小時。因此，任何最近過期或新封存的事件可能不會立即反映在這些值中。

### 防止重播的事件交付至封存
<a name="eb-archive-managed-rule"></a>

當您建立封存時，EventBridge 會在來源事件匯流排上產生[受管規則](eb-rules.md#eb-rules-managed)，以防止重播的事件傳送至封存。受管規則會新增下列事件模式，根據事件是否包含 `replay-name` 欄位來篩選事件。(EventBridge 會在事件重播時將此欄位新增至事件。)

```
{
  "replay-name": [{
    "exists": false
  }]
}
```

## 從封存重播事件
<a name="eb-archive-replay"></a>

建立封存之後，您就可以重播封存中的事件。例如，如果您使用其他功能更新應用程式，您可以重播歷史事件，以確保事件會重新處理，以保持應用程式的一致性。您也可以使用封存重播新功能的事件。

當您從封存重播事件時，您可以指定：
+ 選取要重播的事件的時間範圍。
+ 或者，EventBridge 應重播所選事件的事件匯流排上的特定規則。

封存事件只能重播至來源事件匯流排。

每個 AWS 區域每個帳戶最多可以有十個作用中並行重播。

重播事件不會將其從封存中移除。您可以在多個重播中重播事件。EventBridge 只會在事件超過封存保留期間，或您刪除封存本身時移除事件。

EventBridge 會在 90 天後刪除重播。

您可以在重播狀態為 `Starting`或 時取消重播`Running`。如需詳細資訊，請參閱[取消事件重播](eb-replay-cancel.md)。

### 識別已重播的事件
<a name="eb-archive-replay-event-transform"></a>

當 EventBridge 在重播期間將事件從封存傳送至來源事件匯流排時，它會將中繼資料欄位新增至事件 `replay-name`，其中包含重播的名稱。您可以使用此欄位來識別交付至目標的重播事件。

EventBridge 也會使用此欄位，以確保重播的事件不會傳送至封存。

### 從封存重播事件時的考量事項
<a name="eb-archive-replay-considerations"></a>

從封存重播事件時，請記住下列考量事項：
+ 在事件匯流排上接收到的事件與到達封存的事件之間，可能會有延遲。我們建議您延遲重播封存的活動 10 分鐘，以確保所有事件都能重播。
+ 事件不必以新增至封存的相同順序進行重播。重播會根據事件中的時間來處理要重播的事件，並以一分鐘的間隔重播事件。如果您指定的事件開始時間和結束時間涵蓋 20 分鐘的時間範圍，則會先從該 20 分鐘範圍的第一分鐘開始重播事件。然後，重播第二分鐘的事件。
+ 您可以使用 EventBridge API 的 `DescribeReplay` 作業來判斷重播的進度。`EventLastReplayedTime` 傳回重播之上個事件的時間戳記。
+ 事件會根據 AWS 帳戶每秒`PutEvents`交易數限制重新播放，但與限制不同。您可以請求提高針對 PutEvents 的限制。如需詳細資訊，請參閱 [Amazon EventBridge 配額](https://docs.aws.amazon.com/eventbridge/latest/userguide/cloudwatch-limits-eventbridge.html)。

 以下視頻演示了存檔和重播的用法：




# 在 Amazon EventBridge 中建立事件封存
<a name="eb-archive-event"></a>

當您在 EventBridge 中建立封存時，您可以透過指定事件[模式來判斷要傳送至封存的事件](eb-event-patterns.md)。EventBridge 會將符合事件模式的事件傳送至封存。您也可以設定保留期間，以在將其捨棄之前將事件儲存於封存中。

您也可以在建立[事件匯流排時建立](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-event-bus.html)封存。這些封存具有無限期的保留政策，沒有事件篩選條件，但可在建立封存後[更新](https://docs.aws.amazon.com/eventbridge/latest/userguide/event-bus-update-archive.html)。

**Topics**
+ [

## 定義封存
](#eb-create-archive-define)
+ [

## 建置事件模式 （選用）
](#eb-create-archive-event-pattern)

## 定義封存
<a name="eb-create-archive-define"></a>

首先，輸入封存的名稱和描述，並指定接收事件的事件匯流排。您也可以選擇性地設定在封存中保留事件的時間長度。

**定義封存**

1. 前往 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 導覽至來源事件匯流排，或直接建立封存：
   + 在導覽窗格中，選擇**事件匯流排**。

     在事件匯流排詳細資訊頁面上，選擇**封存**索引標籤。
   + 在導覽窗格中，選擇**封存**。

1. 選擇**建立封存**。

1. 在**封存詳細資訊**下，輸入封存的名稱和選擇性的描述。

    在所選取的區域中，此名稱對於您的賬戶必須是唯一的。建立封存後無法修改名稱。

1. 針對**來源**，選取您要將事件傳送至封存的事件匯流排

   如果您從現有的事件匯流排詳細資訊頁面導覽，則預設會顯示該事件匯流排的名稱。

   建立封存後，就無法變更來源事件匯流排。

1. 針對**保留期間**，指定在封存中保留事件的時間長度：
   + 選擇**無限期**可將事件保留於封存中，而不會刪除它們。
   + 針對設定的保留期間，輸入 EventBridge 應該從封存中刪除事件的天數。

1. 針對**加密**，選擇 EventBridge 在加密封存中存放的事件時要使用的 KMS 金鑰。
**重要**  
如果您已指定 EventBridge 使用客戶受管金鑰來加密來源事件匯流排，我們強烈建議您也為事件匯流排的任何封存指定客戶受管金鑰。
   + 選擇**用於 AWS 擁有的金鑰** EventBridge，以使用 加密資料 AWS 擁有的金鑰。

      AWS 擁有的金鑰 這是 EventBridge 擁有和管理的 KMS 金鑰，可用於多個 AWS 帳戶。一般而言，除非您需要稽核或控制保護 資源的加密金鑰，否則 AWS 擁有的金鑰 是不錯的選擇。

     此為預設值。
   + 選擇**使用 EventBridge 的客戶受管金鑰**，以使用您指定或建立的客戶受管金鑰來加密資料。 EventBridge 

     客戶受管金鑰是您帳戶中建立、擁有和管理 AWS 的 KMS 金鑰。您可以完全控制這些 KMS 金鑰。

     1. 指定現有的客戶受管金鑰，或選擇**建立新的 KMS 金鑰 />**。

       EventBridge 會顯示金鑰狀態，以及與指定客戶受管金鑰相關聯的任何金鑰別名。

1. 選擇**下一步**。

## 建置事件模式 （選用）
<a name="eb-create-archive-event-pattern"></a>

接下來，作為選用步驟，您可以建置事件模式來篩選 EventBridge 傳送至封存的事件。若要這麼做，請指定事件來源、選擇事件模式的基礎，然後定義要比對的屬性和值。您也可以在 JSON 中產生事件模式，並根據範例事件進行測試。

如需事件模式的詳細資訊，請參閱 [](eb-event-patterns.md)。

**若要建置事件模式**

1. 在**事件來源**欄位中，選擇 **AWS 事件或 EventBridge 合作夥伴事件**。

1. (選用 ) 在**範例事件**區段中，選擇您要測試事件模式的**範例事件類型**。

   可使用以下範例事件類型：
   + **AWS 事件 **– 從支援的事件中選取 AWS 服務。
   + **EventBridge 合作夥伴事件**：從支援 EventBridge 的第三方服務 (例如 Salesforce) 所發出的事件中選取。
   + **輸入我自己的**：以 JSON 文字輸入您自己的事件。

     您也可以使用 AWS 或 合作夥伴事件做為建立自訂事件的起點。

     1. 選取 **AWS 活動**或 **EventBridge 合作夥伴事件**。

     1. 使用**範例事件**下拉式清單，選取要用作自訂事件起點的事件。

        EventBridge 會顯示範例事件。

     1. 選取**複製**。

     1. 針對**事件類型**選取**輸入我自己的**。

     1. 在 JSON 編輯窗格中刪除範例事件結構，並將 AWS 或 合作夥伴事件貼到位。

     1. 編輯事件 JSON 以建立您自己的範例事件。

1. 選擇**建立方法**。您可以從 EventBridge 結構描述或範本建立事件模式，也可以建立自訂事件模式。

------
#### [ Existing schema ]

   若要使用現有的 EventBridge 結構描述建立事件模式，請執行下列動作：

   1. 在**建立方法**區段中，針對**方法**，選取**使用結構描述**。

   1. 在**事件模式**區段中，針對**結構描述類型**，選取**從結構描述登錄檔選取結構描述**。

   1. 針對**結構描述登錄檔**，選擇下拉式方塊，然後輸入結構描述登錄檔的名稱，例如 `aws.events`。您也可以從出現的下拉式清單中選取選項。

   1. 針對**結構描述**，選擇下拉式方塊，然後輸入要使用的結構描述名稱。例如 `aws.s3@ObjectDeleted`。您也可以從出現的下拉式清單中選取選項。

   1. 在**模型**區段中，選擇任何屬性旁的**編輯**按鈕以開啟其屬性內容。視需要設定**關係**與**值**欄位，然後選擇**設定**以儲存屬性。
**注意**  
如需有關屬性定義的資訊，請選擇屬性名稱旁邊的**資訊**圖示。如需有關如何在事件中設定屬性內容的參考資料，請開啟屬性內容對話方塊的**註記**區段。  
若要刪除屬性的内容，請選擇該屬性的**編輯**按鈕，然後選擇**清除**。

   1. 選擇**在 JSON 中產生事件模式**，以 JSON 文字產生並驗證您的事件模式。

   1. (選用) 若要根據您的測試模式測試範例事件，請選擇**測試模式**。

      EventBridge 會顯示一個訊息方塊，說明您的範例事件是否符合事件模式。

      您也可以選擇以下其中一個選項：
      + **複製**：將事件模式複製到設備的剪貼板。
      + **美化**：透過新增換行符號、定位鍵和空格鍵，讓 JSON 文字更易於閱讀。

------
#### [ Custom schema ]

   若要撰寫自訂結構描述並將其轉換為事件模式，請執行下列動作：

   1. 在**建立方法**區段中，針對**方法**，選擇**使用結構描述**。

   1. 在**事件模式**區段中，針對**結構描述類型**，選擇**輸入結構描述**。

   1. 將結構描述輸入文字方塊。您必須將結構描述格式化為有效的 JSON 文字。

   1. 在**模型**區段中，選擇任何屬性旁的**編輯**按鈕以開啟其屬性內容。視需要設定**關係**與**值**欄位，然後選擇**設定**以儲存屬性。
**注意**  
如需有關屬性定義的資訊，請選擇屬性名稱旁邊的**資訊**圖示。如需有關如何在事件中設定屬性內容的參考資料，請開啟屬性內容對話方塊的**註記**區段。  
若要刪除屬性的内容，請選擇該屬性的**編輯**按鈕，然後選擇**清除**。

   1. 選擇**在 JSON 中產生事件模式**，以 JSON 文字產生並驗證您的事件模式。

   1. (選用) 若要根據您的測試模式測試範例事件，請選擇**測試模式**。

      EventBridge 會顯示一個訊息方塊，說明您的範例事件是否符合事件模式。

      您也可以選擇以下其中一個選項：
      + **複製**：將事件模式複製到設備的剪貼板。
      + **美化**：透過新增換行符號、定位鍵和空格鍵，讓 JSON 文字更易於閱讀。

------
#### [ Event pattern ]

   若要以 JSON 格式撰寫自訂事件模式，請執行下列動作：

   1. 在**建立方法**區段中，針對**方法**，選擇**自訂模式 (JSON 編輯器)**。

   1. 針對**事件模式**，請在 JSON 格式文字中輸入您的自訂事件模式。

   1. (選用) 若要根據您的測試模式測試範例事件，請選擇**測試模式**。

      EventBridge 會顯示一個訊息方塊，說明您的範例事件是否符合事件模式。

      您也可以選擇以下其中一個選項：
      + **複製**：將事件模式複製到設備的剪貼板。
      + **美化**：透過新增換行符號、定位鍵和空格鍵，讓 JSON 文字更易於閱讀。
      + **事件模式表單**：打開模式生成器的事件模式。如果模式無法依原樣在模式產生器中呈現，EventBridge 會在開啟模式產生器之前警告您。

------

1. 選擇**建立封存**。

若要確認事件已成功傳送至封存，您可以使用 EventBridge API 的 [https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_DescribeArchive.html](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_DescribeArchive.html) 作業來查看 `EventCount` 是否反映封存中的事件數目。如果事件數目為 0，則封存中無任何事件。

# 更新 Amazon EventBridge 事件匯流排上的封存
<a name="event-bus-update-archive"></a>

您可以更新下列項目：
+ 封存描述
+ 用於篩選哪些事件傳送至封存的事件模式。
+ 事件的保留期間。
+  AWS KMS key 用於事件加密的 。

  如需詳細資訊，請參閱[加密封存](encryption-archives.md)。

建立封存之後，您就無法變更封存的名稱或來源事件匯流排。

**注意**  
使用客戶受管金鑰加密的事件匯流排不支援結構描述探索。若要在事件匯流排上啟用結構描述探索，請選擇使用 AWS 擁有的金鑰。如需詳細資訊，請參閱[KMS 金鑰選項](eb-encryption-at-rest-key-options.md)。

**更新封存 （主控台）**

1. 前往 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 直接導覽至封存，或從來源事件匯流排導覽至：
   + 在導覽窗格中，選擇**事件匯流排**。

     在事件匯流排詳細資訊頁面上，選擇**封存**索引標籤。
   + 在導覽窗格中，選擇**封存**。

1. 選取封存，然後選取**編輯**。

1. 更新封存。

**更新事件匯流排的封存 (AWS CLI)**
+ 使用 [update-archive](https://docs.aws.amazon.com/cli/latest/reference/events/update-archive.html)。

# 在 Amazon EventBridge 中刪除事件封存
<a name="eb-archive-delete"></a>

當您刪除封存時，EventBridge 會刪除下列資源：
+ 封存及其包含的任何事件。
+ 指定給封存的事件模式，如果有的話。
+ 為封存產生的受管規則 EventBridge。

**從事件匯流排刪除封存 （主控台）**

1. 前往 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 直接導覽至封存，或從來源事件匯流排導覽：
   + 在導覽窗格中，選擇**事件匯流排**。

     在事件匯流排詳細資訊頁面上，選擇**封存**索引標籤。
   + 在導覽窗格中，選擇**封存**。

1. 選擇包含您要刪除之封存的事件匯流排。

1. 在事件匯流排詳細資訊頁面上，選取**封存**索引標籤。

1. 選取封存，然後選取**刪除**。

**刪除封存 (AWS CLI)**
+ 使用 [delete-archive](https://docs.aws.amazon.com/cli/latest/reference/events/delete-archive.html)。

# 在 Amazon EventBridge 中建立封存事件的重播
<a name="eb-replay-archived-event"></a>

當您開始新的重播時，您可以為您希望 EventBridge 重新傳送至來源事件匯流排的事件指定時段。您也可以指定讓 EventBridge 將事件傳送至特定規則。

**開始事件重播 （主控台）**

1. 前往 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 直接導覽至重播，或從您要重播的封存中導覽至：
   + 在導覽窗格中，選擇**封存**。

     在**封存**頁面上，選擇封存，然後選擇**重播**。
   + 在導覽窗格中，選擇**重播**。

     選擇**重新開始重播**。

1. 輸入重播的**名稱**，或者輸入**描述**。

1. 針對**來源**，選取要從中重播事件的封存。

1. 針對目的地，您可以將事件僅重播至發出事件的相同事件匯流排。

1. 針對**指定規則**，請執行下列其中一個動作：
   + 選擇**所有規則**，將事件重播至所有規則。
   + 選擇**指定規則**，然後選取要重播事件的一個或多個規則。

1. 在**重播時間範圍**下，指定**日期**、**時間**以及**開始時間**和**結束時間**的**時區**。

   僅會重播在**開始時間**和**結束時間**之間發生的事件。

1. 選擇**開始重播**。

**開始重播 (AWS CLI)**
+ 使用 [start-replay](https://docs.aws.amazon.com/cli/latest/reference/events/start-replay.html)。

# 取消 Amazon EventBridge 中封存事件的重播
<a name="eb-replay-cancel"></a>

如果您開始重播，然後想要停止它，您可以在其狀態為 `Starting`或 時取消它`Running`。

**若要取消重播 （主控台）**

1. 前往 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 在左側導覽窗格中，請選擇**重播**。

1. 選擇要取消的重播。

1. 選擇**取消**。

**若要取消重播 (AWS CLI)**
+ 使用 [cancel-replay](https://docs.aws.amazon.com/cli/latest/reference/events/cancel-replay.html)。

# 讓應用程式對 EventBridge 中的全域端點具有區域容錯能力
<a name="eb-global-endpoints"></a>

您可以透過 Amazon EventBridge 全球端點提高應用程式的可用性。全域端點可讓應用程式區域容錯而無需增加額外費用。若要開始，請將 Amazon Route 53 運作狀態檢查指派給端點。啟動容錯移轉時，運作狀態檢查會報告「狀況不良」狀態。在容錯移轉初始化的幾分鐘內，所有自訂[事件](eb-events.md)[都會路由至次要區域中的事件匯流排](eb-event-bus.md)，並由該事件匯流排處理。一旦運作狀態檢查報告為「狀況良好」狀態，事件就會由主要區域中的事件匯流排處理。

當您使用全域端點時，您可以啟用[事件複寫](#eb-ge-event-replication)。事件複寫會使用受管規則，將所有自訂事件傳送至主要和次要區域中的事件匯流排。

**注意**  
如果您使用自訂匯流排，則需要在每個區域中使用相同名稱且相同帳戶中的自訂匯流排，以便容錯移轉正常運作。

## 復原時間與復原點目標
<a name="eb-ge-rpo-rto"></a>

復原時間點目標 (RTO) 是次要區域在失敗後開始接收事件所需的時間。針對 RTO，此時間包括觸發 CloudWatch 警示和更新 Route 53 運作狀態檢查狀態的時間段。復原點目標 (RPO) 是在失敗期間保持未處理之資料的度量。針對 RPO，時間包括未複製到次要區域並停留在主要區域中的事件，直到服務或區域復原為止。使用全球端點時，如果您遵循我們的警示設定規範指引，您可以預期 RTO 和 RPO 為 360 秒，最長 420 秒。

## 複寫事件
<a name="eb-ge-event-replication"></a>

在次要區域中以非同步方式處理事件。這表示不能保證在兩個區域中同時處理事件。觸發容錯移轉時，事件會由次要區域處理，並在主要區域可用時由主要區域進行處理。啟用事件複寫會增加您的每月成本。如需詳細資訊，請參閱 [Amazon EventBridge 定價](https://aws.amazon.com/eventbridge/pricing)。

建議您在設定全域端點時啟用事件複寫，原因如下：
+ 事件複寫可協助您確認已正確設定全域端點。這有助於確保您在容錯移轉的情況下得到保障。
+ 需要事件複寫，才能從容錯移轉事件自動復原。如果您沒有啟用事件複寫，您必須手動將 Route 53 運作狀態檢查重設為「狀況良好」，事件才會回到主要區域。

### 複製的事件承載
<a name="eb-ge-event-replication-ep"></a>

以下是複製的事件承載的範例。

**注意**  
針對 `region`，會列出事件複製來源的「區域」。

```
{
    "version": "0",
    "id": "a908baa3-65e5-ab77-367e-527c0e71bbc2",
    "detail-type": "Test",
    "source": "test.service.com",
    "account": "0123456789",
    "time": "1900-01-01T00:00:00Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:events:us-east-1:0123456789:endpoint/MyEndpoint"
    ],
    "detail": {
        "a": "b"
    }
}
```

## 使用 AWS SDK 處理全域端點
<a name="eb-ge-sdk-update"></a>

**注意**  
即將推出 C\$1\$1 支援。

使用 AWS SDK 搭配全域端點時，請記住下列事項：
+ 您需要為特定 SDK 安裝 AWS 通用執行期 (CRT) 程式庫。如果您沒有安裝 CRT，您會看到一則例外狀況訊息，指出需要安裝的項目。如需詳細資訊，請參閱下列內容：
  + [AWS 通用執行期 (CRT) 程式庫](https://docs.aws.amazon.com/sdkref/latest/guide/common-runtime.html)
  + [awslabs/aws-crt-java](https://github.com/awslabs/aws-crt-java)
  + [awslabs/aws-crt-nodejs](https://github.com/awslabs/aws-crt-nodejs)
  + [awslabs/aws-crt-python](https://github.com/awslabs/aws-crt-python)
+ 建立全域端點之後，您需要將 `endpointId` 和 `EventBusName` 新增至您使用的任何 `PutEvents` 呼叫中。
+ 全域端點支援簽章版本 4A。這個版本的 SigV4 允許為多個 AWS 區域簽署請求。這對於可能導致來自數個區域之一的資料存取的 API 操作非常有用。使用 AWS SDK 時，您會提供登入資料，而全域端點的請求將使用 Signature 第 4A 版，而不需要其他組態。如需 SigV4A 的詳細資訊，請參閱《AWS 一般參考》**中的[簽署 AWS API 請求](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html )。

  如果您從全域 AWS STS 端點 (sts.amazonaws.com：//) 請求臨時登入資料， AWS STS 則提供預設不支援 SigV4A 的登入資料。如需詳細資訊，請參閱*AWS Identity and Access Management 《 使用者指南*》中的[AWS STS 在 AWS 區域中管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) 。

## 可用的區域
<a name="eb-ge-avail-regions"></a>

以下區域支援端點。
+ 美國東部 (維吉尼亞北部)
+ 美國東部 (俄亥俄)
+ 美國西部 (加利佛尼亞北部)
+ 美國西部 (奧勒岡)
+ 加拿大 (中部)
+ 歐洲 (法蘭克福)
+ 歐洲 (愛爾蘭)
+ 歐洲 (倫敦)
+ 歐洲 (米蘭)
+ 歐洲 (巴黎)
+ 歐洲 (斯德哥爾摩)
+ 亞太地區 (孟買)
+ 亞太區域 (大阪)
+ 亞太區域 (首爾)
+ 亞太區域 (新加坡)
+ 亞太地區 (雪梨)
+ 亞太地區 (東京)
+ 南美洲 (聖保羅)

# 在 Amazon EventBridge 中建立全域端點
<a name="eb-ge-create-endpoint"></a>

請完成下列步驟來設定全域端點：

1. 請確定您在主要和次要區域中都有相符的事件匯流排和規則。

1. 建立 [Route 53 運作狀態檢查](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/health-checks-creating.html)以監控您的事件匯流排。如需建立運作狀態檢查的協助，請在建立全域端點時選擇**新增健康狀態檢查**。

1. 建立您的全球端點。

設定 Route 53 運作狀態檢查之後，您就可以建立全域端點。

## 使用主控台建立全域端點
<a name="eb-ge-create-endpoint-console"></a>

1. 造訪 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 在導覽窗格中，選擇**全球端點**。

1. 選擇**建立端點**。

1. 輸入端點的名稱和描述。

1. 針對**主要區域中的事件匯流排**，請選擇您想要與端點相關聯的事件匯流排。

1. 針對**次要區域**，請選擇發生容錯移轉時要將事件引導至的區域。
**注意**  
**次要區域中的事件匯流排**會自動填入且無法編輯。

1. 針對 **Route 53 運作狀態檢查以進行觸發容錯移轉和復原**，請選擇端點將監控的健全狀況檢查。如果您還沒有運作狀態檢查，請選擇**新運作狀態檢查**以開啟 CloudFormation 主控台，並使用 CloudFormation 範本建立運作狀態檢查。
**注意**  
遺失資料會導致運作狀態檢查失敗。如果您只需要間歇性地傳送事件，請考慮使用較長的 **MinimumEvaluationPeriod**，或將遺失的資料視為「遺失」而非「違規」。

1. (選用 ) 針對**事件複製**，請執行下列動作：

   1. 選取**已啟用事件複製**。

   1. 針對**執行角色**，選擇建立新的 AWS Identity and Access Management 角色，或使用現有的角色。請執行下列操作：
      + 選擇 **Create a new role for this specific resource (為此特定資源建立新角色)**。或者，您可以更新**角色**名稱以建立新角色。
      + 否則，請選擇**使用現有角色**。然後，針對**執行角色**，選擇要使用的所需角色。

1. 選擇**建立**。

## 使用 API 建立全域端點
<a name="eb-ge-create-endpoint-api"></a>

若要使用 EventBridge API 建立全球端點，請參閱《Amazon EventBridge API 參考》中的 [CreateEndpoint](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_CreateEndpoint.html)。

## 使用 建立全域端點 CloudFormation
<a name="eb-ge-create-endpoint-cfn"></a>

若要使用 AWS CloudFormation API 建立全域端點，請參閱 AWS CloudFormation 《 使用者指南》中的 [AWS::Events::Endpoints](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-endpoint.html)。

# Amazon EventBridge 全域端點的最佳實務
<a name="eb-ge-best-practices"></a>

設定全域端點時，建議採用下列最佳作法。

## 啟用事件複寫
<a name="eb-ge-bp-enable-replication"></a>

強烈建議您在指派給全域端點的次要區域中開啟複寫並處理事件。這可確保您在次要區域中的應用程式設定正確。您也應該開啟複寫功能，以確保在緩解問題後自動復原至主要區域。

事件 ID 可能會隨 API 呼叫而變更，因此跨區域的事件關聯需要您具有不可變的唯一識別碼。消費者也應該考慮等冪性的設計。如此一來，如果您要複製事件，或從封存中重新播放事件，兩個區域中處理的事件就不會產生任何副作用。

## 防止事件限流
<a name="eb-ge-bp-throttling"></a>

為了防止事件受到限制，我們建議您更新 `PutEvents` 和目標限制，使其在不同區域之間保持一致。

## 使用 Amazon Route 53 運作狀態檢查中的訂閱用戶指標
<a name="eb-ge-bp-sub-metrics"></a>

避免包含 Amazon Route 53 運作狀態檢查中的訂閱用戶指標。如果訂閱用戶遇到問題，儘管主要區域中的所有其他訂閱用戶都保持良好狀態，但包括這些指標可能會導致您的發布者容錯移轉到次要區域。如果您的其中一個訂閱用戶無法處理主要區域中的事件，您應該開啟複寫功能，以確保次要區域的訂閱用戶能夠順利處理事件。

# 設定 EventBridge 全域端點的 Route 53 運作狀態檢查
<a name="eb-ge-cfn"></a>

使用全域端點時，您必須進行 Route 53 運作狀態檢查才能監控區域的狀態。下列範本定義了一個 [Amazon CloudWatch 警示](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html)，並使用它來定義 [Route 53 運作狀態檢查](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-healthcheck.html)。

**Topics**
+ [

## CloudFormation 用於定義 Route 53 運作狀態檢查的 範本
](#eb-ge-cfn-template)
+ [

## CloudWatch 警示範本屬性
](#eb-ge-cfn-cw-alarm-definitions)
+ [

## 路由 53 運作狀態檢查範本屬性
](#eb-ge-cfn-health-check-definitions)

## CloudFormation 用於定義 Route 53 運作狀態檢查的 範本
<a name="eb-ge-cfn-template"></a>

使用下列範本來定義 Route 53 運作狀態檢查。

```
Description: |-
  Global endpoints health check that will fail when the average Amazon EventBridge 
  latency is above 30 seconds for a duration of 5 minutes. Note, missing data will 
  cause the health check to fail, so if you only send events intermittently, consider 
  changing the heath check to use a longer evaluation period or instead treat missing 
  data as 'missing' instead of 'breaching'.

Metadata:
  AWS::CloudFormation::Interface:
    ParameterGroups: 
      - Label: 
          default: "Global endpoint health check alarm configuration"
        Parameters:
          - HealthCheckName
          - HighLatencyAlarmPeriod
          - MinimumEvaluationPeriod
          - MinimumThreshold
          - TreatMissingDataAs
    ParameterLabels:
      HealthCheckName:
        default: Health check name
      HighLatencyAlarmPeriod:
        default: High latency alarm period
      MinimumEvaluationPeriod:
        default: Minimum evaluation period
      MinimumThreshold:
        default: Minimum threshold
      TreatMissingDataAs:
        default: Treat missing data as

Parameters:
  HealthCheckName:
    Description: Name of the health check
    Type: String
    Default: LatencyFailuresHealthCheck
  HighLatencyAlarmPeriod:
    Description: The period, in seconds, over which the statistic is applied. Valid values are 10, 30, 60, and any multiple of 60.
    MinValue: 10
    Type: Number
    Default: 60
  MinimumEvaluationPeriod:
    Description: The number of periods over which data is compared to the specified threshold. You must have at least one evaluation period.
    MinValue: 1
    Type: Number
    Default: 5
  MinimumThreshold:
    Description: The value to compare with the specified statistic.
    Type: Number
    Default: 30000
  TreatMissingDataAs:
    Description: Sets how this alarm is to handle missing data points.
    Type: String
    AllowedValues:
      - breaching
      - notBreaching
      - ignore
      - missing
    Default: breaching  

Mappings:
  "InsufficientDataMap":
    "missing":
      "HCConfig": "LastKnownStatus"
    "breaching":
      "HCConfig": "Unhealthy"  

Resources:
  HighLatencyAlarm:
      Type: AWS::CloudWatch::Alarm
      Properties:
        AlarmDescription: High Latency in Amazon EventBridge
        MetricName: IngestionToInvocationStartLatency
        Namespace: AWS/Events
        Statistic: Average
        Period: !Ref HighLatencyAlarmPeriod
        EvaluationPeriods: !Ref MinimumEvaluationPeriod
        Threshold: !Ref MinimumThreshold
        ComparisonOperator: GreaterThanThreshold
        TreatMissingData: !Ref TreatMissingDataAs

  LatencyHealthCheck:
      Type: AWS::Route53::HealthCheck
      Properties:
        HealthCheckTags:
          - Key: Name
            Value: !Ref HealthCheckName
        HealthCheckConfig:
          Type: CLOUDWATCH_METRIC
          AlarmIdentifier:
            Name:
              Ref: HighLatencyAlarm
            Region: !Ref AWS::Region
          InsufficientDataHealthStatus: !FindInMap [InsufficientDataMap, !Ref TreatMissingDataAs, HCConfig]

Outputs:
  HealthCheckId:
    Description: The identifier that Amazon Route 53 assigned to the health check when you created it.
    Value: !GetAtt LatencyHealthCheck.HealthCheckId
```

事件 ID 可能會隨 API 呼叫而變更，因此跨區域的事件關聯需要您具有不可變的唯一識別碼。消費者也應該考慮等冪性的設計。如此一來，如果您要複製事件，或從封存中重新播放事件，兩個區域中處理的事件就不會產生任何副作用。

## CloudWatch 警示範本屬性
<a name="eb-ge-cfn-cw-alarm-definitions"></a>

**注意**  
針對所有 **editable** 欄位，請考慮每秒輸送量。如果您只是間歇性地傳送事件，請考慮將健康檢查變更為使用較長的評估期間，或者改為將遺失的資料視為 `missing` 而非 `breaching`。

下列屬性用於範本的 CloudWatch 警示區段：


| 指標 | 描述 | 
| --- | --- | 
|  `AlarmDescription`  |  警示的說明。 預設：**High Latency in Amazon EventBridge**  | 
|  `MetricName`  |  與警示相關聯的指標名稱。這對以指標為基礎的警示是必要的。針對以數學運算式為基礎的警示，您要改用 `Metrics`，而且不能指定 `MetricName`。 預設值：IngestionToInvocationStartLatency  | 
|  `Namespace`  |  與警示相關聯之指標的命名空間。這對以指標為基礎的警示是必要的。針對以數學運算式為基礎的警示，您不能指定 `Namespace`，要改用 `Metrics`。 預設：`AWS/Events`  | 
|  `Statistic`  |  除百分位數外，與警示相關聯的指標統計。 預設值：平均值  | 
|  `Period`  |  套用統計資料的期間 (以秒為單位)。這對以指標為基礎的警示是必要的。有效值為 10、30、60，以及 60 的任何倍數。 預設：**60**  | 
|  `EvaluationPeriods`  |  執行資料和指定閾值比較作業的週期。如果您設定的警示需連續違反數個資料點才能觸發警示，則此值會指定該數目。如果您要設定「N 個中有 M 個」的警示，則此值為 N，且 `DatapointsToAlarm` 為 M。 預設：**5**  | 
|  `Threshold`  |  要與指定統計資料比較的值。 預設：**30,000**  | 
|  `ComparisonOperator`  |  與指定的統計資料和閾值比較時，要使用的算術操作。指定的統計值會作為第一個運算元使用。 預設：`GreaterThanThreshold`  | 
|  `TreatMissingData`  |  設定此警示處理缺失資料點的方式。 有效值：`breaching`、`notBreaching`、`ignore` 和 `missing` 預設：`breaching`  | 

## 路由 53 運作狀態檢查範本屬性
<a name="eb-ge-cfn-health-check-definitions"></a>

**注意**  
針對所有 **editable** 欄位，請考慮每秒輸送量。如果您只是間歇性地傳送事件，請考慮將健康檢查變更為使用較長的評估期間，或者改為將遺失的資料視為 `missing` 而非 `breaching`。

下列屬性用於範本的 Route 53 運作狀態檢查區段：


| 指標 | 描述 | 
| --- | --- | 
|  `HealthCheckName`  |  運作狀態檢查的名稱。 預設：**LatencyFailuresHealthCheck**  | 
|  `InsufficientDataHealthStatus`  |  當 CloudWatch 用來判斷警示狀態的指標資料不足時，您想要 Amazon Route 53 指派給運作狀態檢查的狀態： 有效值： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/eventbridge/latest/userguide/eb-ge-cfn.html) 預設值：狀態不良 此欄位會根據對 `TreatMissingData` 欄位的輸入進行更新。如果設定 `TreatingMissingData` 為 `Missing`，則會將其更新為 `LastKnownStatus`。如果 `TreatingMissingData` 設定為 `Breaching`，則會將其更新為 `Unhealthy`。  | 

# 設定 Amazon EventBridge 事件匯流排的日誌
<a name="eb-event-bus-logs"></a>

您可以設定 EventBridge 傳送日誌，詳細說明事件匯流排如何處理事件，以協助故障診斷和偵錯。

您可以選擇下列 AWS 服務做為 EventBridge 交付指定事件匯流排日誌的日誌*目的地*：
+ Amazon CloudWatch Logs

  EventBridge 會將日誌交付至指定的 CloudWatch Logs 日誌群組。

  CloudWatch Logs 可讓您將您使用的所有系統、應用程式和 AWS 服務的日誌，集中在可高度擴展的單一服務中。如需詳細資訊，請參閱《Amazon CloudWatch Logs 使用者指南》**中的[使用日誌群組和日誌串流](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)。
+ Amazon Data Firehose 

  EventBridge 會將日誌交付至 Firehose 交付串流。

  Amazon Data Firehose 是一項全受管服務，可將即時串流資料交付至特定 AWS 服務等目的地，以及任何自訂 HTTP 端點或受支援第三方服務供應商擁有的 HTTP 端點。如需詳細資訊，請參閱[《Amazon Data Firehose 使用者指南》中的建立 Amazon Data Firehose 交付串流](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html)。 **
+ Amazon S3 

  EventBridge 會將日誌做為 Amazon S3 物件傳送到指定的儲存貯體。

  Amazon S3 是一項物件儲存服務，提供領先業界的可擴展性、資料可用性、安全性和效能。如需詳細資訊，請參閱《Amazon Simple Storage Service 使用者指南》**中的 Amazon S3 中的[上傳、下載和使用 Amazon S3 中的物件](https://docs.aws.amazon.com/AmazonS3/latest/userguide/uploading-downloading-objects.html)。

## 記錄對事件匯流排的運作方式
<a name="eb-event-logs-overview"></a>

EventBridge 會為下列項目產生日誌：
+ 符合事件匯流排上規則的任何 AWS 服務事件
+ 下列方法傳遞的任何事件，無論事件是否成功擷取或符合任何規則：
  + 來自[合作夥伴事件來源的事件](eb-saas.md)
  + [從封存重播](eb-archive.md)的事件
  + 透過 傳送至匯流排的事件 [`PutEvents`](eb-putevents.md)

EventBridge 不會記錄僅符合[受管規則](eb-rules.md#eb-rules-managed)的事件。

傳送至每個所選日誌目的地的日誌資料相同。

您可以透過下列方式自訂 EventBridge 傳送至所選目的地的日誌：
+ 您可以指定*日誌層級*，這會決定 EventBridge 將日誌傳送至所選目的地的步驟。如需詳細資訊，請參閱[指定事件匯流排日誌層級](#eb-event-bus-logs-level)。
+ 您可以指定 EventBridge 在相關時是否包含更精細的資訊，包括：
  + 事件詳細資訊
  + 目標輸入資訊
  + 目標請求資訊

  如需詳細資訊，請參閱[在事件匯流排日誌中包含詳細資訊](#eb-event-logs-data)。

### 日誌交付考量
<a name="eb-event-logs-delivery"></a>

當您設定事件匯流排的記錄時，請記住下列考量事項：
+ 事件匯流排日誌記錄會盡最大努力交付。大多數對事件匯流排的請求已正確設定為在交付的日誌記錄中記錄結果。不保證事件匯流排記錄的完整性和及時性。
+ 在某些情況下，交付事件匯流排日誌記錄本身會產生事件，然後傳送至 EventBridge，這可能會導致日誌記錄交付中斷。因此，EventBridge 不會記錄下列事件：
  + AWS KMS `[Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)` 當使用客戶受管金鑰加密的日誌記錄傳送到日誌目的地時，產生的 和 `[GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)`事件。
  + `[PutRecordBatch](https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html)` Firehose 中由交付事件匯流排日誌產生的事件。
+ 對於 S3 日誌目的地，不建議指定已啟用 [ EventBridge 事件通知的](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-event-notifications-eventbridge.html)目的地儲存貯體，因為這可能會導致日誌交付中斷。

### 記錄加密
<a name="eb-event-logs-encryption"></a>

傳送日誌時，EventBridge 會使用為事件匯流排指定的 KMS 金鑰來加密每個日誌記錄的 `detail`和 `error`區段。交付後，記錄會解密，然後使用為日誌目的地指定的 KMS 金鑰重新加密。

如需詳細資訊，請參閱[加密事件匯流排日誌](encryption-bus-logs.md)。

### 指定事件匯流排記錄許可
<a name="eb-event-logs-permission"></a>

若要從事件匯流排啟用記錄，您必須授予 EventBridge 從該匯流排傳送日誌的許可。新增將 **AllowVendedLogDeliveryForResource** 授予事件匯流排的政策。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ServiceLevelAccessForLogDelivery",
            "Effect": "Allow",
            "Action": [
                "events:AllowVendedLogDeliveryForResource"
            ],
            "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/my-event-bus*"
        }
    ]
}
```

------

如需詳細資訊，請參閱《*CloudWatch Logs 使用者指南*》中的[服務特定許可](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-vended-logs-permissions)。

## 指定事件匯流排日誌層級
<a name="eb-event-bus-logs-level"></a>

您可以指定 EventBridge 記錄到所選日誌目的地的事件處理步驟類型。

從下列詳細資訊層級中選擇，以包含在日誌中。日誌層級會套用至為事件匯流排指定的所有日誌目的地。每個日誌層級都包含先前日誌層級的步驟。
+ **OFF** – EventBridge 不會傳送任何日誌。這是預設值。
+ **錯誤** – EventBridge 會傳送與事件處理和目標交付期間產生的錯誤相關的任何日誌。
+ **INFO** – EventBridge 會傳送與錯誤相關的任何日誌，以及在事件處理期間執行的主要步驟。
+ **TRACE** – EventBridge 會傳送事件處理中所有步驟期間產生的任何日誌。

下表列出每個日誌層級中包含的事件處理步驟。


| 步驟 | TRACE | INFO | ERROR | OFF | 
| --- | --- | --- | --- | --- | 
|  擷取的事件  | x | x |  |  | 
|  事件擷取失敗  | x | x | x |  | 
|  已接收的事件  | x |  |  |  | 
|  已開始調用嘗試  | x |  |  |  | 
|  呼叫嘗試永久失敗  | x | x | x |  | 
|  呼叫嘗試可重試失敗  | x | x | x |  | 
|  調用嘗試成功  | x |  |  |  | 
|  調用嘗試已調節  | x | x | x |  | 
|  調用 DLQ  | x | x | x |  | 
|  呼叫失敗  | x | x | x |  | 
|  調用已開始  | x | x |  |  | 
|  調用成功  | x | x |  |  | 
|  調用調節已啟動  | x | x | x |  | 
|  沒有相符的規則  | x | x |  |  | 
|  規則相符   | x | x |  |  | 
|  規則比對已開始   | x |  |  |  | 

## 在事件匯流排日誌中包含詳細資訊
<a name="eb-event-logs-data"></a>

您可以指定 讓 EventBridge 在其產生的日誌中包含更精細的資訊。此資料對於故障診斷和偵錯非常有用。如果您選取此選項，EventBridge 會將此資料包含在所有指定日誌目的地的相關記錄中。

詳細資訊包括下列欄位：
+ `event_detail`：事件本身的詳細資訊。
+ `target_input`：EventBridge 傳送至目標的請求。
+ `target_properties`: 

## 截斷事件匯流排日誌中的資料
<a name="eb-event-logs-data-truncation"></a>

由於日誌目的地限制，EventBridge 會將日誌記錄限制為 1 MB。如果日誌記錄超過此限制，EventBridge 會依下列順序移除下列欄位來截斷記錄：
+ `target_input`
+ `target_properties`
+ `target_response_body`

如有必要，EventBridge 會從下列日誌記錄類型中移除 `event_detail` 欄位：
+ `EVENT_RECEIVED`
+ `EVENT_INGESTED`
+ `EVENT_INGESTED_FAILED`
+ `RULE_MATCH_STARTED`

如果需要截斷，EventBridge 會移除整個欄位。

如果 EventBridge 截斷事件中的欄位，則該`dropped_fields`欄位會包含已移除的資料欄位清單。

## 事件匯流排日誌中的錯誤報告
<a name="eb-event-logs-errors"></a>

EventBridge 也會在代表失敗狀態的步驟中，在可用的情況下包含錯誤資料。這些步驟包括：
+ `EVENT_INGEST_FAILURE`
+ `INVOCATION_THROTTLE_START`
+ `INVOCATION_ATTEMPT_THROTTLE`
+ `INVOCATION_ATTEMPT_RETRYABLE_FAILURE`
+ `INVOCATION_ATTEMPT_PERMANENT_FAILURE`
+ `INVOCATION_FAILURE`
+ `INVOCATION_DLQ`

# 事件匯流排的 Amazon EventBridge 日誌
<a name="eb-event-logs-execution-steps"></a>

了解 EventBridge 如何處理事件可協助您使用日誌來疑難排解或偵錯事件匯流排問題。

如果啟用記錄，EventBridge 會在處理事件時產生多個日誌記錄。

以下是 EventBridge 在處理事件時執行的主要步驟：
+ 事件會傳送至事件匯流排

  EventBridge 會為從合作夥伴來源傳送、從封存重播或使用 傳送的事件產生日誌`PutEvents`，無論它們是否符合任何規則。
+ EventBridge 會判斷事件是否符合匯流排上的任何規則。

  如果事件符合一或多個規則，EventBridge 會繼續進行下一個步驟。

  如果 AWS 事件不符合任何規則，EventBridge 會捨棄事件，而不會產生任何日誌。
+ EventBridge 會叫用目標。

  EventBridge 會視需要重試叫用目標，直到：
  + 事件已成功交付。
  + 事件交付失敗，例如重試政策過期或永久失敗。

    如果交付失敗，如果指定無效字母佇列 (DLQ)，EventBridge 會將事件傳送至無效字母佇列，如果未指定 DLQ，則會捨棄事件。

下圖顯示事件處理流程的詳細檢視，並代表所有可能的步驟，以及每個步驟的日誌層級。

如需步驟的完整清單，請參閱 [指定日誌層級](eb-event-bus-logs.md#eb-event-bus-logs-level)。

![\[EventBridge 會繼續進行步驟，以處理傳送至匯流排的每個事件。\]](http://docs.aws.amazon.com/zh_tw/eventbridge/latest/userguide/images/bus_logging_eventbridge_conceptual.svg)


# Amazon EventBridge 事件匯流排日誌結構描述
<a name="eb-event-logs-schema"></a>

下列參考詳細說明 EventBridge 事件匯流排日誌記錄的結構描述。每個記錄代表 EventBridge 執行處理特定事件的步驟。

如需詳細資訊，請參閱[記錄事件匯流排 ](eb-event-bus-logs.md)。

```
{    
    "resource\$1arn": "arn:aws:events:region:account:event-bus/bus-name",
    "request\$1id": "guid", 
    "event\$1id": "guid", 
    "invocation\$1id": "guid",
    "message\$1timestamp\$1ms": "date_time",    
    "message\$1type": "step",  
    "log\$1level": "TRACE | INFO | ERROR",
    "details": {
      },
    "error": {  
        "http\$1status\$1code": code,  
        "error\$1message": "error_message",  
        "aws\$1service": "service_name",  
        "request\$1id": "service_request_id"  
    }  
}
```

**resource\$1arn**  <a name="event-log-schema-resource-arn"></a>
事件匯流排的 Amazon Resource Name (ARN)。

**request\$1id**  <a name="event-log-schema-request-id"></a>
請求的 ID。

**event\$1id**  <a name="event-log-schema-event-id"></a>
正在處理的事件 ID。

**invocation\$1id**  <a name="event-log-schema-invocation-id"></a>
事件的調用 ID。

**message\$1timestamp\$1ms**  <a name="event-log-schema-timestamp"></a>
發出日誌事件的日期和時間。  
單位：毫秒。

**message\$1type**  <a name="event-log-schema-message-type"></a>
產生日誌記錄的事件處理步驟。  
如需 EventBridge 在處理事件時所執行步驟的詳細資訊，請參閱 [事件匯流排的 Amazon EventBridge 日誌](eb-event-logs-execution-steps.md)。  
*有效值*：  
+ `EVENT_INGEST_FAILURE`
+ `EVENT_INGEST_SUCCESS`
+ `EVENT_RECEIPT`
+ `INVOCATION_ATTEMPT_PERMANENT_FAILURE`
+ `INVOCATION_ATTEMPT_RETRYABLE_FAILURE`
+ `INVOCATION_ATTEMPT_START`
+ `INVOCATION_ATTEMPT_SUCCESS`
+ `INVOCATION_ATTEMPT_THROTTLE`
+ `INVOCATION_DLQ`
+ `INVOCATION_FAILURE`
+ `INVOCATION_START`
+ `INVOCATION_SUCCESS`
+ `INVOCATION_THROTTLE_START`
+ `NO_STANDARD_RULES_MATCHED`
+ `RULE_MATCH`
+ `RULE_MATCH_START`

**log\$1level**  <a name="event-log-schema-loglevel"></a>
為事件匯流排日誌指定的詳細資訊層級。  
*有效值*：`ERROR` \$1 `INFO` \$1 `TRACE`  
如需詳細資訊，請參閱[指定事件匯流排日誌層級](eb-event-bus-logs.md#eb-event-bus-logs-level)。

**詳細資訊**  <a name="event-log-schema-details"></a>
根據步驟詳細資訊類型，包含步驟詳細資訊。  
下列訊息類型會傳回下列欄位：  
+ `EVENT_INGEST_SUCCESS`
+ `EVENT_INGEST_FAILURE`
+ `EVENT_RECEIPT`
+ `RULE_MATCH_START`

```
{
  "caller_account_id": "account_id",
  "source_time_ms": date_time,
  "source": "source",
  "detail_type": " type",
  "resources": [],
  "event_detail": "{}"
}
```
下列訊息類型會傳回下列欄位：  
+ `RULE_MATCH`

```
{
  "rule_arn": "ARN",
  "target_arns": [
    "ARN"
  ],
  "invocation_ids": [
    "guid"
  ]
}
```
下列訊息類型會傳回下列欄位：  
+ `INVOCATION_ATTEMPT_START`
+ `INVOCATION_START`
+ `INVOCATION_THROTTLE_START`

```
{
  "rule_arn": "ARN",
  "role_arn": "ARN",
  "target_arn": "ARN",
  "attempt_count": Integer,
  "target_input": "string",
  "target_properties": "string"
}
```
下列訊息類型會傳回下列欄位：  
+ `INVOCATION_DLQ`
+ `INVOCATION_FAILURE`
+ `INVOCATION_SUCCESS`

```
{
  "rule_arn": "ARN",
  "role_arn": "ARN",
  "target_arn": "ARN",
  "target_input": "string",
  "target_properties": "string",
  "total_attempts": Integer,
  "final_invocation_status": "status",
  "ingestion_to_start_latency_ms": Integer,
  "ingestion_to_complete_latency_ms": Integer,
  "ingestion_to_success_latency_ms": Integer,
  "target_duration_ms": Integer,
  "target_response_body": "string"
}
```
`ingestion_to_start_latency_ms` 和 `ingestion_to_complete_latency_ms`僅包含在第一次調用嘗試中。只有成功調用時才會包含 `ingestion_to_success_latency_ms` 欄位。  
下列訊息類型會傳回下列欄位：  
+ `INVOCATION_ATTEMPT_PERMANENT_FAILURE`
+ `INVOCATION_ATTEMPT_RETRYABLE_FAILURE`
+ `INVOCATION_ATTEMPT_SUCCESS`
+ `INVOCATION_ATTEMPT_THROTTLE`

```
{
  "rule_arn": "ARN",
  "role_arn": "ARN",
  "target_arn": "ARN",
  "attempt_type": "FIRST | THROTTLE | RETRY",
  "attempt_count": Integer,
  "invocation_status": "status",
  "target_duration_ms": Integer,
  "target_response_body": "string"
}
```

**dropped\$1fields**  <a name="event-log-schema-dropped_fields"></a>
EventBridge 已截斷的任何資料欄位清單，以保持記錄低於 1 MB 大小限制。  
如果 EventBridge 已截斷任何詳細資訊欄位，則不會包含此欄位。  
如需詳細資訊，請參閱[截斷事件匯流排日誌中的資料](eb-event-bus-logs.md#eb-event-logs-data-truncation)。

**error**  <a name="event-log-schema-error"></a>
包含此步驟期間產生之任何錯誤的資訊。對於錯誤，EV 一律包含下列欄位：  
+ `error_message`
+ `aws_service`
如果可用，還有下列欄位：  
+ `request_id`
+ `http_status_code`
如果此步驟期間未產生錯誤，EventBridge 不會在日誌記錄中包含此欄位。    
**http\$1status\$1code**  <a name="event-log-schema-http-status-code"></a>
被呼叫的服務傳回的 HTTP 狀態碼。  
**error\$1message**  <a name="event-log-schema-message"></a>
呼叫的服務傳回的錯誤訊息。  
**aws\$1service**  <a name="event-log-schema-aws-service"></a>
被呼叫的服務的名稱。  
**request\$1id**  <a name="event-log-schema-error-request-id"></a>
被呼叫的服務發出此請求的 ID。