Resources: LambdaRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Statement: - Effect: Allow Action: sts:AssumeRole Principal: Service: lambda.amazonaws.com ManagedPolicyArns: - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole TriggerFunction: Type: AWS::Lambda::Function Properties: Role: !GetAtt LambdaRole.Arn Runtime: nodejs14.x Handler: index.handler Code: ZipFile: | const AWS = require('aws-sdk'); var params = { Message: 'Test Message', TopicArn: process.env.TOPIC_ARN, }; exports.handler = async (event) => { console.log('REQUEST RECEIVED:', JSON.stringify(event)); var sns = new AWS.SNS({apiVersion: '2012-11-05'}); await sns.publish(params).promise(); }; Environment: Variables: TOPIC_ARN: !Ref Topic Topic: Type: AWS::SNS::Topic Connector: Type: AWS::Serverless::Connector Properties: Source: Id: TriggerFunction Destination: Id: Topic Permissions: - Write Metadata: SamTransformTest: true