I'm building a cloud watch alarm to send an email when a lambda function is not called in a period of 5 minutes
    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
So, when the function is called, invocation metric goes to one and the alarm enter in OK state. But, when 5 minutes is passed without call the function, the alarm does not come back to ALARM state. Actually it takes like 15 minutes to go to ALARM state.
If I put a minor period, it does take less time to come back to ALARM state. I don't understand how period really works.
Does anybody know if this kind of configuration is really possible in Cloud Watch Alarm? How should I determine period and evaluation period to get the email in exactly 5 minutes ?