

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

# 更新网络负载均衡器的侦听器
<a name="listener-update-rules"></a>

您可以更新侦听器协议、侦听器端口或从转发操作接收流量的目标组。默认操作（也称为默认规则）会将请求转发到选定的目标组。

如果您将协议从 TCP、UDP 或 QUIC 更改为 TLS，则必须指定安全策略和服务器证书。如果您将协议从 TLS 更改为 TCP、UDP 或 QUIC，则将删除安全策略和服务器证书。

当 TCP、TLS 或 QUIC 侦听器默认操作的目标组更新时，新连接将路由到新配置的目标组。但是，这不影响在此更改之前创建的任何活动连接。如果正在发送流量，则这些活动连接会与原始目标组中的目标保持关联长达一个小时；如果未发送流量，则保持关联的最长时间为空闲超时期，以先发生者为准。更新侦听器时未应用参数 `Connection termination on deregistration`，因为在取消注册目标时应用此参数。

不允许对 QUIC 或 TCP\$1QUIC 侦听器的端口进行更新。要更新处理 QUIC 流量的侦听器端口，必须先删除该侦听器，再通过新端口重新创建。

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

**更新侦听器**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.amazonaws.cn/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格中，选择**负载均衡器**。

1. 选择负载均衡器的名称以打开其详细信息页面。

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

1. 选择**操作**，然后选择**编辑侦听器**。

1. 根据需要更新值。
   + （可选）更改**协议**。
   + （可选）更改**端口**。
   + （可选）为**默认操作**选择不同的目标组。
   + （可选）要添加其他目标组，请选择**添加目标组**，并根据需要更新权重。
   + （可选）要移除目标组，请选择**移除**。

1. （可选）根据需要添加、更新或移除标签。

1. 选择**保存更改**。

------
#### [ Amazon CLI ]

**要更新默认操作**  
使用以下 [modify-listener](https://docs.amazonaws.cn/cli/latest/reference/elbv2/modify-listener.html) 命令来更改目标组。

```
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":10},
                {"TargetGroupArn":"target-group-2-arn","Weight":30}
            ]
        }
    }]'
```

**添加 标签**  
使用 [add-tags](https://docs.amazonaws.cn/cli/latest/reference/elbv2/add-tags.html) 命令。以下示例将添加两个标签。

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

**删除标签**  
使用 [remove-tags](https://docs.amazonaws.cn/cli/latest/reference/elbv2/remove-tags.html) 命令。以下示例将移除具有指定键的标签。

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

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

**要更新默认操作**  
更新[AWS::ElasticLoadBalancingV2::Listener](https://docs.amazonaws.cn/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-listener.html)资源以包括新的目标组。

```
Resources:
  myTCPListener:
    Type: 'AWS::ElasticLoadBalancingV2::Listener'
    Properties:
      LoadBalancerArn: !Ref myLoadBalancer
      Protocol: TCP
      Port: 80
      DefaultActions:
        - Type: forward
          TargetGroupArn: !Ref newTargetGroup
```

或者，要在多个目标组之间分配流量，请按以下方式定义 `DefaultActions`。

```
DefaultActions:
    - Type: forward
    ForwardConfig:
        TargetGroups:
        - TargetGroupArn: !Ref TargetGroup1
            Weight: 10
        - TargetGroupArn: !Ref TargetGroup2
            Weight: 30
```

**添加 标签**  
更新[AWS::ElasticLoadBalancingV2::Listener](https://docs.amazonaws.cn/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-listener.html)资源以包含 Tags 属性。

```
Resources:
  myTCPListener:
    Type: 'AWS::ElasticLoadBalancingV2::Listener'
    Properties:
      LoadBalancerArn: !Ref myLoadBalancer
      Protocol: TCP
      Port: 80
      DefaultActions:
        - Type: forward
          TargetGroupArn: !Ref myTargetGroup
      Tags: 
        - Key: 'project'
          Value: 'lima'
        - Key: 'department'
          Value: 'digital-media'
```

------