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

使用CloudFormation创建DynamoDB CloudWatch告警关联失败求助

解决CloudFormation中DynamoDB表与CloudWatch告警关联失败的问题

我来帮你排查这个问题——你遇到的不是AWS的bug,而是模板里的一个细节错误导致的,下面一步步分析和解决:

问题根源

你的CloudWatch告警配置里,维度名称存在错误:
模板中Dimensions的Name字段写的是Table­Name,这里面包含了一个看不见的特殊字符(可能是输入时误添加的非标准分隔符),而DynamoDB在CloudWatch中的标准维度名称是TableName(连续的单个单词,无任何分隔符)。这个错误会让CloudWatch无法识别对应的指标,进而出现“指标未被选中”和服务器连接错误的提示。

修正后的告警模板

把维度名称修正为标准的TableName即可,以下是修正后的完整告警代码:

DynamoDBAlarmThroughtputAlarm:
  DependsOn: DynamoDBTable
  Type: AWS::CloudWatch::Alarm
  Properties:
    ActionsEnabled: true
    AlarmActions:
      - !Ref ErrorSNSTopic
    AlarmDescription: For when the R/W of a dynamoDB table surpasses a certain throughput.
    ComparisonOperator: GreaterThanOrEqualToThreshold
    Dimensions:
      - Name: TableName
        Value: !Ref DynamoDBTable
    EvaluationPeriods: 1
    MetricName: ConsumedWriteCapacityUnits
    Namespace: AWS/DynamoDB
    Period: 300
    Statistic: Average
    Threshold: 1

额外优化建议(非问题直接原因)

你的DynamoDB表GSI的Hash Key用了Key,和主表的Range Key同名,虽然语法上合法,但容易造成逻辑混淆,建议改成更具语义的名称(比如ObjectKey),提升模板的可读性。

验证步骤

  • 部署修正后的CloudFormation模板
  • 进入CloudWatch控制台,查看该告警的指标关联状态,此时应该能正常选中DynamoDB的ConsumedWriteCapacityUnits指标
  • 如果仍有问题,可以手动在控制台创建一个相同配置的告警,对比维度名称是否完全一致,确认模板中没有隐藏的特殊字符

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:18:32