

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

# 使用 Amazon EventBridge 監控 Application Auto Scaling 事件
<a name="monitoring-eventbridge"></a>

Amazon EventBridge (之前稱為 CloudWatch Events)，可幫助您監控 Application Auto Scaling 的特定事件，並啟動使用其他 AWS 服務的目標動作。來自 的事件 AWS 服務 會以近乎即時的方式交付至 EventBridge。

使用 EventBridge，您可以建立符合傳入*事件*的*規則*，並將其路由到*目標*以進行處理。

如需詳細資訊，請參閱 *《Amazon EventBridge 使用者指南》*中的 [Amazon EventBridge 入門](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-get-started.html)。

## Application Auto Scaling 事件
<a name="application-auto-scaling-example-event-types"></a>

以下範例顯示 Application Auto Scaling 的事件。盡可能產生事件。

目前只有明確要擴展到最大的事件和透過 CloudTrail 進行的 API 呼叫適用於 Application Auto Scaling。

**Topics**
+ [狀態變更的事件：擴展至最大值](#event-example-1)
+ [透過 CloudTrail 進行 API 呼叫的事件](#event-example-2)

### 狀態變更的事件：擴展至最大值
<a name="event-example-1"></a>

下列範例事件顯示 Application Auto Scaling 將可擴展目標的容量增加 (橫向擴展) 到其大小上限。如果需求再次增加，Application Auto Scaling 無法將目標擴展到更大的大小，因為其已經擴展到大小上限。

在 `detail` 物件中，`resourceId`、`serviceNamespace` 和 `scalableDimension` 屬性的值標識可擴展的目標。`newDesiredCapacity` 和 `oldDesiredCapacity` 屬性的值是指橫向擴展事件之後的新容量以及橫向擴展事件之前的原始容量。`maxCapacity` 是可擴展目標的大小上限。

```
{
  "version": "0",
  "id": "11112222-3333-4444-5555-666677778888",
  "detail-type": "Application Auto Scaling Scaling Activity State Change",
  "source": "aws.application-autoscaling",
  "account": "123456789012",
  "time": "2019-06-12T10:23:40Z",
  "region": "us-west-2",
  "resources": [],
  "detail": {
    "startTime": "2022-06-12T10:20:43Z",
    "endTime": "2022-06-12T10:23:40Z",
    "newDesiredCapacity": 8,
    "oldDesiredCapacity": 5,
    "minCapacity": 2,
    "maxCapacity": 8,
    "resourceId": "table/my-table",
    "scalableDimension": "dynamodb:table:WriteCapacityUnits",
    "serviceNamespace": "dynamodb",
    "statusCode": "Successful",
    "scaledToMax": true,
    "direction": "scale-out"
}
```

若要建立擷取所有可擴展目標的全部 `scaledToMax` 狀態變更事件的規則，請使用下列範例事件模式。

```
{
  "source": [
    "aws.application-autoscaling"
  ],
  "detail-type": [
    "Application Auto Scaling Scaling Activity State Change"
  ],
  "detail": {
    "scaledToMax": [
      true 
    ]
  } 
}
```

### 透過 CloudTrail 進行 API 呼叫的事件
<a name="event-example-2"></a>

*線索*是一種組態， AWS CloudTrail 使用 將事件作為日誌檔案交付至 Amazon S3 儲存貯體。CloudTrail 日誌檔案包含日誌項目。一個事件代表一個日誌項目，它包含所要求動作、動作日期和時間以及要求參數等資訊。如需了解如何開始使用 CloudTrail，請參閱 *AWS CloudTrail 使用者指南*中的[建立追蹤](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-a-trail-using-the-console-first-time.html)。

透過 CloudTrail 交付的事件，其 `detail-type` 的值都會是 `AWS API Call via CloudTrail`。

下列範例事件代表 CloudTrail 日誌檔案項目，其中顯示呼叫 Application Auto Scaling [RegisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_RegisterScalableTarget.html) 動作的主控台使用者。

```
{
  "version": "0",
  "id": "99998888-7777-6666-5555-444433332222",
  "detail-type": "AWS API Call via CloudTrail",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "2022-07-13T16:50:15Z",
  "region": "us-west-2",
  "resources": [],
  "detail": {
    "eventVersion": "1.08",
    "userIdentity": {
      "type": "IAMUser",
      "principalId": "123456789012",
      "arn": "arn:aws:iam::123456789012:user/Bob",
      "accountId": "123456789012",
      "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
      "sessionContext": {
        "sessionIssuer": {
          "type": "Role",
          "principalId": "123456789012",
          "arn": "arn:aws:iam::123456789012:role/Admin",
          "accountId": "123456789012",
          "userName": "Admin"
        },
        "webIdFederationData": {},
        "attributes": {
          "creationDate": "2022-07-13T15:17:08Z",
          "mfaAuthenticated": "false"
        }
      }
    },
    "eventTime": "2022-07-13T16:50:15Z",
    "eventSource": "autoscaling.amazonaws.com",
    "eventName": "RegisterScalableTarget",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "EC2 Spot Console",
    "requestParameters": {
      "resourceId": "spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
      "serviceNamespace": "ec2",
      "scalableDimension": "ec2:spot-fleet-request:TargetCapacity",
      "minCapacity": 2,
      "maxCapacity": 10
    },
    "responseElements": null,
    "additionalEventData": {
      "service": "application-autoscaling"
    },
    "requestID": "e9caf887-8d88-11e5-a331-3332aa445952",
    "eventID": "49d14f36-6450-44a5-a501-b0fdcdfaeb98",
    "readOnly": false,
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "eventCategory": "Management",
    "sessionCredentialFromConsole": "true"
  }
}
```

若要根據所有可擴展目標的 [DeleteScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DeleteScalingPolicy.html) 和 [DeregisterScalableTarget](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DeregisterScalableTarget.html) API 呼叫建立規則，請使用以下範例事件模式：

```
{
  "source": [
    "aws.autoscaling"
  ],
  "detail-type": [
    "AWS API Call via CloudTrail"
  ],
  "detail": {
    "eventSource": [
      "autoscaling.amazonaws.com"
    ],
    "eventName": [
       "DeleteScalingPolicy", 
       "DeregisterScalableTarget"
    ],
    "additionalEventData": {
      "service": [
        "application-autoscaling"
      ]
    }
  } 
}
```

如需使用 CloudTrail 的詳細資訊，請參閱「[使用 記錄 Application Auto Scaling API 呼叫 AWS CloudTrail](logging-using-cloudtrail.md)」。