integration/resources/templates/combination/embedded_connector.yaml (70 lines of code) (raw):

Resources: MyRole1: 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 MyRole2: 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 Connectors: MyConnector: Properties: Destination: Id: MyFunction2 Permissions: - Write Properties: Role: !GetAtt MyRole1.Arn Runtime: nodejs18.x Handler: index.handler Code: ZipFile: | const { Lambda } = require("@aws-sdk/client-lambda"); exports.handler = async (event) => { const params = { FunctionName: process.env.FUNCTION_NAME, InvocationType: 'RequestResponse', Payload: '{}', }; const lambda = new Lambda(); const response = await lambda.invoke(params); if(response.StatusCode !== 200){ throw new Error('Failed to get response from lambda function') } return response; }; Environment: Variables: FUNCTION_NAME: !Ref MyFunction2 MyFunction2: Type: AWS::Lambda::Function Properties: Role: !GetAtt MyRole2.Arn Runtime: nodejs18.x Handler: index.handler Code: ZipFile: | exports.handler = async (event) => { console.log(JSON.stringify(event)); }; Metadata: SamTransformTest: true