

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

# 為 Amazon S3 來源建立 EventBridge 規則 （主控台）
<a name="create-cloudtrail-S3-source-console"></a>

在 EventBridge 中設定規則之前，您必須建立 AWS CloudTrail 追蹤。如需詳細資訊，請參閱[在主控台中建立線索](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-a-trail-using-the-console-first-time.html)。

**重要**  
如果您使用主控台來建立或編輯管道，則會為您建立 EventBridge 規則和 AWS CloudTrail 線索。

**建立追蹤記錄**

1. 開啟 AWS CloudTrail 主控台。

1. 在導覽窗格中，選擇 **Trails** (追蹤記錄)。

1. 選擇 **Create trail** (建立追蹤)。對於 **Trail name (線索名稱)**，輸入您的線索名稱。

1. 在 **Storage location (儲存位置)** 下，建立或指定要用來存放日誌檔案的儲存貯體。根據預設，所有 Amazon S3 儲存貯體和物件皆為私有。只有資源擁有者 （建立儲存貯體 AWS 的帳戶） 可以存取儲存貯體及其物件。儲存貯體必須具有允許 AWS CloudTrail 許可存取儲存貯體中物件的資源政策。

1. 在**追蹤日誌儲存貯體和資料夾**下，指定 Amazon S3 儲存貯體和物件字首 （資料夾名稱），以記錄資料夾中所有物件的資料事件。對於每個追蹤，您最多可以新增 250 個 Amazon S3 物件。完成所需的加密金鑰資訊，然後選擇**下一步**。

1. 針對**事件類型**，選擇**管理事件**。

1. 針對**管理事件**，選擇**寫入**。線索會在指定的儲存貯體和字首上記錄 Amazon S3 物件層級 API 活動 （例如 `GetObject`和 `PutObject`)。

1. 選擇 **Write (寫入)**。

1. 如果您對線索感到滿意，請選擇**建立線索**。

**使用 Amazon S3 來源建立以管道為目標的 EventBridge 規則**

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

1. 在導覽窗格中，選擇**規則**。保持選取預設匯流排，或選擇事件匯流排。選擇**建立規則**。

1. 在**名稱**中，輸入規則的名稱。

1. 在**規則類型**下，選擇**具有事件模式的規則**。選擇**下一步**。

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

1. 在**範例事件類型**下，選擇**AWS 事件**。

1. 在**範例事件**中，輸入 S3 作為要篩選的關鍵字。**AWS 透過 CloudTrail 選擇 API 呼叫**。

1. 在**建立方法**下，選擇**客戶模式 (JSON 編輯器）**。

   貼上下方提供的事件模式。請務必新增儲存貯體名稱和 S3 物件金鑰 （或金鑰名稱），以將儲存貯體中的物件唯一識別為 `requestParameters`。在此範例中，會為名為 的儲存貯體`amzn-s3-demo-source-bucket`和 的物件索引鍵建立規則`my-files.zip`。當您使用 **​Edit (編輯)**​ 視窗指定資源時，您的規則將更新為使用自訂事件模式。

   以下是用於複製貼上的範例事件模式：

   ```
   {
       "source": [
           "aws.s3"
       ],
       "detail-type": [
           "AWS API Call via CloudTrail"
       ],
       "detail": {
           "eventSource": [
               "s3.amazonaws.com"
           ],
           "eventName": [
               "CopyObject",
               "CompleteMultipartUpload",
               "PutObject"
           ],
           "requestParameters": {
               "bucketName": [
                   "amzn-s3-demo-source-bucket"
               ],
               "key": [
                   "my-files.zip"
               ]
           }
       }
   }
   ```

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

1. 在**目標類型**中，選擇 **AWS 服務**。

1. 在**選取目標中**，選擇 **CodePipeline**。在**管道 ARN** 中，輸入管道 ARN，以便此規則啟動管道。
**注意**  
若要取得管道 ARN，請執行 **get-pipeline** 命令。管道 ARN 會出現在輸出中。其建構格式如下：  
arn：aws：codepipeline：*region*：*account*：*pipeline-name*  
範例管道 ARN：  
arn:aws:codepipeline:us-east-2:80398EXAMPLE:MyFirstPipeline 

1. 若要建立或指定 IAM 服務角色，以授予 EventBridge 調用與 EventBridge 規則相關聯目標的許可 （在此情況下，目標是 CodePipeline)：
   + 選擇**為此特定資源建立新角色**，以建立將 EventBridge 許可授予您啟動管道執行的服務角色。
   + 選擇**使用現有角色**來輸入服務角色，為 EventBridge 授予啟動管道執行的許可。

1. （選用） 若要使用特定影像 ID 指定來源覆寫，請使用輸入轉換器將資料作為 JSON 參數傳遞。您也可以使用輸入轉換器來傳遞管道變數。
   + 展開 **Additional settings** (其他設定)。

     在**設定目標輸入**下，選擇**設定輸入轉換器**。

     在對話方塊中，選擇**輸入我自己的**。在**輸入路徑**方塊中，輸入下列鍵值對。

     ```
     {"revisionValue": "$.detail.object.version-id"}
     ```
   + 在**範本**方塊中，輸入下列鍵/值對。

     ```
                                     
                                     {
         "sourceRevisions": [
             {
                 "actionName": "Source",
                 "revisionType": "S3_OBJECT_VERSION_ID",
                 "revisionValue": "<revisionValue>"
             }
         ],
          "variables": [
             {
                 "name": "Variable_Name",
                 "value": "Variable_Value"
             }
         ]
     }
     ```
   + 選擇**確認**。

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

1. 在**標籤**頁面上，選擇**下一步**。

1. 在**檢閱和建立**頁面上，檢閱規則組態。如果您對此規則感到滿意，請選擇 **Create rule (建立規則)**。