AWS Lambda SNS event is not binding to the correct SNS Topic ARN

I have a serverless resource for SNS topic in the resources section in the serverless.yml something like this,

resources:
  Resources:
    SNSTopic:
      Type: AWS::SNS::Topic
      Properties:
        DisplayName: SNS Topic
        TopicName: ${self:service}-${self:provider.stage}-Topic 

When I am trying to bind this SNS topic to my lambda event as given below, lambda is not triggering by the SNS event(I am not getting any error while deploying). When I check AWS console for that lambda function the SNS event bound with wrong ARN value.

Function:
    handler: src/sample/file.lambdaHandler
    role: s3FullAccessRole
    events: SNSTopic
    Properties:
      Policies:
        - AWSLambdaExecute
        - Statement:
            - Effect: Allow
              Action:
                - 'lambda:InvokeFunction'

I have tried with changing event with all the different ways mentioned in here, https://serverless.com/framework/docs/providers/aws/events/sns/. The only way I found is to hard code the SNS Topic ARN value in the lambda event, which is not ideal for my situation. Any help is really appreciated.

1 Like