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

无法创建关联CloudWatch告警的Route 53健康检查问题咨询

Route53健康检查关联CloudWatch告警问题排查

问题场景

尝试创建Route53健康检查并关联CloudWatch告警,使用以下AWS CLI命令和配置:

CLI命令

aws route53 create-health-check --caller-reference cw-20240607 \
  --health-check-config file://health_check_config.json

健康检查配置(health_check_config.json)

{
  "Type": "HTTPS_STR_MATCH",
  "FullyQualifiedDomainName": "https://api.dev.somedomain.dev",
  "Port": 443,
  "ResourcePath": "/health",
  "SearchString": "\"status\":\"ok\"",
  "EnableSNI": true,
  "AlarmIdentifier": {
    "Name": "regen-api-health-check",
    "Region": "us-east-1"
  }
}

遇到的错误

  1. 执行命令后触发的错误:

调用CreateHealthCheck操作时发生错误(InvalidInput):
无效参数:基础健康检查不得指定指标区域。

  1. 移除AlarmIdentifier中的Region参数后触发的新错误:

参数验证失败:
HealthCheckConfig.AlarmIdentifier中缺少必填参数: "Region"

  1. 最初用CloudFormation实现时的模糊错误:

资源处理程序返回消息: "提供的请求无效: AWS::Route53::HealthCheck"

核心问题

  1. 基础健康检查与非基础健康检查的具体区别是什么?
  2. 如何配置健康检查以关联告警标识符,从而触发CloudWatch告警?

解答

1. 基础健康检查与非基础健康检查的区别

Route53健康检查分为两类:

  • 基础健康检查:指仅由Route53自身探测节点执行的常规检查,涵盖HTTP/HTTPS/TCP/HTTP_STR_MATCH/HTTPS_STR_MATCH等标准类型。这类检查无法关联CloudWatch告警标识符,因为它不生成可联动的CloudWatch指标,完全依赖Route53的自有探测逻辑。
  • 非基础健康检查:即基于CloudWatch告警的健康检查,这类检查不依赖Route53的直接探测,而是将CloudWatch告警的状态作为健康检查的判断依据,只有这类检查才能配置AlarmIdentifier。

2. 配置可关联CloudWatch告警的健康检查

要实现健康检查状态联动CloudWatch告警,需遵循先建CloudWatch告警,再建对应Route53健康检查的逻辑,具体步骤如下:

步骤1:创建CloudWatch告警

先针对目标服务的可用性指标(比如自定义健康指标、EC2/ELB的系统指标)创建CloudWatch告警,设置触发阈值(如健康接口返回非200状态时),当指标触发阈值时,告警状态转为ALARM。

步骤2:创建基于CloudWatch告警的Route53健康检查

此时健康检查的Type必须设为CLOUDWATCH_METRIC,并正确配置AlarmIdentifier。示例配置如下:

{
  "Type": "CLOUDWATCH_METRIC",
  "AlarmIdentifier": {
    "Name": "regen-api-health-check",
    "Region": "us-east-1"
  },
  "InsufficientDataHealthStatus": "Unhealthy"
}

说明:InsufficientDataHealthStatus用于指定当CloudWatch告警处于INSUFFICIENT_DATA状态时,Route53应将该健康检查标记为何种状态,可选值为Healthy/Unhealthy/LastKnownStatus。

替代方案:常规健康检查触发CloudWatch告警

如果需要保留Route53自身的探测逻辑(比如HTTPS_STR_MATCH内容检查),同时在探测失败时触发CloudWatch告警,可按以下方式操作:

  1. 创建常规Route53健康检查(不含AlarmIdentifier);
  2. 在CloudWatch中找到该健康检查对应的指标(命名空间为AWS/Route53,指标名为HealthCheckStatus);
  3. 基于该指标创建CloudWatch告警,当指标值为0(代表健康检查失败)时触发告警。

CloudFormation模糊错误排查方向

出现Invalid request provided: AWS::Route53::HealthCheck错误时,可从以下几点排查:

  • 检查是否混用了基础健康检查参数与AlarmIdentifier;
  • 确认Type为CLOUDWATCH_METRIC时,是否正确填写了AlarmIdentifier的Name和Region;
  • 修正参数格式错误,比如FullyQualifiedDomainName不应包含协议前缀(你的配置中写了https://api.dev.somedomain.dev,正确写法应为api.dev.somedomain.dev)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 16:47:10