使用 ALB 创建 ElasticBeanstalk 应用程序时覆盖 HealthCheckPort

Posted

技术标签:

【中文标题】使用 ALB 创建 ElasticBeanstalk 应用程序时覆盖 HealthCheckPort【英文标题】:Overwrite HealthCheckPort while creating ElasticBeanstalk application with ALB 【发布时间】:2021-06-03 12:07:22 【问题描述】:

我正在使用 Cloudformation 使用 Application Load Balancer 创建 AWS ElasticBeanstalk

侦听器位于端口443。 应用程序有两个端口8081(默认)和50050(健康检查)

我想TargetGroup 使用端口50050 和端点/health 进行健康检查。

查看 elbv2 的 AWS 文档,我不知道如何真正让它使用我的自定义端口 50050 进行健康检查。我可以指定HealthCheckPath,但不能指定端口。

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options-general.html#command-options-general-environmentprocess

我可以通过 AWS 控制台轻松更改 HealthCheckPort,但如何通过 Cloudformation json 进行更改?

【问题讨论】:

【参考方案1】:

您可以在AWS::ElasticBeanstalk::Environment 中提供这些选项。更具体地说,您必须使用AWS::ElasticBeanstalk::Environment OptionSetting。

Json 示例,用于HealthCheckPath


   "Type" : "AWS::ElasticBeanstalk::Environment",
   "Properties" : 
      "ApplicationName" :  "Ref" : "sampleApplication" ,
      "Description" :  "AWS Elastic Beanstalk Environment running Python Sample Application",
      "EnvironmentName" :  "SamplePythonEnvironment",
      "SolutionStackName" : "64bit Amazon Linux 2017.03 v2.5.0 running Python 2.7",
      "OptionSettings" : [ 
         "Namespace" : "aws:elasticbeanstalk:environment:process:default",
         "OptionName" : "HealthCheckPath",
         "Value" : "/health"
       ],
      "VersionLabel" : "Initial Version"
   

【讨论】:

这就是我正在做的。我能够通过 HealthCheckPath 但端口呢? @tefozi 检查here. 在这里发现了同样的问题,但没有好的解决方案 - serverfault.com/questions/837088/…

以上是关于使用 ALB 创建 ElasticBeanstalk 应用程序时覆盖 HealthCheckPort的主要内容,如果未能解决你的问题,请参考以下文章

如何创建到 ALB 的 Route 53 记录? (AWS)

如何使用 kubernetes_ingress terraform 资源创建 AWS ALB?

ECS服务使用ALB的权限问题

Terraform AWS EKS ALB Kubernetes Ingress 不会创建侦听器或目标组

我可以在 VPC 中将 SNS 订阅与内部 ALB 端点一起使用吗?

带有 ALB 入口控制器的 Terraform AWS Kubernetes EKS 资源不会创建负载均衡器