How to programmatically set up EventsBridge events for Lambdas

296 Views Asked by At

I have set up 2 lambda functions, deployed with AWS SAM. The first one uses the JS AWS SDK to run putRule and putTarget to trigger the second lambda with a cron job. When I run the first lambda, I see both the rule and target correctly set up in EventsBridge.

I also create the following permission for the second Lambda in my AWS SAM template

InvokePermission:
    Type: AWS::Lambda::Permission
    Properties:
      FunctionName: !Ref MyLambda
      Action: lambda:InvokeFunction
      Principal: 'events.amazonaws.com'

and can see the Policy in the console Policy statement that allows event.amazonaws.com to invoke the Lambda

The only result I see of this cron event (at the timestamp I've chosen for the rule) is a failed invocation of the second Lambda, and CloudWatch doesn't provide any useful information

Any idea of why this is failing or how to retrieve any error? Might "events.amazonaws.com" be the wrong Principal for that?

I am looking into EventSourceMapping but I can't see my case anywhere in the docs

0

There are 0 best solutions below