Support for fanout pattern (multiple subscriptions)
Opened this issue · 1 comments
I find that this plugin works well for 1:1 message transfer between sns and sqs, but do you support sqs with multiple subscriptions. My use case requires the use of the SNS fanout pattern, so I'm wondering what the configuration would look like. I tried the most obvious config below, but I only see one (the last) subscription bound to my SQS queue.
functions:
processEvent:
handler: handler.backofficeConsumer
events:
- snsSqs:
name: sqsbackoffice
topicArn: !Ref RegisterBroker
- snsSqs:
name: sqsbackoffice
topicArn: !Ref UpdateBroker
resources:
Resources:
RegisterBroker:
Type: AWS::SNS::Topic
Properties:
TopicName: sns-register-broker
UpdateBroker:
Type: AWS::SNS::Topic
Properties:
TopicName: sns-update-broker
In serverless.yml I could do something like this, but I want to use your integration to have a queue between them:
functions:
hello:
handler: handler.run
events:
- sns:
arn: arn:aws:sns:us-east-1:00000000000:topicname
topicName: topicname-account-1-us-east-1
- sns:
arn: arn:aws:sns:us-east-1:11111111111:topicname
topicName: topicname-account-2-us-east-1
Appreciate any suggestions.
Hi @lsacco-nutreense, thanks for the report!
I think this isn't working because the CloudFormation logical IDs are generated based on the name
attribute, so your two snsSqs
definitions are conflicting with each other. In fact, I think after #552 lands, you would get an error instead of a silent failure. It seems somewhat related to #444
I'll do some testing at some point,. In the meantime, you might be able to get it to work by giving each event definition a different name
attribute. For example:
functions:
processEvent:
handler: handler.backofficeConsumer
events:
- snsSqs:
name: sqsbackoffice1
topicArn: !Ref RegisterBroker
- snsSqs:
name: sqsbackoffice2
topicArn: !Ref UpdateBroker