

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

# 編輯 Application Load Balancer 的接聽程式規則
<a name="edit-rule"></a>

您可以隨時編輯接聽程式規則的動作和條件。規則更新不會立即生效，因此在您更新規則後，可以使用先前的規則組態路由傳送請求一段時間。任何進行中的請求都已完成。

**Topics**
+ [修改預設動作](#modify-default-action)
+ [更新規則優先順序](#update-rule-priority)
+ [更新動作、條件和轉換](#update-rule-actions-conditions-transforms)
+ [管理規則標籤](#manage-rule-tags)

## 修改預設動作
<a name="modify-default-action"></a>

預設動作會指派給名為 **Default** 的規則。您可以保留目前的規則類型並變更必要資訊，也可以變更規則類型並提供新的必要資訊。

------
#### [ Console ]

**修改預設動作**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格上選擇 **Load Balancers (負載平衡器)**。

1. 選取負載平衡器。

1. 在**接聽程式和規則**索引標籤上，選取**通訊協定：連接埠**資料欄中的文字，以開啟接聽程式的詳細資訊頁面。

1. 在**規則**索引標籤的**接聽程式規則**區段中，選取預設規則。選擇**動作**、**編輯規則**。

1. 在**預設動作**下，視需要更新動作。

------
#### [ AWS CLI ]

**修改預設動作**  
使用 [modify-listener](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-listener.html) 命令。下列範例會更新 `forward`動作的目標群組。

```
aws elbv2 modify-listener \
    --listener-arn listener-arn \
    --default-actions Type=forward,TargetGroupArn=new-target-group-arn
```

下列範例會更新預設動作，以在兩個目標群組之間平均分配流量。

```
aws elbv2 modify-listener \
    --listener-arn listener-arn \
    --default-actions '[{
      "Type":"forward",
      "ForwardConfig":{
        "TargetGroups":[
          {"TargetGroupArn":"target-group-1-arn","Weight":50},
          {"TargetGroupArn":"target-group-2-arn","Weight":50}
        ]
      }
    }]'
```

------
#### [ CloudFormation ]

**修改預設動作**  
更新 [AWS::ElasticLoadBalancingV2::Listener](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-listener.html) 資源。

```
Resources:
    myHTTPlistener:
      Type: 'AWS::ElasticLoadBalancingV2::Listener'
      Properties:
        LoadBalancerArn: !Ref myLoadBalancer
        Protocol: HTTP
        Port: 80
        DefaultActions:
          - Type: "forward"
            TargetGroupArn: !Ref myNewTargetGroup
```

------

## 更新規則優先順序
<a name="update-rule-priority"></a>

依優先順序評估規則，從最低值到最高值。預設規則最後評估。您可以隨時變更非預設規則的優先順序。您無法變更預設規則的優先順序。

------
#### [ Console ]

**更新規則優先順序**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Load Balancers (負載平衡器)**。

1. 選取負載平衡器。

1. 在**接聽程式和規則**索引標籤上，選取**通訊協定：連接埠**資料欄中的文字，以開啟接聽程式的詳細資訊頁面。

1. 在**規則**索引標籤上，選取接聽程式規則，然後選擇**動作**、**重新排定規則的優先順序**。

1. 在**接聽程式規則**區段中，**優先順序**欄會顯示目前的規則優先順序。若要更新規則優先順序，請輸入 1-50，000 的值。

1. 選擇**儲存變更**。

------
#### [ AWS CLI ]

**更新規則優先順序**  
使用 [set-rule-priorities](https://docs.aws.amazon.com/cli/latest/reference/elbv2/set-rule-priorities.html) 命令。

```
aws elbv2 set-rule-priorities \
    --rule-priorities "RuleArn=listener-rule-arn,Priority=5"
```

------
#### [ CloudFormation ]

**更新規則優先順序**  
更新 [AWS::ElasticLoadBalancingV2::ListenerRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-listenerrule.html) 資源。

```
Resources:
    myListenerRule:
     Type: 'AWS::ElasticLoadBalancingV2::ListenerRule'
     Properties:
       ListenerArn: !Ref myListener
       Priority: 5
       Conditions:
         - Field: host-header
           Values:
             - example.com
             - www.example.com
       Actions:
         - Type: forward
           TargetGroupArn: !Ref myTargetGroup
```

------

## 更新動作、條件和轉換
<a name="update-rule-actions-conditions-transforms"></a>

您可以更新規則的動作、條件和轉換。

------
#### [ Console ]

**更新規則動作、條件和轉換**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Load Balancers (負載平衡器)**。

1. 選取負載平衡器。

1. 在**接聽程式和規則**索引標籤上，選取**通訊協定：連接埠**資料欄中的文字，以開啟接聽程式的詳細資訊頁面。

1. 在**規則**索引標籤上，選取接聽程式規則，然後選擇**動作**、**編輯規則**。

1. 視需要更新動作、條件和轉換。如需詳細步驟，請參閱[新增規則](add-rule.md)。

1. 選擇**下一步**。

1. （選用） 更新優先順序。

1. 選擇**下一步**。

1. 選擇**儲存變更**。

------
#### [ AWS CLI ]

**更新規則動作、條件和轉換**  
使用 [modify-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-rule.html) 命令。至少包含下列其中一個選項：`--actions`、 `--conditions`和 `--transforms`。

如需這些選項的範例，請參閱 [新增規則](add-rule.md)。

------
#### [ CloudFormation ]

**更新規則動作、條件和轉換**  
更新 [AWS::ElasticLoadBalancingV2::ListenerRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-listenerrule.html) 資源。

如需規則範例，請參閱 [新增規則](add-rule.md)。

------

## 管理規則標籤
<a name="manage-rule-tags"></a>

標籤可協助您以不同方式來分類接聽程式和規則。例如，您可以依用途、擁有者或環境來標記資源。每個規則的標籤索引鍵必須是唯一的。如果新增的標籤有已經和規則建立關聯的索引鍵，則此動作會更新該標籤的值。

當您使用完標籤之後，可以將其移除。

------
#### [ Console ]

**管理規則的標籤**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Load Balancers (負載平衡器)**。

1. 選擇負載平衡器的名稱以開啟其詳細資訊頁面。

1. 在**接聽程式和規則**索引標籤上，選取**通訊協定：連接埠**資料欄中的文字，以開啟接聽程式的詳細資訊頁面。

1. 在**規則**索引標籤上，選取**名稱標籤**欄中的文字，以開啟規則的詳細資訊頁面。

1. 在規則詳細資訊頁面上，選擇**管理標籤**。

1. 在**管理標籤**頁面上，可以執行下列一個或多個動作：

   1. 如要新增標籤，請選擇**新增標籤**，然後輸入**索引鍵**和**值**的值。

   1. 若要移除標籤，請選擇標籤旁的**移除**。

   1. 若要更新標籤，請輸入**金鑰**或值的新**值**。

1. 選擇**儲存變更**。

------
#### [ AWS CLI ]

**將標籤新增至規則**  
使用 [add-tags](https://docs.aws.amazon.com/cli/latest/reference/elbv2/add-tags.html) 命令。

```
aws elbv2 add-tags \
    --resource-arns listener-rule-arn \
    --tags "Key=project,Value=lima" "Key=department,Value=digital-media"
```

**從規則中移除標籤**  
使用 [remove-tags](https://docs.aws.amazon.com/cli/latest/reference/elbv2/remove-tags.html) 命令。

```
aws elbv2 remove-tags \
    --resource-arns listener-rule-arn \
    --tag-keys project department
```

------
#### [ CloudFormation ]

**將標籤新增至規則**  
更新 [AWS::ElasticLoadBalancingV2::ListenerRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-listenerrule.html) 資源。

```
Resources:
    myListenerRule:
     Type: 'AWS::ElasticLoadBalancingV2::ListenerRule'
     Properties:
       ListenerArn: !Ref myListener
       Priority: 10
       Conditions:
         - Field: host-header
           Values:
             - example.com
             - www.example.com
       Actions:
         - Type: forward
           TargetGroupArn: !Ref myTargetGroup
       Tags: 
        - Key: 'project'
          Value: 'lima'
        - Key: 'department'
          Value: 'digital-media'
```

------