

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

# Application Auto Scaling 擴展活動
<a name="application-auto-scaling-scaling-activities"></a>

Application Auto Scaling 會監控擴展政策的 CloudWatch 指標，並在超出閾值時啟動擴展活動。手動或按照排程修改可擴展目標的大小上下限時，Application Auto Scaling 也會啟動擴展活動。

進行擴展活動時，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"
        }
    ]
}
```

如需回應中各欄位的說明，請參閱 *Application Auto Scaling API 參考資料*中的[擴展活動](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_ScalingActivity.html)。

下列狀態代碼表示擴展事件觸發擴展活動後，達到完成狀態的時間：
+ `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
                }
            ]
        }
    ]
}
```

如需回應中各欄位的說明，請參閱 *Application Auto Scaling API 參考資料*中的[擴展活動](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_ScalingActivity.html)。

若系統傳回未擴展的活動，`CurrentCapacity`、`MaxCapacity` 及 `MinCapacity` 等屬性可能會出現在回應中 (視 `Code` 所列的原因代碼而定)。

為了防止大量重複項目，擴展活動歷史記錄中只會記錄第一個未擴展的活動。任何後續的未擴展活動都不會產生新的項目，除非沒有擴展變更的原因。

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

以下是未擴展活動的原因代碼。


| 原因代碼 | 定義 | 
| --- | --- | 
| AutoScalingAnticipatedFlapping | 自動擴展演算法決定不進行擴展，因為擴展會導致振盪不穩。振盪不穩是指向內縮減和水平擴展無限循環的現象。也就是說，如果採取擴展動作，指標值將會改變，以反向展開另一次擴展動作。 | 
| TargetServicePutResourceAsUnscalable | [目標服務](integrated-services-list.md)暫時將資源置於無法擴展的狀態。當符合擴展政策中指定的自動擴展條件時，Application Auto Scaling 將嘗試再次擴展。 | 
| AlreadyAtMaxCapacity | 您指定的最大容量已封鎖擴展動作。若您希望 Application Auto Scaling 進行橫向擴展，需提高最大容量。 | 
| AlreadyAtMinCapacity | 您指定的最小容量已封鎖擴展動作。若您希望 Application Auto Scaling 進行向內縮減，需降低最大容量。 | 
| AlreadyAtDesiredCapacity | 自動擴展演算法計算的修訂容量等於目前的容量。 | 