本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:使用記錄 Amazon S3 物件層級操作 EventBridge
您可以在 Amazon S3 儲存貯體上記錄物件層級API操作。在 Amazon 匹配這些事件之前,您必須使用AWS CloudTrail來設置和配置跟踪 EventBridge 以接收這些事件。
在本教學課程中,您會建立 CloudTrail 追蹤、建立AWS Lambda函數,然後在 EventBridge 主控台中建立規則,以呼叫該函數以回應 S3 資料事件。
步驟 1:設定您的 AWS CloudTrail 追蹤
若要將 S3 儲存貯體的資料事件記錄到 AWS CloudTrail 和 EventBridge,請先建立追蹤。追蹤會擷取帳戶中的API呼叫和相關事件,然後將日誌檔傳遞到您指定的 S3 儲存貯體。您可以更新現有的追蹤或建立新的追蹤。
如需詳細資訊,請參閱《AWS CloudTrail 使用者指南》中的資料事件。
若要建立追蹤記錄
在開啟 CloudTrail 主控台https://console.aws.amazon.com/cloudtrail/
。 -
選擇 Trails (追蹤)、Create trail (建立追蹤)。
-
在 Trail name (追蹤名稱) 中輸入追蹤的名稱。
-
在儲存位置,建立新的 S3 儲存貯體。
-
對於AWS KMS 別名,請輸入KMS金鑰的別名。
-
選擇下一步。
-
針對事件類型,選擇資料事件
-
針對資料事件,執行下列其中一項操作:
-
若要記錄儲存貯體中所有 Amazon S3 物件的資料事件,請指定 S3 儲存貯體和空的前綴。當事件發生在該儲存貯體中的物件上時,追蹤即會處理並記錄此事件。
-
若要記錄儲存貯體中特定 Amazon S3 物件的資料事件,請指定 S3 儲存貯體和物件字首。當事件發生在該儲存貯體的物件上,而此物件是以指定的前綴開頭,線索就會處理並記錄此事件。
-
-
針對每個資源,選擇是否要記錄讀取事件、寫入事件或兩者。
-
選擇下一步。
-
選擇建立追蹤。
步驟 2:建立 AWS Lambda 函數
建立 Lambda 函數以記錄 S3 儲存貯體的資料事件。
建立 Lambda 函式
在開啟 AWS Lambda 主控台https://console.aws.amazon.com/lambda/
。 -
選擇建立函數。
-
選擇從頭開始撰寫。
-
輸入 Lambda 函數的名稱和描述。例如,將函數命名為
LogS3DataEvents
。 -
將其餘選項保留為預設值並選擇建立函數。
-
在函數頁面的程式碼標籤上,按兩下 index.js。
-
將現有的程式碼取代為以下程式碼。
'use strict'; exports.handler = (event, context, callback) => { console.log('LogS3DataEvents'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
-
選擇部署。
步驟 3:建立規則
建立規則來執行您在步驟 2 中建立的 Lambda 函數。執行此規則旨在回應 Amazon S3 資料事件。
建立規則
在打開 Amazon EventBridge 控制台https://console.aws.amazon.com/events/
。 -
在導覽窗格中,選擇規則。
-
選擇建立規則。
-
輸入規則的名稱和描述。例如,命名規則
TestRule
-
針對事件匯流排,選擇要與此規則建立關聯的事件匯流排。如果您想要此規則匹配來自您的帳戶的事件,請選取預設值。當您帳戶中的 AWS 服務發出事件時,一律會前往您帳戶的預設事件匯流排。
-
針對規則類型,選擇具有事件模式的規則。
-
選擇下一步。
-
在事件來源欄位中,選擇 AWS 服務。
-
針對事件模式,請執行下列動作:
-
在事件來源下,從下拉式清單中,選取 Simple Storage Service (S3)。
-
對於「事件類型」,請從下拉式清單 CloudTrail中選取「物件層級API呼叫」。
-
選擇 [特定作業],然後選擇PutObject。
-
在預設情況下,規則符合區域中所有儲存貯體的資料事件。為了符合特定儲存貯體的資料事件,選擇以名稱指定儲存貯體,然後輸入一或多個儲存貯體。
-
-
選擇下一步。
-
在目標類型欄位中,選擇 AWS 服務。
-
針對選取目標,請從下拉式清單中選擇 Lambda 函數。
-
針對函數,選取您在步驟 1 建立的
LogS3DataEvents
Lambda 函數。 -
選擇下一步。
-
選擇下一步。
-
檢閱規則的詳細資訊,然後選擇建立規則。
步驟 4:測試 規則
若要測試規則,請將物件放入您的 S3 儲存貯體。您可以驗證您的 Lambda 函數是否被叫用。
檢視 Lambda 函數的日誌
-
在開啟 CloudWatch 主控台https://console.aws.amazon.com/cloudwatch/
。 -
在導覽窗格中,選擇日誌。
-
為 Lambda 函數 (
/aws/lambda/
) 選取日誌群組名稱。function-name
-
選取日誌串流的名稱以檢視函數為您啟動的執行個體所提供的資料。
您也可以在為追蹤指定的 S3 儲存貯體中檢查 CloudTrail 日誌。若要取得更多資訊,請參閱《AWS CloudTrail 使用指南》中的〈取得和檢視 CloudTrail 記錄檔〉。
步驟 5:確認成功
如果您在 CloudWatch 記錄中看到 Lambda 事件,表示您已成功完成本教學課程。如果事件不在您的 CloudWatch 記錄中,請驗證規則是否已成功建立以開始疑難排解,如果規則看起來正確,請驗證 Lambda 函數的程式碼是否正確。
步驟 6:清除您的資源
除非您想要保留為此教學課程建立的資源,否則您現在便可刪除。刪除不再使用的 AWS 資源,即可避免 AWS 帳戶不必要的費用。
若要刪除 EventBridge 規則
-
開啟主 EventBridge 控台的 [規則] 頁面
。 -
選取您建立的規則。
-
選擇刪除。
-
選擇刪除。
若要刪除 Lambda 函數
-
開啟 Lambda 主控台中的函數頁面
。 -
選取您建立的函數。
-
選擇 動作、刪除。
-
選擇 刪除。
若要刪除系 CloudTrail 統線
-
開啟主 CloudTrail 控台的 [追蹤] 頁面
。 -
選取您建立的追蹤。
-
選擇刪除。
-
選擇刪除。