

AWS App Runner 从 2026 年 4 月 30 日起，将不再向新客户开放。如果您想使用 App Runner，请在该日期之前注册。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [AWS App Runner 可用性变更](https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.html)。

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

# 在中处理应用程序运行器事件 EventBridge
<a name="monitor-ev"></a>

使用 Amazon EventBridge，您可以设置事件驱动的规则，以监控来自您的 AWS App Runner 服务的实时数据流的某些模式。匹配规则的模式后， EventBridge 会在目标（例如 Amazon ECS 和 Amazon SNS）中启动操作。 AWS Lambda AWS Batch例如，您可以通过在服务部署失败时向 Amazon SNS 主题发送信号，来设置发送电子邮件通知的规则。或者，您可以将 Lambda 函数设置为在服务更新失败时通知 Slack 频道。有关更多信息 EventBridge，请参阅 [Amazon EventBridge 用户指南](https://docs.aws.amazon.com/eventbridge/latest/userguide/)。

App Runner 将以下事件类型发送到 EventBridge
+ *服务状态更改*-App Runner 服务状态的更改。例如，服务状态更改为`DELETE_FAILED`。
+ *服务操作状态更改*-App Runner 服务上长时间的异步操作状态的变化。例如，服务已开始创建，服务更新成功完成，或者服务部署完成但出现错误。

## 创建 EventBridge 规则以对 App Runner 事件采取行动
<a name="monitor-ev.rule"></a>

 EventBridge *事件*是一个对象，它定义了一些标准 EventBridge 字段，例如源 AWS 服务和详细信息（事件）类型，以及一组包含事件详细信息的特定于事件的字段。要创建 EventBridge 规则，您可以使用 EventBridge 控制台定义*事件模式*（应跟踪哪些赛事）并指定*目标动作*（在比赛中应该做什么）。事件模式与其匹配的事件类似。您可以指定要匹配的字段子集，然后为每个字段指定可能值的列表。本主题提供了 App Runner 事件和事件模式的示例。

有关创建 EventBridge 规则的更多信息，请参阅 *Amazon EventBridge 用户指南*中的[为 AWS 服务创建规则](https://docs.aws.amazon.com/eventbridge/latest/userguide/create-eventbridge-rule.html)。

**注意**  
某些服务支持中的*预定义模式*。 EventBridge这简化了事件模式的创建方式。您可以在表单上选择字段值，然后为您 EventBridge 生成模式。目前，App Runner 不支持预定义的模式。您必须将模式作为 JSON 对象输入。您可以使用本主题中的示例作为起点。

## 应用程序运行器事件示例
<a name="monitor-ev.event-examples"></a>

以下是 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 事件模式示例
<a name="monitor-ev.pattern-examples"></a>

以下示例演示了可以在 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"
      ]
    }
  }
  ```

## 应用程序运行器事件参考
<a name="monitor-ev.ref"></a>

### 服务状态变更
<a name="monitor-ev.ref.service"></a>

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

### 操作状态变更
<a name="monitor-ev.ref.operation"></a>

操作状态更改事件已`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"
```

下表列出了所有可能的状态代码和相关消息。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/apprunner/latest/dg/monitor-ev.html)