

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

# 使用 使用 Elastic Load Balancing 的範例 AWS CLI
<a name="examples-elastic-load-balancing-aws-cli"></a>

使用 AWS Command Line Interface (AWS CLI) 來連接、分離和描述負載平衡器和目標群組、新增和移除 Elastic Load Balancing 運作狀態檢查，以及變更已啟用的可用區域。

本主題顯示執行 Amazon EC2 Auto Scaling 常見任務的 AWS CLI 命令範例。

**重要**  
如需其他命令範例，請參閱 *AWS CLI 命令參考*中的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elbv2/index.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elbv2/index.html) 和 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elb/index.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elb/index.html)。

**Topics**
+ [連接您的目標群組或 Classic Load Balancer](#example-attach-traffic-sources)
+ [描述您的目標群組或 Classic Load Balancer](#example-describe-traffic-sources)
+ [新增 Elastic Load Balancing 運作狀態檢查](#example-add-elb-healthcheck)
+ [變更您的可用區域](#example-specify-availability-zones)
+ [分離您的目標群組或 Classic Load Balancer](#example-detach-traffic-sources)
+ [移除 Elastic Load Balancing 運作狀態檢查](#example-remove-elb-healthcheck)
+ [舊版命令](#legacy-commands)

## 連接您的目標群組或 Classic Load Balancer
<a name="example-attach-traffic-sources"></a>

使用下列 [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) 命令建立 Auto Scaling 群組，同時透過指定其 Amazon Resource Name (ARN) 來連接目標群組。目標群組可與 Application Load Balancer、Network Load Balancer 或 Gateway Load Balancer 關聯。

取代 `--auto-scaling-group-name`、`--vpc-zone-identifier`、`--min-size` 和 `--max-size` 的範例值。對於 `--launch-template` 選項，請使用 Auto Scaling 群組的啟動範本名稱和版本取代 `{{my-launch-template}}` 和 `{{1}}`。對於 `--traffic-sources` 選項，請用 Application Load Balancer、Network Load Balancer 或 Gateway Load Balancer 目標群組的 ARN 取代範例 ARN。

```
aws autoscaling create-auto-scaling-group --auto-scaling-group-name {{my-asg}} \
  --launch-template LaunchTemplateName={{my-launch-template}},Version='{{1}}' \
  --vpc-zone-identifier "{{subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782}}" \
  --min-size {{1}} --max-size {{5}} \
  --traffic-sources "Identifier={{arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE1}}"
```

建立 Auto Scaling 群組後，使用 [attach-traffic-sources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/attach-traffic-sources.html) 命令，將額外的目標群組連接至該 Auto Scaling 群組。

下列命令可將另一個目標群組新增至同一群組。

```
aws autoscaling attach-traffic-sources --auto-scaling-group-name {{my-asg}} \
  --traffic-sources "Identifier={{arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE2}}"
```

或者，若要將 Classic Load Balancer 連接至您的群組，請在使用 **create-auto-scaling-group** 或 **attach-traffic-sources** 時指定 `--traffic-sources` 和 `--type` 選項，如下列範例中所示。將 `{{my-classic-load-balancer}}` 取代為 Classic Load Balancer 的名稱。對於 `--type` 選項，請指定值為 `elb`。

```
--traffic-sources "Identifier={{my-classic-load-balancer}}" --type elb
```

## 描述您的目標群組或 Classic Load Balancer
<a name="example-describe-traffic-sources"></a>

若要描述連結至 Auto Scaling 群組的負載平衡器或目標群組，請使用下列 [describe-traffic-sources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-traffic-sources.html) 命令。用您的群組名稱取代 `{{my-asg}}`。

```
aws autoscaling describe-traffic-sources --auto-scaling-group-name {{my-asg}}
```

此範例會傳回您連接至 Auto Scaling 群組的 Elastic Load Balancing 目標群組的 ARN。

```
{
    "TrafficSources": [
        {
            "Identifier": "arn:aws:elasticloadbalancing:{{region}}:{{account-id}}:targetgroup/{{my-targets/12345678EXAMPLE1}}",
            "State": "InService",
            "Type": "elbv2"
        },
        {
            "Identifier": "arn:aws:elasticloadbalancing:{{region}}:{{account-id}}:targetgroup/{{my-targets/12345678EXAMPLE2}}",
            "State": "InService",
            "Type": "elbv2"
        }
    ]
}
```

如需 `State` 輸出中欄位的說明，請參閱 [確認負載平衡器的連接狀態](load-balancer-status.md)。

## 新增 Elastic Load Balancing 運作狀態檢查
<a name="example-add-elb-healthcheck"></a>

若要將 Elastic Load Balancing 運作狀態檢查新增至 Auto Scaling 群組對執行個體執行的運作狀態檢查，請使用下列 [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) 命令並指定 `ELB` 作為 `--health-check-type` 選項的值。用您的群組名稱取代 `{{my-asg}}`。

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name {{my-asg}} \
  --health-check-type "ELB"
```

新執行個體通常需要時間進行短暫暖機，才能通過運作狀態檢查。如果寬限期未提供足夠的暖機時間，則執行個體可能無法準備好提供流量。Amazon EC2 Auto Scaling 可能會認為這些執行個體運作狀態不佳並加以替換。

若要更新運作狀態檢查寬限期，請在使用 **update-auto-scaling-group** 時選用 `--health-check-grace-period` 選項，如下列範例中所示。如果發現新執行個體的運作狀態不佳，請將 {{300}} 取代為將新執行個體終止之前保持其服務狀態的秒數。

```
--health-check-grace-period {{300}}
```

如需詳細資訊，請參閱[Auto Scaling 群組中的執行個體運作狀態檢查](ec2-auto-scaling-health-checks.md)。

## 變更您的可用區域
<a name="example-specify-availability-zones"></a>

變更您的可用區域時，您應留意一些限制。如需詳細資訊，請參閱[新增可用區域移除可用區域](as-add-az-console.md)。

**變更 Application Load Balancer 或 Network Load Balancer 的可用區域**

1. 在您變更負載平衡器的可用區域之前，最好先更新 Auto Scaling 群組的可用區域，以確認指定區域中的執行個體類型是否可用。

   若要更新 Auto Scaling 群組的可用區域，請使用下列 [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) 命令。使用要啟用的可用區域中的子網路 ID 取代範例子網路 ID。指定的子網路會取代先前啟用的子網路。用您的群組名稱取代 `{{my-asg}}`。

   ```
   aws autoscaling update-auto-scaling-group --auto-scaling-group-name {{my-asg}} \
     --vpc-zone-identifier "{{subnet-41767929,subnet-cb663da2,subnet-8360a9e7}}"
   ```

1. 請使用以下 [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html) 命令以驗證新子網路中的執行個體已啟動。如果執行個體已啟動，則您會看到執行個體及其狀態的清單。用您的群組名稱取代 `{{my-asg}}`。

   ```
   aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name {{my-asg}}
   ```

1. 使用下列 [set-subnets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elbv2/set-subnets.html) 命令來指定負載平衡器的子網路。使用要啟用的可用區域中的子網路 ID 取代範例子網路 ID。每個可用區域只能指定一個子網路。指定的子網路會取代先前啟用的子網路。使用負載平衡器的 ARN 取代 `{{my-lb-arn}}`。

   ```
   aws elbv2 set-subnets --load-balancer-arn {{my-lb-arn}} \
     --subnets {{subnet-41767929}} {{subnet-cb663da2}} {{subnet-8360a9e7}}
   ```

**變更 Classic Load Balancer 的可用區域**

1. 在您變更負載平衡器的可用區域之前，最好先更新 Auto Scaling 群組的可用區域，以確認指定區域中的執行個體類型是否可用。

   若要更新 Auto Scaling 群組的可用區域，請使用下列 [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) 命令。使用要啟用的可用區域中的子網路 ID 取代範例子網路 ID。指定的子網路會取代先前啟用的子網路。用您的群組名稱取代 `{{my-asg}}`。

   ```
   aws autoscaling update-auto-scaling-group --auto-scaling-group-name {{my-asg}} \
     --vpc-zone-identifier "{{subnet-41767929,subnet-cb663da2}}"
   ```

1. 請使用以下 [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html) 命令以驗證新子網路中的執行個體已啟動。如果執行個體已啟動，則您會看到執行個體及其狀態的清單。用您的群組名稱取代 `{{my-asg}}`。

   ```
   aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name {{my-asg}}
   ```

1. 使用以下 [attach-load-balancer-to-subnets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elb/attach-load-balancer-to-subnets.html) 命令來啟用 Classic Load Balancer 的新可用區域。使用要啟用的可用區域中的子網路 ID 取代範例子網路 ID。使用負載平衡器的名稱取代 `{{my-lb}}`。

   ```
   aws elb attach-load-balancer-to-subnets --load-balancer-name {{my-lb}} \
     --subnets {{subnet-cb663da2}}
   ```

   若要停用可用區域，請執行下列 [detach-load-balancer-from-subnets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elb/detach-load-balancer-from-subnets.html) 命令。使用要停用的可用區域中的子網路 ID 取代範例子網路 ID。使用負載平衡器的名稱取代 `{{my-lb}}`。

   ```
   aws elb detach-load-balancer-from-subnets --load-balancer-name {{my-lb}} \
     --subnets {{subnet-8360a9e7}}
   ```

## 分離您的目標群組或 Classic Load Balancer
<a name="example-detach-traffic-sources"></a>

如果不再需要目標群組，請使用以下 [detach-load-balancer-target-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/detach-traffic-sources.html) 命令從您的 Auto Scaling 群組分離該目標群組。

對於 `--auto-scaling-group-name` 選項，請用您的群組名稱取代 `{{my-asg}}`。對於 `--traffic-sources` 選項，請用 Application Load Balancer、Network Load Balancer 或 Gateway Load Balancer 目標群組的 ARN 取代範例 ARN。

```
aws autoscaling detach-traffic-sources --auto-scaling-group-name {{my-asg}} \
  --traffic-sources "Identifier={{arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456}}"
```

若要從群組中分離 Classic Load Balancer，請指定 `--traffic-sources` 和 `--type` 選項，如下列範例所示。將 `{{my-classic-load-balancer}}` 取代為 Classic Load Balancer 的名稱。對於 `--type` 選項，請指定值為 `elb`。

```
--traffic-sources "Identifier={{my-classic-load-balancer}}" --type elb
```

## 移除 Elastic Load Balancing 運作狀態檢查
<a name="example-remove-elb-healthcheck"></a>

若要將 Elastic Load Balancing 運作狀態檢查從 Auto Scaling 群組中移除，請使用下列 [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) 命令並指定 `EC2` 作為 `--health-check-type` 選項的值。用您的群組名稱取代 `{{my-asg}}`。

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name {{my-asg}} \
  --health-check-type "EC2"
```

如需詳細資訊，請參閱[Auto Scaling 群組中的執行個體運作狀態檢查](ec2-auto-scaling-health-checks.md)。

## 舊版命令
<a name="legacy-commands"></a>

下列範例顯示如何使用舊版 CLI 命令連接、分離以及描述負載平衡器和目標群組。它們仍保留在本文件中，供任何想要使用的客戶做參考。我們會繼續支援舊版 CLI 命令，但建議您使用新的「流量來源」CLI 命令，該命令可以連接和分離多种流量來源類型。您可以在同一個 Auto Scaling 群組上同時使用舊版 CLI 命令和「流量來源」CLI 命令。

### 連接您的目標群組或 Classic Load Balancer (舊版)
<a name="example-attach-load-balancer-target-group"></a>

**連接目標群組**  
使用以下 [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) 命令建立已連接目標群組的 Auto Scaling 群組。指定 Application Load Balancer、Network Load Balancer 或 Gateway Load Balancer 目標群組的 Amazon Resource Name (ARN)。

```
aws autoscaling create-auto-scaling-group --auto-scaling-group-name {{my-asg}} \
  --launch-template LaunchTemplateName={{my-launch-template}},Version='{{1}}' \
  --vpc-zone-identifier "{{subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782}}" \
  --target-group-arns "{{arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456}}" \
  --min-size {{1}} --max-size {{5}}
```

下列 [attach-load-balancer-target-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/attach-load-balancer-target-groups.html) 命令會將目標群組連接到現有 Auto Scaling 群組。

```
aws autoscaling attach-load-balancer-target-groups --auto-scaling-group-name {{my-asg}} \
  --target-group-arns "{{arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456}}"
```

**連接 Classic Load Balancer**  
使用以下 [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) 命令建立已連接 Classic Load Balancer 的 Auto Scaling 群組。

```
aws autoscaling create-auto-scaling-group --auto-scaling-group-name {{my-asg}} \
  --launch-configuration-name {{my-launch-config}} \
  --vpc-zone-identifier "{{subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782}}" \
  --load-balancer-names "{{my-load-balancer}}" \
  --min-size {{1}} --max-size {{5}}
```

以下 [attach-load-balancers](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/attach-load-balancers.html) 命令會將指定的 Classic Load Balancer 連接到現有 Auto Scaling 群組。

```
aws autoscaling attach-load-balancers --auto-scaling-group-name {{my-asg}} \
  --load-balancer-names {{my-lb}}
```

### 描述您的目標群組或 Classic Load Balancer (舊版)
<a name="example-describe-load-balancer-target-groups"></a>

**描述目標群組**  
若要描述與 Auto Scaling 群組相關聯的目標群組，請使用 [describe-load-balancer-target-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-load-balancer-target-groups.html) 命令。下列範例列出 {{my-asg}} 的目標群組。

```
aws autoscaling describe-load-balancer-target-groups --auto-scaling-group-name {{my-asg}}
```

**描述 Classic Load Balancer**  
若要描述與 Auto Scaling 群組相關聯的 Classic Load Balancer，請使用 [describe-load-balancers](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-load-balancers.html) 命令。下列範例會列出 {{my-asg}} 的 Classic Load Balancer。

```
aws autoscaling describe-load-balancers --auto-scaling-group-name {{my-asg}}
```

### 分離您的目標群組或 Classic Load Balancer (舊版)
<a name="example-detach-load-balancer-target-group"></a>

**分離目標群組**  
如果不再需要目標群組，請使用以下 [detach-load-balancer-target-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/detach-load-balancer-target-groups.html) 命令從您的 Auto Scaling 群組分開該目標群組。

```
aws autoscaling detach-load-balancer-target-groups --auto-scaling-group-name {{my-asg}} \
  --target-group-arns "{{arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456}}"
```

**分離 Classic Load Balancer**  
如果不再需要 Classic Load Balancer，則可使用以下 [detach-load-balancers](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/detach-load-balancers.html) 命令將其從您的 Auto Scaling 群組分開。

```
aws autoscaling detach-load-balancers --auto-scaling-group-name {{my-asg}} \
  --load-balancer-names {{my-lb}}
```