本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
處理應用程序運行器事件 EventBridge
使用 Amazon EventBridge,您可以設定事件驅動的規則,以監控來自 AWS App Runner 服務的即時資料串流是否有特定模式。符合規則的模式時, EventBridge 會在目標 (例如 AWS Lambda Amazon ECS 和 Amazon SNS) 中啟動動作。 AWS Batch例如,您可以設定傳送電子郵件通知的規則,方法是在對服務的部署失敗時傳送 Amazon SNS 主題。或者,您可以設定 Lambda 函數,在服務更新失敗時通知 Slack 通道。如需詳細資訊 EventBridge,請參閱 Amazon EventBridge 使用者指南。
應用程序運行器將以下事件類型發送到 EventBridge
-
服務狀態變更 — 應用程式執行器服務狀態的變更。例如,服務狀態變更為
DELETE_FAILED
。 -
服務作業狀態變更 — App Runner 服務上長時間非同步作業狀態的變更。例如,服務已開始建立、服務更新已順利完成,或服務部署完成但發生錯誤。
建立 EventBridge 規則以對應用程式執行器事件採取行動
EventBridge 事件是定義某些標準 EventBridge 欄位的物件,例如來源 AWS 服務和詳細資料 (事件) 類型,以及包含事件詳細資訊的事件特定欄位集。要創建 EventBridge 規則,您可以使用 EventBridge 控制台定義事件模式(應該跟踪哪些事件)並指定目標操作(應該在比賽中進行什麼操作)。事件模式類似於它匹配的事件。您可以指定要匹配的字段的子集,並為每個字段指定可能值的列表。本主題提供應用程式執行器事件和事件模式的範例。
如需有關建立 EventBridge 規則的詳細資訊,請參閱 Amazon EventBridge 使用者指南中的為 AWS 服務建立規則。
注意
某些服務支援中的預先定義模式 EventBridge。這簡化了事件模式的建立方式。您可以在表單上選取欄位值,然後為您 EventBridge 產生模式。目前,應用程式執行器不支援預先定義的模式。您必須輸入該模式作為 JSON 對象。您可以使用本主題中的範例作為起點。
應用程序運行器事件
這些是應用程序運行器發送到事件的一些示例 EventBridge。
-
服務狀態變更事件。具體而言,從變更為
RUNNING
狀態OPERATION_IN_PROGRESS
的服務。{ "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" } }
應用程序運行器事件模式
下列範例會示範您可以在 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" ] } }
應用程序運行器事件
服務狀態變更
服務狀態變更事件已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 | 訊息 |
---|---|
|
服務建立已開始。 |
|
服務建立成功完成。 |
|
服務建立失敗。如需詳細資訊,請參閱服務記錄。 |
|
服務刪除已啟動。 |
|
服務刪除成功完成。 |
|
服務刪除失敗。 |
|
|
|
服務更新已順利完成。部署新的應用程式和組態。 |
服務更新已順利完成。已部署新組態。 |
|
|
服務更新失敗。如需詳細資訊,請參閱服務記錄。 |
|
部署已開始。 |
|
已成功完成部署。 |
|
部署失敗。如需詳細資訊,請參閱服務記錄。 |
|
服務暫停已啟動。 |
|
服務暫停已順利完成。 |
|
服務暫停失敗。 |
|
服務恢復已啟動。 |
|
服務恢復成功完成。 |
|
服務恢復失敗。 |