

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

# Application Auto Scaling 的扩展活动
<a name="application-auto-scaling-scaling-activities"></a>

Application Auto Scaling 会监控您的扩展策略的 CloudWatch 指标，并在超过阈值时启动扩展活动。当您手动或按照计划修改可扩展目标的最大大小或最小大小时，它也会启动扩展活动。

进行扩展活动时，Application Auto Scaling 会执行以下操作之一：
+ 增加可扩展目标的容量（称为*横向扩展*）
+ 减少可扩展目标的容量（称为*横向缩减*）

您可以查看过去六周的扩展活动。

## 按可扩展目标查找扩展活动
<a name="look-up-scaling-activities-with-the-aws-cli"></a>

要查看特定可扩展目标的扩展活动，请使用以下 [describe-scaling-activities](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-activities.html) 命令。

**Linux、macOS 或 Unix**

```
aws application-autoscaling describe-scaling-activities --service-namespace {{ecs}} \
  --scalable-dimension {{ecs:service:DesiredCount}} --resource-id {{service/my-cluster/my-service}}
```

**Windows**

```
aws application-autoscaling describe-scaling-activities --service-namespace {{ecs}} --scalable-dimension {{ecs:service:DesiredCount}} --resource-id {{service/my-cluster/my-service}}
```

在以下示例响应中，`StatusCode` 包含活动的当前状态，`StatusMessage` 包含有关扩展活动状态的信息。

```
{
    "ScalingActivities": [
        {
            "ScalableDimension": "ecs:service:DesiredCount",
            "Description": "Setting desired count to 1.",
            "ResourceId": "service/my-cluster/my-service",
            "ActivityId": "e6c5f7d1-dbbb-4a3f-89b2-51f33e766399",
            "StartTime": 1462575838.171,
            "ServiceNamespace": "ecs",
            "EndTime": 1462575872.111,
            "Cause": "monitor alarm web-app-cpu-lt-25 in state ALARM triggered policy web-app-cpu-lt-25",
            "StatusMessage": "Successfully set desired count to 1. Change successfully fulfilled by ecs.",
            "StatusCode": "Successful"
        }
    ]
}
```

有关响应中字段的描述，请参阅[ScalingActivity](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_ScalingActivity.html)《App *lication Auto Scaling API 参考*》。

以下状态代码指示引发扩展活动的扩展事件何时达到完成状态：
+ `Successful` – 扩展已成功完成
+ `Overridden` – 所需容量已由较新的扩展事件进行更新
+ `Unfulfilled` – 扩展超时或目标服务无法满足请求
+ `Failed` – 扩展失败，出现异常 

**注意**  
扩展活动的状态也可能为 `Pending` 或 `InProgress`。在目标服务响应之前，所有扩展活动都具有 `Pending` 状态。目标响应后，扩展活动的状态更改为 `InProgress`。

## 包括未扩展的活动
<a name="include-not-scaled-activities-with-the-aws-cli"></a>

默认情况下，扩展活动不反映 Application Auto Scaling 决定是否不扩展的时间。

例如，假设 Amazon ECS 服务超出给定指标的最大阈值，但任务数已达到允许的最大任务数。在这种情况下，Application Auto Scaling 不会横向扩展所需的任务数。

要在响应中包含没有进行扩展的活动（*未扩展的活动*），请将 `--include-not-scaled-activities` 选项添加到 [describe-scaling-activities](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-activities.html) 命令。

**Linux、macOS 或 Unix**

```
aws application-autoscaling describe-scaling-activities --include-not-scaled-activities \
  --service-namespace {{ecs}} --scalable-dimension {{ecs:service:DesiredCount}} \
  --resource-id {{service/my-cluster/my-service}}
```

**Windows**

```
aws application-autoscaling describe-scaling-activities --include-not-scaled-activities --service-namespace {{ecs}} --scalable-dimension {{ecs:service:DesiredCount}} --resource-id {{service/my-cluster/my-service}} 
```

**注意**  
如果此命令引发错误，请确保已将 AWS CLI 本地版本更新到最新版本。

为了确认响应包含未扩展的活动，输出中会显示部分失败的扩展活动的 `NotScaledReasons` 元素（如果不是全部失败的话）。

```
{
    "ScalingActivities": [
        {
            "ScalableDimension": "ecs:service:DesiredCount",
            "Description": "Attempting to scale due to alarm triggered",
            "ResourceId": "service/my-cluster/my-service",
            "ActivityId": "4d759079-a31f-4d0c-8468-504c56e2eecf",
            "StartTime": 1664928867.915,
            "ServiceNamespace": "ecs",
            "Cause": "monitor alarm web-app-cpu-gt-75 in state ALARM triggered policy web-app-cpu-gt-75",
            "StatusCode": "Failed",
            "NotScaledReasons": [ 
                { 
                    "Code": "AlreadyAtMaxCapacity",
                    "MaxCapacity": 4
                }
            ]
        }
    ]
}
```

有关响应中字段的描述，请参阅[ScalingActivity](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_ScalingActivity.html)《App *lication Auto Scaling API 参考*》。

如果返回未扩展的活动，根据 `Code` 中列出的原因代码，响应中可能会出现 `CurrentCapacity`、`MaxCapacity` 和 `MinCapacity` 等属性。

为防止出现大量重复的条目，只有第一个未扩展的活动才会记录在扩展活动历史记录中。除非不扩展的原因发生变化，否则任何后续的未扩展活动都不会生成新条目。

## 原因代码
<a name="understand-not-scaled-reason-codes"></a>

以下是未扩展的活动的原因代码。


| 原因代码 | 定义 | 
| --- | --- | 
| AutoScalingAnticipatedFlapping | Auto Scaling 算法决定不采取扩展操作，因为这会导致摆动。摆动是横向缩减和横向扩展的无限循环。也就是说，如果采取扩展操作，则指标值将更改以启动另一个相反方向的扩展操作。 | 
| TargetServicePutResourceAsUnscalable | [目标服务](integrated-services-list.md)暂时将资源置于不可扩展状态。当满足扩展策略中指定的自动扩展条件时，Application Auto Scaling 将尝试再次进行扩展。 | 
| AlreadyAtMaxCapacity | 扩展被指定的最大容量阻止。如果您希望 Application Auto Scaling 进行横向扩展，则需要增加最大容量。 | 
| AlreadyAtMinCapacity | 扩展被指定的最小容量阻止。如果您希望 Application Auto Scaling 进行横向缩减，则需要减少最小容量。 | 
| AlreadyAtDesiredCapacity | Auto Scaling 算法计算得出，修改后的容量符合当前容量。 | 