AWS CloudFormation:当 ASG 在健康检查中返回非 200(OK)时,使 ELB 无法用于请求

AWS CloudFormation:当 ASG 在健康检查中返回非 200(OK)时,使 ELB 无法用于请求

我有一个 ELB 和 ASG,其中 ASG 必须预热大约 75 分钟,然后才能提供完整且正确的结果。我指定了 4500 秒的健康检查宽限期。在 ELB 模板中,我指定了一个要 ping 的健康检查目标,只有当预热完成后,它才会返回 200(OK)。

"HealthCheck" : {
        "HealthyThreshold" : "3",
        "Interval" : "60",
        "Target" : { "Ref" : "HealthCheckAPI" },
        "Timeout" : "15",
        "UnhealthyThreshold" : "5"
    }

Healthcheck API 的 URL 在属性中定义:

  "HealthCheckAPI" : {
  "Type" : "String",
  "Description" : "The API to check for service availability and being warmed up",
  "Default": "HTTP:8080/api/health"
  }

但是,我现在得到的结果是,即使 Healthcheck API 返回 503(服务不可用),ELB 仍然可以为正在预热的 ASG 实例提供请求。这是预料之中的吗?如何让 ELB 在 Healthcheck API 返回非 200(OK)期间不可用?

答案1

我的 HealthCheck API 返回了 200(OK)状态,而它在预热期间应该返回 503。问题已解决。

相关内容