建立由 Amazon Aurora 事件觸發的規則 - Amazon Aurora

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

建立由 Amazon Aurora 事件觸發的規則

使用 Amazon EventBridge,您可以自動化 AWS 服務並回應系統事件,例如應用程式可用性問題或資源變更。

教學:使用 Amazon 記錄資料庫執行個體狀態變更 EventBridge

在本教學中,您會建立記錄 執行個體狀態變更的 AWS Lambda 函數。然後,您建立一個規則,在現有 RDS 資料庫執行個體的狀態變更時執行該函數。本教學假設您擁有可以暫時關閉的小型執行中測試執行個體。

重要

請勿在執行生產資料庫執行個體上執行本教學課程。

步驟 1:建立 AWS Lambda 函數

建立 Lambda 函數以記錄狀態變更事件。當您在建立規則時指定此函數。

建立 Lambda 函數
  1. 開啟主 AWS Lambda 控台,網址為 https://console.aws.amazon.com/lambda/

  2. 如果您是第一次使用 Lambda,將會看到歡迎頁面。選擇 Get Started Now (立即開始)。否則,請選擇 Create function (建立函數)

  3. 選擇 Author from scratch (從頭開始撰寫)。

  4. Create function (建立函數) 頁面上,執行下列動作:

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

    2. Runtime (執行時間) 中,選取 Node.js 16x

    3. 對於 Architecture (架構),選擇 x86_64

    4. 對於 Execution role (執行角色),執行下列任何一項:

      • 選擇 Create a new role with basic Lambda permissions (建立具備基本 Lambda 許可的新角色)

      • 針對 Existing role (現有角色),選擇 Use an existing role (使用現有的角色)。選擇您想使用的角色。

    5. 選擇建立函數

  5. RDS InstanceStateChange 頁面上,執行下列動作:

    1. Code source (程式碼來源) 中,選取 index.js

    2. index.js 窗格中,刪除現有的程式碼。

    3. 輸入下列程式碼︰

      console.log('Loading function'); exports.handler = async (event, context) => { console.log('Received event:', JSON.stringify(event)); };
    4. 選擇 Deploy (部署)

步驟 2:建立規則

建立規則,在您啟動 Amazon RDS 執行個體時,執行您的 Lambda 函數。

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

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

  3. 選擇建立規則

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

  5. 選擇 Rule with an event pattern (具有事件模式的規則),然後選擇 Next (下一步)。

  6. 對於事件來源,請選擇AWS 事件或 EventBridge 合作夥伴事件。

  7. 向下捲動到 Event pattern (事件模式) 區段中。

  8. Event source (事件來源),選擇 AWS 服務

  9. 對於 AWS Service (服務),選擇 Relational Database Service (RDS) (關聯式資料庫服務)。

  10. 對於 Event type (事件類型),選擇 RDS DB Instance Event (RDS 資料庫執行個體事件)。

  11. 保留預設事件模式。然後選擇下一步

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

  13. 對於 Select a target (選取目標),選擇 Lambda function (Lambda 函數)。

  14. 針對 Function (函數),選擇您建立的 Lambda 函數。然後選擇下一步

  15. Configure tags (設定標籤) 中,選擇 Next (下一步)。

  16. 檢閱規則中的步驟。然後,選擇 Create role (建立角色)。

步驟 3:測試規則

若要測試您的規則,請關閉 RDS 資料庫執行個體。等待幾分鐘讓執行個體關閉,驗證您的 Lambda 函數是否被叫用。

停用資料庫執行個體以測試您的規則
  1. 前往 https://console.aws.amazon.com/rds/,開啟 Amazon RDS 主控台。

  2. 停止 RDS 資料庫執行個體。

  3. https://console.aws.amazon.com/events/ 打開 Amazon EventBridge 控制台。

  4. 在導覽窗格中,選擇 Rules (規則),然後選擇您建立的規則名稱。

  5. 規則詳細資料中,選擇監控

    您將被重定向到 Amazon CloudWatch 控制台。如果您未重新導向,請按一下檢視中的測量結果 CloudWatch。

  6. All metrics (所有指標) 中,選擇您建立的規則名稱。

    該圖表應指示已叫用的規則。

  7. 在導覽窗格中,選擇 Log groups (日誌群組)。

  8. 選擇您的 Lambda 函數的日誌群組名稱 (/aws/lambda/function-name)。

  9. 選擇日誌串流名稱以檢視函數為您啟動的執行個體所提供的資料。您應該會看到類似以下接收的事件:

    { "version": "0", "id": "12a345b6-78c9-01d2-34e5-123f4ghi5j6k", "detail-type": "RDS DB Instance Event", "source": "aws.rds", "account": "111111111111", "time": "2021-03-19T19:34:09Z", "region": "us-east-1", "resources": [ "arn:aws:rds:us-east-1:111111111111:db:testdb" ], "detail": { "EventCategories": [ "notification" ], "SourceType": "DB_INSTANCE", "SourceArn": "arn:aws:rds:us-east-1:111111111111:db:testdb", "Date": "2021-03-19T19:34:09.293Z", "Message": "DB instance stopped", "SourceIdentifier": "testdb", "EventID": "RDS-EVENT-0087" } }

    如需更多 JSON 格式的 RDS 事件範例,請參閱 Aurora 事件概述 RDS

  10. (選用) 完成後,您可以開啟 Amazon RDS 主控台並啟用您停止的執行個體。