Cloudwatch failedinvocation error no logs available

后端 未结 8 1478
感动是毒
感动是毒 2020-12-29 04:31

I have set up a Cloudwatch rule event where an ECS task definition is started when a previous task definition is completed.

I can see the event triggers the task de

8条回答
  •  鱼传尺愫
    2020-12-29 05:08

    I too was not seeing my lambda executing, but I did find evidence of FailedInvocations in CloudWatch Events (but only via the Event Rule Metrics link, which took me to https://console.aws.amazon.com/cloudwatch/home?region={your_aws_region}#metricsV2:graph=~();query=~'*7bAWS*2fEvents*2cRuleName*7d*2{Lambda_Physical_ID})

    I was not seeing the "trigger" in the console either so I took a step back, decided to do a more "simple" SAM deploy with the Events property set, then looked at the processed template to determine how it was done in that case. Below is what I ended up using to implement "EventBridge" to have a ScheduledEvent fire my Lambda (alias in my case, which is why I discovered this).

    Simple SAM approach to scheduled invocations

    (Add this property to your AWS::Serverless::Function)

    Events:
      InvokeMyLambda:
        Type: Schedule
        Properties:
          Schedule: rate(1 minute)
          Description: Run SampleLambdaFunction once every minute.
          Enabled: True
    

    By looking at the converted template in CloudFormation and comparing to the version without Events, I was able to identify not on the expected AWS::Events::Rule (which is what I expected to see invocing the lambad), but I also saw AWS::Lambda::Permission.

    Hopefully this is what you all are needing as well to get invocations working (and not needing the missing logs to see why) :P

    Working approach

    MyLambdaScheduledEvent:
      Type: AWS::Events::Rule
      Properties:
        Name: MyLambdaScheduledEvent
        EventBusName: "default"
        State: ENABLED
        ScheduleExpression: rate(5 minutes) # same as cron(0/5 * * * ? *)
        Description: Run MyLambda once every 5 minutes.
        Targets:
        - Id: EventMyLambdaScheduled
          Arn: !Ref MyLambda
    MyLambdaScheduledEventPermission:
      Type: AWS::Lambda::Permission
      Properties:
        Action: lambda:InvokeFunction
        Principal: events.amazonaws.com
        FunctionName: !Ref MyLambda
        SourceArn: !GetAtt MyLambdaScheduledEvent.Arn
    

提交回复
热议问题