

AWS App Runner 自 2026 年 4 月 30 日起，不再開放給新客戶。如果您想要使用 App Runner，請在該日期之前註冊。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[AWS App Runner 可用性變更](https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.html)。

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

# 在 EventBridge 中處理 App Runner 事件
<a name="monitor-ev"></a>

使用 Amazon EventBridge，您可以設定事件驅動規則，以監控 AWS App Runner 服務中的即時資料串流是否有特定模式。當規則的模式相符時，EventBridge 會在目標中啟動動作 AWS Lambda，例如 AWS Batch Amazon ECS 和 Amazon SNS。例如，您可以在部署至服務失敗時發出 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 物件。您可以使用本主題中的範例做為起點。

## App Runner 事件範例
<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"
      ]
    }
  }
  ```

## App Runner 事件參考
<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_tw/apprunner/latest/dg/monitor-ev.html)