如何使用 Cloudformation 模板在 AWS Elastic Beanstalk 中包含粘性会话

Posted

技术标签:

【中文标题】如何使用 Cloudformation 模板在 AWS Elastic Beanstalk 中包含粘性会话【英文标题】:How to include sticky session in AWS Elastic Beanstalk using Cloud Formation template 【发布时间】:2020-01-17 04:14:24 【问题描述】:

当我在 Elastic Beanstalk 中搜索粘性时,我没有找到如何使用 AWS Cloud Formation 包含它的方法。谁能帮我做那件事。

提前致谢。

【问题讨论】:

【参考方案1】:

如果我们看到粘性会话的定义,它会说“粘性会话是一种将请求路由到目标组中的同一目标的机制”。

在 Elastic Beanstalk 中,目标组由进程表示。所以我们需要使用option settings在进程级别设置粘性

您可以在这里采取两种方法:(以下是“默认”流程,如果您配置了其他流程,则进行相应修改,但实现保持不变)

选项设置命名空间:aws:elasticbeanstalk:environment:process:default 设置的有效选项:StickinessEnabled、StickinessLBCookieDuration

    在 CloudFormation 模板中的 AWS::ElasticBeanstalk::Environment 类型下指定选项设置,如所述。

样本:

"Environment": 
  "Properties": 
    "ApplicationName": 
      "Ref": "Application"
    ,
    "Description": "AWS Elastic Beanstalk Environment running Python Sample Application",
    "SolutionStackName": 
      "Ref": "SolutionStackName"
    ,
    "VersionLabel": "Initial Version",
    "OptionSettings": [
      
        "Namespace": "aws:elasticbeanstalk:environment:process:default",
        "OptionName": "StickinessEnabled",
        "Value":"true"
      ,
      
        "Namespace": "aws:elasticbeanstalk:environment:process:default",
        "OptionName": "StickinessLBCookieDuration",
        "Value":"43200"
      
    ]
  ,
  "Type": "AWS::ElasticBeanstalk::Environment"

    在源包级别进行配置,即创建一个 .config 文件(比如 albstickiness.config )并将其放在 .ebextensions 文件夹中。在 .config 文件中为 ALB 进程设置粘性。

可以在子标题“.ebextensions/alb-default-process.config”下找到here 示例

【讨论】:

【参考方案2】:

你可以试试下面的

      LBCookieStickinessPolicy:
      - PolicyName: myLBPolicy
        CookieExpirationPeriod: '180'

您可以阅读更多关于粘性会话here 和here

【讨论】:

当我尝试这个时,我在 CloudFormation 中收到如下错误。而且我无法使用它创建堆栈。 "遇到不受支持的属性 LBCookieStickinessPolicy" 您使用的是哪个负载均衡器? 应用负载均衡器

以上是关于如何使用 Cloudformation 模板在 AWS Elastic Beanstalk 中包含粘性会话的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Cloudformation 模板/CDK 中添加 AWS IoT 配置模板

cloudFormation 模板验证错误:如何拆分 serverless.yml 文件

如何修复与 AWS::CloudFormation::Init 一起创建 EC2 的 cloudformation 模板

如何使用 Cloudformation 模板在 AWS Elastic Beanstalk 中包含粘性会话

如何使用 aws cloudformation 模板在 aws cognito 用户池中设置所需属性?

如何在 CloudFormation 模板中禁用对 Auto Scaling 组中实例的详细监控?