處理應用程序運行器事件 EventBridge - AWS App Runner

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

處理應用程序運行器事件 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 to CurrentStatus.", "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 訊息

CreateServiceStarted

服務建立已開始。

CreateServiceCompletedSuccessfully

服務建立成功完成。

CreateServiceFailed

服務建立失敗。如需詳細資訊,請參閱服務記錄。

DeleteServiceStarted

服務刪除已啟動。

DeleteServiceCompletedSuccessfully

服務刪除成功完成。

DeleteServiceFailed

服務刪除失敗。

UpdateServiceStarted

UpdateServiceCompletedSuccessfully

服務更新已順利完成。部署新的應用程式和組態。

服務更新已順利完成。已部署新組態。

UpdateServiceFailed

服務更新失敗。如需詳細資訊,請參閱服務記錄。

DeploymentStarted

部署已開始。

DeploymentCompletedSuccessfully

已成功完成部署。

DeploymentFailed

部署失敗。如需詳細資訊,請參閱服務記錄。

PauseServiceStarted

服務暫停已啟動。

PauseServiceCompletedSuccessfully

服務暫停已順利完成。

PauseServiceFailed

服務暫停失敗。

ResumeServiceStarted

服務恢復已啟動。

ResumeServiceCompletedSuccessfully

服務恢復成功完成。

ResumeServiceFailed

服務恢復失敗。