AppRunner CloudWatch告警无指标数据问题求助
问题
尝试为运行状态正常的AppRunner服务创建CloudWatch告警,但无论是通过Terraform代码创建还是手动创建,告警始终显示“Insufficient data”。测试CPU和内存指标均出现此问题,Terraform代码如下:
resource "aws_cloudwatch_metric_alarm" "apprunner_cpu" { alarm_name = "<redacted>" comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 2 metric_name = "CPUUtilization" namespace = "AWS/AppRunner" period = 60 statistic = "Average" threshold = 80 alarm_description = "AppRunner CPU utilization" insufficient_data_actions = [] dimensions = { ServiceName = aws_apprunner_service.main.service_name ServiceID = aws_apprunner_service.main.service_id } }


解决思路
- 修正指标维度:AWS/AppRunner的CloudWatch指标仅需
ServiceName作为维度,无需指定ServiceID。多余的维度会导致告警无法匹配到对应指标数据,删除ServiceID维度即可。修改后的Terraform代码示例:resource "aws_cloudwatch_metric_alarm" "apprunner_cpu" { alarm_name = "<redacted>" comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 2 metric_name = "CPUUtilization" namespace = "AWS/AppRunner" period = 60 statistic = "Average" threshold = 80 alarm_description = "AppRunner CPU utilization" insufficient_data_actions = [] dimensions = { ServiceName = aws_apprunner_service.main.service_name } } - 验证指标存在性:前往CloudWatch控制台的指标浏览器,进入
AWS/AppRunner命名空间,确认对应ServiceName下的CPUUtilization/MemoryUtilization指标是否有数据点。若没有,可能是服务刚启动未产生指标,可等待一段时间或发起测试流量触发指标采集。 - 确认区域一致性:AppRunner服务与CloudWatch告警必须处于同一AWS区域,跨区域会导致无法读取指标数据。
- 检查权限配置:确保创建告警的IAM账号拥有
cloudwatch:PutMetricAlarm权限,以及读取AppRunner指标的权限(手动创建也异常时此概率较低,但可排查IAM策略)。
内容的提问来源于stack exchange,提问作者Evandro Pomatti
相关产品推荐
相关产品推荐

