

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

# 编辑应用程序负载均衡器的侦听器规则
<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. 在导航窗格中，选择**负载均衡器**。

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. 在导航窗格中，选择**负载均衡器**。

1. 选择负载均衡器。

1. 在**侦听器和规则**选项卡上，选择**协议：端口**列中的文本以打开侦听器的详细信息页面。

1. 在**规则**选项卡上选择该侦听器规则，然后选择**操作**、**重新确定规则的优先级**。

1. 在**侦听器规则**部分中，**优先级**列会显示当前的规则优先级。要更新规则优先级，请输入一个介于 1 至 50000 之间的值。

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. 在导航窗格中，选择**负载均衡器**。

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. 在导航窗格中，选择**负载均衡器**。

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'
```

------