Resources: TriggerFunction: Type: AWS::Serverless::Function Properties: Runtime: nodejs14.x Handler: index.handler Timeout: 10 # in case eb has delay InlineCode: | const AWS = require('aws-sdk'); exports.handler = async (event) => { const eb = new AWS.EventBridge(); const response = await eb.putEvents({ Entries: [{ Source: process.env.EVENT_SOURCE, Detail: "{}", DetailType: "Test", }] }).promise(); const sqs = new AWS.SQS(); const data = await sqs.receiveMessage({ QueueUrl: process.env.QUEUE_URL, WaitTimeSeconds: 5, }).promise(); if (data.Messages.length == 0) { throw 'No messages in the queue!'; } }; Environment: Variables: QUEUE_URL: !Ref VerificationQueue EVENT_SOURCE: !Sub '${AWS::StackName}-test-event' Policies: - EventBridgePutEventsPolicy: EventBusName: default - SQSPollerPolicy: QueueName: !GetAtt VerificationQueue.QueueName EventRule: Type: AWS::Events::Rule Properties: Description: !Sub 'EventRule-${AWS::StackName}' EventPattern: source: - !Sub '${AWS::StackName}-test-event' Targets: - Arn: !Ref Topic Id: Target Topic: Type: AWS::SNS::Topic Subscription: Type: AWS::SNS::Subscription Properties: Protocol: sqs Endpoint: !GetAtt VerificationQueue.Arn TopicArn: !Ref Topic VerificationQueue: Type: AWS::SQS::Queue MyConnector: Type: AWS::Serverless::Connector Properties: Source: Id: EventRule Destination: Id: Topic Permissions: - Write ConnectorNotBeingTested: Type: AWS::Serverless::Connector Properties: Source: Id: Topic Destination: Id: VerificationQueue Permissions: - Write Metadata: SamTransformTest: true