1

我想创建一个 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?正如我所提到的,我希望它启用但没有到期。

4

1 回答 1

4

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

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

LBCookieStickinessPolicy:
  - PolicyName: HASessionStickiness
Listeners:
  - InstancePort: '8443'
    InstanceProtocol: HTTPS
    LoadBalancerPort: '443'
    Protocol: HTTPS
    SSLCertificateId: arn:aws:iam::xxx
    PolicyNames:
      - HASessionStickiness
于 2016-10-19T14:05:26.890 回答