在 CloudFormation 中创建 ELB - 忽略粘性策略?

Creating ELB in CloudFormation - Stickiness Policy is Ignored?

我想创建一个 ELB 作为 CloudFormation 堆栈的一部分,它具有不会过期的负载均衡器粘性(例如,我未指定的 CookieExpirationPeriod 属性)。以下是模板的相关 ELB 部分(YAML 格式)。

HAELB:
Type: AWS::ElasticLoadBalancing::LoadBalancer
Properties:
  CrossZone: 'true'
  HealthCheck:
    HealthyThreshold: '5'
    Interval: '10'
    Timeout: '5'
    Target: HTTPS:8443/health
    UnhealthyThreshold: '2'
  Instances:
  - Ref: Instance1
  - Ref: Instance2
  - Ref: Instance3
  LBCookieStickinessPolicy:
  - PolicyName: HASessionStickiness
  Listeners:
  - InstancePort: '8443'
    InstanceProtocol: HTTPS
    LoadBalancerPort: '443'
    Protocol: HTTPS
    SSLCertificateId: arn:aws:iam::xxx
  LoadBalancerName: prodtest
  SecurityGroups:
  - sg-xxx
  Scheme: internet-facing
  Subnets:
  - subnet-xxx
  Tags:
  - 
    Key: Name
    Value: prodtest

(我用 xxx 编辑了一些信息)

模板和 ELB 的创建没有问题,但是当我在控制台上检查粘性时,它说它已被禁用。我是否错误配置了 LBCookieStickinessPolicy?正如我提到的,我希望它被启用但没有过期。

目前,您已经定义了负载均衡器的粘性策略,但尚未将粘性策略与侦听器相关联。

PolicyNames 属性 添加到您的侦听器以将您的策略​​与侦听器相关联:

LBCookieStickinessPolicy:
  - PolicyName: HASessionStickiness
Listeners:
  - InstancePort: '8443'
    InstanceProtocol: HTTPS
    LoadBalancerPort: '443'
    Protocol: HTTPS
    SSLCertificateId: arn:aws:iam::xxx
    PolicyNames:
      - HASessionStickiness