本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 EventBridge 中處理 App Runner 事件
使用 Amazon EventBridge,您可以設定事件驅動規則,以監控 AWS App Runner 服務中的即時資料串流,以找出特定模式。當規則的模式相符時,EventBridge 會在目標中啟動動作 AWS Lambda,例如 AWS Batch Amazon ECS 和 Amazon SNS。例如,您可以設定傳送電子郵件通知的規則,只要部署到服務失敗,即可發出 Amazon SNS 主題的訊號。或者,您可以設定 Lambda 函數,以在服務更新失敗時通知 Slack 頻道。如需 EventBridge 的詳細資訊,請參閱 Amazon EventBridge 使用者指南。
App Runner 會將下列事件類型傳送至 EventBridge
-
服務狀態變更 – App Runner 服務的狀態變更。例如,服務狀態已變更為
DELETE_FAILED
。 -
服務操作狀態變更 – App Runner 服務上長時間非同步操作的狀態變更。例如,服務開始建立、服務更新成功完成,或服務部署完成但發生錯誤。
建立 EventBridge 規則以對 App Runner 事件採取行動
EventBridge 事件是定義一些標準 EventBridge 欄位的物件,例如來源 AWS 服務和詳細資訊 (事件) 類型,以及具有事件詳細資訊的事件特定欄位集。若要建立 EventBridge 規則,您可以使用 EventBridge 主控台來定義事件模式 (應該追蹤哪些事件),並指定目標動作 (對相符項目應執行的動作)。事件模式與其相符的事件類似。您指定要比對的欄位子集,而對於每個欄位,您指定可能值的清單。本主題提供 App Runner 事件和事件模式的範例。
如需建立 EventBridge 規則的詳細資訊,請參閱《Amazon EventBridge 使用者指南》中的為服務 AWS 建立規則。
注意
有些服務支援 EventBridge 中的預先定義模式。這簡化了事件模式的建立方式。您在表單上選取欄位值,EventBridge 就會為您產生模式。目前,App Runner 不支援預先定義的模式。您必須將模式輸入為 JSON 物件。您可以使用本主題中的範例做為起點。
App Runner 事件範例
這些是 App Runner 傳送至 EventBridge 的事件範例。
-
服務狀態變更事件。具體而言,從
OPERATION_IN_PROGRESS
變更為RUNNING
狀態的服務。{ "version": "0", "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718", "detail-type": "AppRunner Service Status Change", "source": "aws.apprunner", "account": "111122223333", "time": "2021-04-29T11:54:23Z", "region": "us-east-2", "resources": [ "arn:aws:apprunner:us-east-2:123456789012:service/my-app/8fe1e10304f84fd2b0df550fe98a71fa" ], "detail": { "previousServiceStatus": "OPERATION_IN_PROGRESS", "currentServiceStatus": "RUNNING", "serviceName": "my-app", "serviceId": "8fe1e10304f84fd2b0df550fe98a71fa", "message": "Service status is set to RUNNING.", "severity": "INFO" } }
-
操作狀態變更事件。具體而言,
UpdateService
操作已成功完成。{ "version": "0", "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718", "detail-type": "AppRunner Service Operation Status Change", "source": "aws.apprunner", "account": "111122223333", "time": "2021-04-29T18:43:48Z", "region": "us-east-2", "resources": [ "arn:aws:apprunner:us-east-2:123456789012:service/my-app/8fe1e10304f84fd2b0df550fe98a71fa" ], "detail": { "operationStatus": "UpdateServiceCompletedSuccessfully", "serviceName": "my-app", "serviceId": "8fe1e10304f84fd2b0df550fe98a71fa", "message": "Service update completed successfully. New application and configuration is deployed.", "severity": "INFO" } }
App Runner 事件模式範例
下列範例示範您可以在 EventBridge 規則中使用的事件模式,以符合一或多個 App Runner 事件。事件模式類似於事件。只包含您要比對的欄位,並提供清單,而不是每個欄位的純量。
-
比對特定帳戶服務的所有服務狀態變更事件,其中服務不再處於
RUNNING
狀態。{ "detail-type": [ "AppRunner Service Status Change" ], "source": [ "aws.apprunner" ], "account": [ "111122223333" ], "detail": { "previousServiceStatus": [ "RUNNING" ] } }
-
比對特定帳戶服務的所有操作狀態變更事件,其中操作失敗。
{ "detail-type": [ "AppRunner Service Operation Status Change" ], "source": [ "aws.apprunner" ], "account": [ "111122223333" ], "detail": { "operationStatus": [ "CreateServiceFailed", "DeleteServiceFailed", "UpdateServiceFailed", "DeploymentFailed", "PauseServiceFailed", "ResumeServiceFailed" ] } }
App Runner 事件參考
服務狀態變更
服務狀態變更事件已detail-type
設定為 AppRunner Service Status Change
。它具有下列詳細資訊欄位和值:
"serviceId": "
your service ID
", "serviceName": "your service name
", "message": "Service status is set toCurrentStatus
.", "previousServiceStatus": "any valid service status
", "currentServiceStatus": "any valid service status
", "severity": "varies
"
操作狀態變更
操作狀態變更事件已detail-type
設定為 AppRunner Service Operation Status Change
。它具有下列詳細資訊欄位和值:
"operationStatus": "
see following table
", "serviceName": "your service name
", "serviceId": "your service ID
", "message": "see following table
", "severity": "varies
"
下表列出所有可能的狀態碼和相關訊息。
Status | 訊息 |
---|---|
|
服務建立已開始。 |
|
服務建立已成功完成。 |
|
服務建立失敗。如需詳細資訊,請參閱 服務日誌。 |
|
服務刪除已開始。 |
|
服務刪除已成功完成。 |
|
服務刪除失敗。 |
|
|
|
服務更新已成功完成。已部署新的應用程式和組態。 |
服務更新已成功完成。已部署新組態。 |
|
|
服務更新失敗。如需詳細資訊,請參閱 服務日誌。 |
|
部署已開始。 |
|
部署已成功完成。 |
|
部署失敗。如需詳細資訊,請參閱 服務日誌。 |
|
服務暫停已開始。 |
|
服務暫停已成功完成。 |
|
服務暫停失敗。 |
|
服務繼續已開始。 |
|
服務繼續成功完成。 |
|
服務繼續失敗。 |