Инициируйте сигнал тревоги AWS, когда для вызова API-шлюза истечет 29-секундный таймаут и вернется ошибка 504 - PullRequest
1 голос
/ 13 мая 2019

Я новичок в облаке, и у меня есть требование настроить 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

1 Ответ

1 голос
/ 13 мая 2019

Ваши размеры верны? Вы называете это имя «environment», вы можете использовать «stage» или ApiName. Когда вы смотрите на показатель в консоли CloudWatch, как называется измерение, которое вы хотите "среда"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...