概要

LambdaをEventBridgeから呼び出したくなったので、LambdaはServerlessで作成した関数を対象にLambdaPermissionを設定することにした。

functions:
  Foo:
    handler: src/functions/Foo.handler
    name: '${self:provider.stage}-Foo'

Resources:
  FooLambdaPermissionEventBridge:
    Type: AWS::Lambda::Permission
    Properties:
      Action: 'lambda:InvokeFunction'
      FunctionName: !GetAtt FooLambdaFunction.Arn
      Principal: 'events.amazonaws.com'
      SourceArn: !Sub 'arn:aws:events:${opt:region, self:provider.region}:${AWS::AccountId}:rule/*'

サーバーレスのデフォルト対応できそうになかったので、LambdaPermissionを自前で実装して対応した。