You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CDK中ApplicationLoadBalancedFargateService多端口健康检查失败问题排查

问题原因及修复方案

你的容器因健康检查失败被关闭,核心遗漏了安全组访问权限配置,同时还有两处关键配置需要确认调整:

1. 补充安全组规则允许ALB访问8080端口

默认创建ApplicationLoadBalancedFargateService时,仅会自动配置:

  • ALB安全组允许外部访问60000端口(你的listenerPort)
  • Fargate任务安全组仅允许ALB访问60000端口

但健康检查请求是ALB发往容器的8080端口,因此必须手动添加规则:

  • 给Fargate任务的安全组添加入站规则:允许来自ALB安全组的TCP流量访问8080端口。
  • 也可以在创建ApplicationLoadBalancedFargateService时,通过securityGroups参数指定提前配置好的自定义安全组(需包含60000和8080的入站权限)。

2. 明确健康检查的协议与健康状态码

当前配置未指定协议,若你的/health接口使用HTTPS,需显式声明;同时建议明确健康状态码,避免默认范围(200-399)导致误判:

fargate.targetGroup.configureHealthCheck({
  path: '/health',
  interval: Duration.minutes(5),
  port: '8080',
  protocol: ApplicationProtocol.HTTPS, // 接口是HTTP则用ApplicationProtocol.HTTP
  healthyHttpCodes: '200', // 根据你的接口返回值调整
})

3. Fargate端口映射优化(可选)

Fargate模式下无需指定固定hostPort,设为0让系统自动分配即可,既避免端口冲突,也不影响ALB路由和健康检查:

portMappings: [
  {
    hostPort: 0,
    containerPort: 60000,
  },
  {
    hostPort: 0,
    containerPort: 8080,
  },
]

内容的提问来源于stack exchange,提问作者Verbal_Kint

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 09:03:14