# Is it possible to set multiple eventbridge rules on a lambda?

**URL:** <https://forum.serverless.com/t/is-it-possible-to-set-multiple-eventbridge-rules-on-a-lambda/12799>\
**Category:** Serverless Framework\
**Tags:** lambda\
**Created:** [October 8, 2020, 4:48am UTC](https://forum.serverless.com/t/is-it-possible-to-set-multiple-eventbridge-rules-on-a-lambda/12799 "2020-10-08T04:48:39Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![EnterPassword](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.serverless.com/enterpassword/32/4609_2.png) [@EnterPassword](https://forum.serverless.com/u/EnterPassword)\
**Post date:** [October 8, 2020, 4:48am UTC](https://forum.serverless.com/t/is-it-possible-to-set-multiple-eventbridge-rules-on-a-lambda/12799/1 "2020-10-08T04:48:39Z")

</div>

I’d like to trigger a single lambda based on different rules (the source needs to be different). Can I set multiple event rules on a lambda? Something like the following:

```auto
mylambda:
    handler: lambdas/mylambda.handler
    description: Reusable lambda 
    iamRoleStatements:
      - Effect: Allow
        Action:
          - events:PutEvents
        Resource:
          - ${ssm:/foo/bar/myEventBus}
    events:
      - eventBridge:
          eventBus: ${ssm:/foo/bar/myEventBusArn}
          pattern:
            source:
              - foo
            detail:
              myKey:
                - bar
      - eventBridge:
          eventBus: ${ssm:/foo/bar/myEventBusArn}
          pattern:
            source:
              - baz
            detail:
              myKey:
                - oof

```

I found this [https://www.serverless.com/framework/docs/providers/aws/events/event-bridge/](https://www.serverless.com/framework/docs/providers/aws/events/event-bridge/) which seems to indicate it’s possible, but I can’t seem to get it to work.

I get the following error:

```auto
Failed to create resource. The statement id (mylambda-mylambda-rule) provided already exists. Please provide a new statement id, or remove the existing statement.

```

---

<div class="post-metadata">

**Author:** ![kshitiz973](https://avatars.discourse-cdn.com/v4/letter/k/9fc29f/32.png) [@kshitiz973](https://forum.serverless.com/u/kshitiz973)\
**Post date:** [January 4, 2021, 7:03am UTC](https://forum.serverless.com/t/is-it-possible-to-set-multiple-eventbridge-rules-on-a-lambda/12799/2 "2021-01-04T07:03:14Z")

</div>

Yes, It is possible with a little workaround.

1. Create rules as resources.
2. Add your lambda as target to the created rules.

Note: Make sure that you have latest version of serverless framework

```
functions:

  mylambda:

    handler: lambdas/mylambda.handler

    description: Reusable lambda 

    iamRoleStatements:

      - Effect: Allow

        Action:

          - events:PutEvents

        Resource:

          - ${ssm:/foo/bar/myEventBus}

resources:

  Resources:

    EventbridgeRule1:

      Type: AWS::Events::Rule

      Properties:

        EventBusName: ${ssm:/foo/bar/myEventBusArn}

        EventPattern:

          source:

            - foo

          detail:

            myKey:

              - bar

        Name: rule-1

        Targets:

          - Arn: !GetAtt 

              - MyLambdaLambdaFunction

              - Arn

            Id: MyLambda

    EventbridgeRule2:

      Type: AWS::Events::Rule

      Properties:

        EventBusName: ${ssm:/foo/bar/myEventBusArn}

        EventPattern:

          source:

              - baz

          detail:

            myKey:

              - oof

        Name: rule-2

        Targets:

          - Arn: !GetAtt 

              - MyLambdaLambdaFunction

              - Arn

            Id: MyLambda
```

---

<div class="post-metadata">

**Author:** ![JimmyBcn](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.serverless.com/jimmybcn/32/6065_2.png) [@JimmyBcn](https://forum.serverless.com/u/JimmyBcn)\
**Post date:** [August 4, 2021, 10:04pm UTC](https://forum.serverless.com/t/is-it-possible-to-set-multiple-eventbridge-rules-on-a-lambda/12799/3 "2021-08-04T22:04:52Z")

</div>

Something like this worked for me:

```auto
mylambda:
    handler: lambdas/mylambda.handler
    description: Reusable lambda 
    iamRoleStatements:
      - Effect: Allow
        Action:
          - events:PutEvents
        Resource:
          - ${ssm:/foo/bar/myEventBus}
    events:
      - eventBridge:
          eventBus: ${ssm:/foo/bar/myEventBusArn}
          pattern:
            source:
              - foo
              - baz
            detail-type:
              - bar
              - oof

```
