我是云中的新手,我需要配置 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