教學課程:建立對 AWS API呼叫做出反應的 EventBridge 規則 CloudTrail - Amazon EventBridge

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

教學課程:建立對 AWS API呼叫做出反應的 EventBridge 規則 CloudTrail

您可以使用 Amazon EventBridge 規則來回應由記錄的 AWS 服務所發出的API呼叫 AWS CloudTrail。

在本教學課程中,您會在 EventBridge 主控台中建立AWS CloudTrail追蹤、Lambda 函數和規則。此規則會在 Amazon EC2 執行個體停止時叫用 Lambda 函數。

步驟 1:建立 AWS CloudTrail 追蹤

如果您已設定追蹤,請跳到步驟 2。

若要建立追蹤記錄
  1. 在開啟 CloudTrail 主控台https://console.aws.amazon.com/cloudtrail/

  2. 選擇 Trails (追蹤)Create trail (建立追蹤)

  3. Trail name (追蹤名稱) 中輸入追蹤的名稱。

  4. 儲存位置建立新的 S3 儲存貯體

  5. 對於AWS KMS 別名,請輸入KMS金鑰的別名。

  6. 選擇下一步

  7. 選擇下一步

  8. 選擇建立追蹤

步驟 2:建立 AWS Lambda 函數

建立 Lambda 函數來記錄API呼叫事件。

建立 Lambda 函式
  1. 在開啟 AWS Lambda 主控台https://console.aws.amazon.com/lambda/

  2. 選擇建立函數

  3. 選擇從頭開始撰寫

  4. 輸入 Lambda 函數的名稱和描述。例如,將函數命名為 LogEC2StopInstance

  5. 將其餘選項保留為預設值並選擇建立函數

  6. 在函數頁面的程式碼標籤上,按兩下 index.js

  7. 將現有的程式碼取代為以下程式碼。

    'use strict'; exports.handler = (event, context, callback) => { console.log('LogEC2StopInstance'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
  8. 選擇部署

步驟 3:建立規則

建立規則以在停止 Amazon 執行個體時執行您在步驟 2 中建立的 Lambda 函EC2數。

建立規則
  1. 在打開 Amazon EventBridge 控制台https://console.aws.amazon.com/events/

  2. 在導覽窗格中,選擇規則

  3. 選擇建立規則

  4. 輸入規則的名稱和描述。例如,命名規則 TestRule

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

  6. 針對規則類型,選擇具有事件模式的規則

  7. 選擇下一步

  8. 事件來源欄位中,選擇 AWS 服務

  9. 針對事件模式,請執行下列動作:

    1. 對於事件來源,請EC2從下拉式清單中選取。

    2. 對於事件類型,從下拉式清單 CloudTrail中選取通AWS API話方式。

    3. 選擇特定動作並輸入 StopInstances

  10. 選擇下一步

  11. 目標類型欄位中,選擇 AWS 服務

  12. 針對選取目標,請從下拉式清單中選擇 Lambda 函數

  13. 函數中,選取您在步驟 1:建立 Lambda 函數 區段中建立的 Lambda 函數。在此範例中,選取 LogEC2StopInstance

  14. 選擇下一步

  15. 選擇下一步

  16. 檢閱規則的詳細資訊,然後選擇建立規則

步驟 4:測試規則

您可以使用 Amazon EC2 主控台停止 Amazon EC2 執行個體來測試規則。等待幾分鐘讓執行個體停止,然後在 CloudWatch主控台上檢查您的 AWS Lambda 指標,以確認您的函數是否執行。

停用執行個體以測試您的規則
  1. 在打開 Amazon EC2 控制台https://console.aws.amazon.com/ec2/

  2. 啟動執行個體。如需詳細資訊,請參閱 Amazon EC2 使用者指南的啟動執行個體

  3. 停止執行個體。如需詳細資訊,請參閱 Amazon EC2 使用者指南的停止和啟動執行個體

  4. 若要檢視 Lambda 函數的輸出,請執行下列動作:

    1. 在開啟 CloudWatch 主控台https://console.aws.amazon.com/cloudwatch/

    2. 在導覽窗格中,選擇日誌

    3. 為 Lambda 函數 (/aws/lambda/function-name) 選取日誌群組名稱。

    4. 選取日誌串流的名稱以檢視函數為您停止的執行個體提供的資料。

  5. (選用) 完成後,請終止已停止的執行個體。如需詳細資訊,請參閱 Amazon EC2 使用者指南的終止執行個體

步驟 5:確認成功

如果您在 CloudWatch 記錄中看到 Lambda 事件,表示您已成功完成本教學課程。如果事件不在您的 CloudWatch 記錄中,請驗證規則是否已成功建立以開始疑難排解,如果規則看起來正確,請驗證 Lambda 函數的程式碼是否正確。

步驟 6:清除您的資源

除非您想要保留為此教學課程建立的資源,否則您現在便可刪除。刪除不再使用的 AWS 資源,即可避免 AWS 帳戶不必要的費用。

若要刪除 EventBridge 規則
  1. 開啟主 EventBridge 控台的 [規則] 頁面

  2. 選取您建立的規則。

  3. 選擇刪除

  4. 選擇刪除

若要刪除 Lambda 函數
  1. 開啟 Lambda 主控台中的函數頁面

  2. 選取您建立的函數。

  3. 選擇 動作刪除

  4. 選擇 刪除

若要刪除系 CloudTrail 統線
  1. 開啟主 CloudTrail 控台的 [追蹤] 頁面

  2. 選取您建立的追蹤。

  3. 選擇刪除

  4. 選擇刪除