本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立由 Amazon Aurora 事件觸發的規則
使用 Amazon EventBridge,您可以自動化 AWS 服務並回應系統事件,例如應用程式可用性問題或資源變更。
教學:使用 Amazon 記錄資料庫執行個體狀態變更 EventBridge
在本教學中,您會建立記錄 執行個體狀態變更的 AWS Lambda 函數。然後,您建立一個規則,在現有 RDS 資料庫執行個體的狀態變更時執行該函數。本教學假設您擁有可以暫時關閉的小型執行中測試執行個體。
重要
請勿在執行生產資料庫執行個體上執行本教學課程。
步驟 1:建立 AWS Lambda 函數
建立 Lambda 函數以記錄狀態變更事件。當您在建立規則時指定此函數。
建立 Lambda 函數
開啟主 AWS Lambda 控台,網址為 https://console.aws.amazon.com/lambda/
。 -
如果您是第一次使用 Lambda,將會看到歡迎頁面。選擇 Get Started Now (立即開始)。否則,請選擇 Create function (建立函數)。
-
選擇 Author from scratch (從頭開始撰寫)。
-
在 Create function (建立函數) 頁面上,執行下列動作:
-
輸入 Lambda 函數的名稱和描述。例如,將函數命名為
RDSInstanceStateChange
。 -
在 Runtime (執行時間) 中,選取 Node.js 16x。
-
對於 Architecture (架構),選擇 x86_64。
-
對於 Execution role (執行角色),執行下列任何一項:
-
選擇 Create a new role with basic Lambda permissions (建立具備基本 Lambda 許可的新角色)。
-
針對 Existing role (現有角色),選擇 Use an existing role (使用現有的角色)。選擇您想使用的角色。
-
-
選擇建立函數。
-
-
在 RDS InstanceStateChange 頁面上,執行下列動作:
-
在 Code source (程式碼來源) 中,選取 index.js。
-
在 index.js 窗格中,刪除現有的程式碼。
-
輸入下列程式碼︰
console.log('Loading function'); exports.handler = async (event, context) => { console.log('Received event:', JSON.stringify(event)); };
-
選擇 Deploy (部署)。
-
步驟 2:建立規則
建立規則,在您啟動 Amazon RDS 執行個體時,執行您的 Lambda 函數。
若要建立 EventBridge 規則
在 https://console.aws.amazon.com/events/
打開 Amazon EventBridge 控制台。 -
在導覽窗格中,選擇規則。
-
選擇建立規則。
-
輸入規則的名稱和描述。例如,輸入
RDSInstanceStateChangeRule
。 -
選擇 Rule with an event pattern (具有事件模式的規則),然後選擇 Next (下一步)。
-
對於事件來源,請選擇AWS 事件或 EventBridge 合作夥伴事件。
-
向下捲動到 Event pattern (事件模式) 區段中。
-
在 Event source (事件來源),選擇 AWS 服務。
-
對於 AWS Service (服務),選擇 Relational Database Service (RDS) (關聯式資料庫服務)。
-
對於 Event type (事件類型),選擇 RDS DB Instance Event (RDS 資料庫執行個體事件)。
-
保留預設事件模式。然後選擇下一步。
-
在目標類型欄位中,選擇 AWS 服務。
-
對於 Select a target (選取目標),選擇 Lambda function (Lambda 函數)。
-
針對 Function (函數),選擇您建立的 Lambda 函數。然後選擇下一步。
-
在 Configure tags (設定標籤) 中,選擇 Next (下一步)。
-
檢閱規則中的步驟。然後,選擇 Create role (建立角色)。
步驟 3:測試規則
若要測試您的規則,請關閉 RDS 資料庫執行個體。等待幾分鐘讓執行個體關閉,驗證您的 Lambda 函數是否被叫用。
停用資料庫執行個體以測試您的規則
前往 https://console.aws.amazon.com/rds/
,開啟 Amazon RDS 主控台。 -
停止 RDS 資料庫執行個體。
在 https://console.aws.amazon.com/events/
打開 Amazon EventBridge 控制台。 -
在導覽窗格中,選擇 Rules (規則),然後選擇您建立的規則名稱。
-
在規則詳細資料中,選擇監控。
您將被重定向到 Amazon CloudWatch 控制台。如果您未重新導向,請按一下檢視中的測量結果 CloudWatch。
-
在 All metrics (所有指標) 中,選擇您建立的規則名稱。
該圖表應指示已叫用的規則。
-
在導覽窗格中,選擇 Log groups (日誌群組)。
-
選擇您的 Lambda 函數的日誌群組名稱 (/aws/lambda/
function-name
)。 -
選擇日誌串流名稱以檢視函數為您啟動的執行個體所提供的資料。您應該會看到類似以下接收的事件:
{ "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。
-
(選用) 完成後,您可以開啟 Amazon RDS 主控台並啟用您停止的執行個體。