首页 > 解决方案 > 使用 ALB 创建 ElasticBeanstalk 应用程序时覆盖 HealthCheckPort

问题描述

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

侦听器在端口上443。应用程序有 2 个端口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 进行更改?

标签: amazon-web-servicesamazon-elastic-beanstalkamazon-cloudformation

解决方案


您可以在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"
   }
}

推荐阅读