在中处理应用程序运行器事件 EventBridge - AWS App Runner

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在中处理应用程序运行器事件 EventBridge

使用 Amazon EventBridge,您可以设置事件驱动的规则,以监控来自您的 AWS App Runner 服务的实时数据流的某些模式。匹配规则的模式后, EventBridge 会在目标(例如 Amazon ECS 和 Amazon SNS)中启动操作。 AWS Lambda AWS Batch例如,您可以通过在服务部署失败时向 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 发送到的事件的一些示例 EventBridge。

  • 服务状态更改事件。具体而言,是从状态更改OPERATION_IN_PROGRESSRUNNING状态的服务。

    { "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" ] } }

应用程序运行器事件参考

服务状态变更

服务状态更改事件已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

服务恢复失败。