我正在尝试使用Saved Configs自动配置我的 Elastic Beanstalk 应用程序。
有谁有如何让从 Elastic Beanstalk 创建的应用程序负载均衡器使用不同的运行状况检查端口的示例吗?
如果没有,是否有办法访问底层资源,以便我可以将自定义应用HealthCheckPort: 8081到目标组?
迄今为止的详细信息和尝试:
该应用程序是一个基于 DropWizard 的简单 Java 应用程序,它在端口 8080 上提供 HTTP API,在端口 8081 上提供运行状况检查 API。
我已经通过以下 OptionSettings 使用经典 ELB 成功配置了环境:
OptionSettings:
aws:elasticbeanstalk:environment:
EnvironmentType: LoadBalanced
LoadBalancerType: classic
aws:elasticbeanstalk:application:
Application Healthcheck URL: HTTP:8081/healthcheck
aws:elasticbeanstalk:environment:process:default:
MatcherHTTPCode: '200'
Port: '8080'
Protocol: HTTP
aws:elb:healthcheck:
HealthyThreshold: '3'
Interval: '10'
Timeout: '5'
UnhealthyThreshold: '5'
aws:elb:listener:80:
ListenerProtocol: HTTP
InstancePort: '8080'
InstanceProtocol: HTTP
ListenerEnabled: true
aws:elb:loadbalancer:
CrossZone: true
Run Code Online (Sandbox Code Playgroud)
但是,当我更新配置以使用应用程序 ELB 时,与目标组关联的运行状况检查将设置为应用程序端口 (8080),而不是运行状况检查端口 (8081)。这会导致应用程序启动进入失败状态,只能通过手动更改目标组运行状况检查端口来纠正。
OptionSettings:
aws:elasticbeanstalk:environment:
EnvironmentType: LoadBalanced …Run Code Online (Sandbox Code Playgroud)