Я новичок в облаке, и у меня есть требование настроить CloudWatch для вызова Lambda в случае ошибки 504.Для этого я написал ниже код без сервера: Но при ошибке 504 код не вызывает Alarm.В коде я определил порог 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.Вот как это должно быть
Dimensions:
- Name: ApiName
Value: dev-employee-api
- Name: Stage
Value: dev
- ApiName - это имя API, которое также можно найти в AWS API Gateway.
- Этап - это имя сервера, такое как Dev, Staging или Production