首页 > 解决方案 > 如何使用 Cloud Formation 模板在 AWS Elastic Beanstalk 中包含粘性会话

问题描述

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

提前致谢。

标签: amazon-web-servicesamazon-cloudformationsession-cookiesamazon-elastic-beanstalksticky

解决方案


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

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

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

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

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

样本 :

"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"
}
  1. 在源包级别进行配置,即创建一个 .config 文件(比如 albstickiness.config )并将其放在 .ebextensions 文件夹中。在 .config 文件中为 ALB 进程设置粘性。

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


推荐阅读