本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在中处理应用程序运行器事件 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_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" ] } }
应用程序运行器事件参考
服务状态变更
服务状态更改事件已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 | 消息 |
---|---|
|
服务创建已开始。 |
|
服务创建成功完成。 |
|
服务创建失败。有关详细信息,请参阅服务日志。 |
|
服务删除已开始。 |
|
服务删除已成功完成。 |
|
服务删除失败。 |
|
|
|
服务更新成功完成。新的应用程序和配置已部署。 |
服务更新成功完成。新配置已部署。 |
|
|
服务更新失败。有关详细信息,请参阅服务日志。 |
|
部署已开始。 |
|
部署成功完成。 |
|
部署失败。有关详细信息,请参阅服务日志。 |
|
服务暂停已开始。 |
|
服务暂停成功完成。 |
|
服务暂停失败。 |
|
服务恢复已启动。 |
|
服务恢复成功完成。 |
|
服务恢复失败。 |