云手表闹钟中的“周期”到底是如何工作的?

Tha*_*ano 6 amazon-web-services aws-cloudformation amazon-cloudwatch cloudwatch-alarms

我正在构建一个云手表警报,以便在 5 分钟内未调用 lambda 函数时发送电子邮件

    CloudWatchAlarm:
     Type: AWS::CloudWatch::Alarm
     Properties:
      AlarmActions:
        - !Ref SNSTopic
      AlarmDescription: Send email if lambda function was not called within 5 minutes
      Dimensions:
        -
          Name: "FunctionName"
          Value: "my-lambda"
      ComparisonOperator:  LessThanThreshold
      EvaluationPeriods: 1
      MetricName: Invocations
      Namespace: AWS/Lambda
      Period: 300
      Statistic: Sum
      Threshold: 1
      TreatMissingData: breaching
      DatapointsToAlarm: 1
Run Code Online (Sandbox Code Playgroud)

因此,当调用该函数时,调用指标变为 1,警报进入 OK 状态。但是,当 5 分钟后没有调用该函数时,警报不会返回到 ALARM 状态。实际上,进入 ALARM 状态大约需要 15 分钟。

如果我输入较小的句号,则返回“警报”状态所需的时间确实会更少。我不明白期间是如何运作的。

有谁知道这种配置在Cloud Watch Alarm中是否真的可行?我应该如何确定期限和评估期才能在 5 分钟内收到电子邮件?

Mar*_*cin 7

发生这种情况可能是因为警报状态不是使用 来评估的Period,而是使用所谓的评估范围来评估,该评估范围可能比周期长得多。更重要的是你无法控制评价范围。

例如,讨论了 CW 延迟的类似问题:

从链接:

在这种情况下,当警报未转换为 OK 状态时,它会使用评估范围内的先前数据点来评估其状态,正如预期的那样。

因此,在您的情况下,评估范围似乎达到了 15 分钟前。