3

我是云中的新手,我需要配置 CloudWatch 以在出现 504 错误时调用 Lambda。为此,我在下面编写了无服务器代码:但在 504 错误时,代码未调用警报。在代码中,我定义了 29000 毫秒(29 秒)的阈值,任何花费时间超过或等于的请求都应该调用 Alarm。

请帮我弄清楚我在这里缺少什么?

 TaskTimeoutAlarm:
  Type: AWS::CloudWatch::Alarm
  Properties:
    Namespace: "AWS/ApiGateway"
    MetricName: "Latency"
    AlarmDescription: "API Gateway timeout"
    Threshold: 29000
    Period: 300
    EvaluationPeriods: 1
    ComparisonOperator: "GreaterThanOrEqualToThreshold"
    AlarmActions:
      - arn:aws:sns:${self:provider.region}:${self:provider.awsAccountId}:${self:custom.alertSnsTopic}
    OKActions:
      - arn:aws:sns:${self:provider.region}:${self:provider.awsAccountId}:${self:custom.alertSnsTopic}
    TreatMissingData: "notBreaching"
    Statistic: "Maximum"
    Dimensions:
      - Name: environment
        Value: ${self:provider.stage}

已编辑-----------

问题在于维度中传递的键值。这是应该的

Dimensions:
      - Name: ApiName 
        Value: dev-employee-api
      - Name: Stage
        Value: dev
  • ApiName是您也可以在 AWS API Gateway 中找到的 API 名称。
  • Stage是服务器的名称,例如 Dev、Staging 或 Production
4

1 回答 1

3

你的尺寸正确吗?您将名称声明为“环境”,您可能想要使用“阶段”或 ApiName。当您在 CloudWatch 控制台中查看指标时,您想要“环境”的维度的名称是什么?

于 2019-05-13T12:32:09.683 回答