title: Lambda with cloud formation : Pass Cloud formation variable to python code
body: <p>Hi below is the clouformation ,code we have python snippet for lambda function s3 to s3 copy.Here could not able to pass the destination bucket from cloud formation parameters to python snippet as target_bucket     =  Ref: dstBucket</p>
  
  <p>I am hardcoding now  target_bucket = destination1 but i want to pass as Ref value</p>
  
  <p>I have tried different ways did not succeed.</p>
  
  <pre><code>                    ---
                      AWSTemplateFormatVersion: '2010-09-09'
                      Description: 'objects from Prod bucket to Dev data bucket '
                      Parameters:
                        CustomerName:
                          Description: Customer Name
                          Type: String
                          Default: incoming
                        ProjectName:
                          Description: Project Name
                          Type: String
                          Default: TEST
                        ENV:
                          Description: Environment (dev, prd)
                          Type: String
                          Default: dev
                        srcBucket:
                          Description: Source Bucket that receives data from outside
                          Default: source1
                          Type: String
                        dstBucket:
                          Description: Destination Bucket that will receive files
                          Type: String
                          Default: destination1
                      Resources:
                        LambdaRole:
                          Type: AWS::IAM::Role
                          Properties:
                            AssumeRolePolicyDocument:
                              Version: '2012-10-17'
                              Statement:
                              - Effect: Allow
                                Principal:
                                  Service:
                                  - lambda.amazonaws.com
                                  - s3.amazonaws.com
                                Action:
                                - sts:AssumeRole
                            Path:
                              Fn::Sub: "/${ProjectName}/"
                            Policies:
                            - PolicyName:
                                Fn::Sub: "${AWS::StackName}"
                              PolicyDocument:
                                Version: '2012-10-17'
                                Statement:
                                - Sid: AllowLogging
                                  Effect: Allow
                                  Action:
                                  - logs:CreateLogGroup
                                  - logs:CreateLogStream
                                  - logs:PutLogEvents
                                  Resource: "*"
                                - Sid: SrcBucketPrivs
                                  Action:
                                  - s3:GetObject
                                  - s3:List*
                                  Resource:
                                  - Fn::Sub: arn:aws:s3:::${srcBucket}/*
                                  - Fn::Sub: arn:aws:s3:::${srcBucket}
                                  Effect: Allow
                                - Sid: DstBucketPrivs
                                  Action:
                                  - s3:PutObject
                                  - s3:List*
                                  Resource:
                                  - Fn::Sub: arn:aws:s3:::${dstBucket}/*
                                  - Fn::Sub: arn:aws:s3:::${dstBucket}
                                  Effect: Allow
                        LambdaFunction:
                          Type: AWS::Lambda::Function
                          DependsOn: LambdaRole
                          Properties:
                            Code:
                              ZipFile: |
                                 from __future__ import print_function
                                 import os
                                 import json
                                 import boto3
                                 import time
                                 import string
                                 import urllib
                                 print('Loading function')
                                 s3 = boto3.client('s3')
                                 def handler(event, context):
                                    source_bucket = event['Records'][0]['s3']['bucket']['name']
                                    key = event['Records'][0]['s3']['object']['key']
  
  
                                    target_bucket     =  Ref: dstBucket
                                    copy_source = {'Bucket':source_bucket, 'Key':key}
  
                                    try:
                                      s3.copy_object(Bucket=target_bucket, Key=key, CopySource=copy_source)
  
                                    except Exception as e:
                                      print(e)
                                      print('Error getting object {} from bucket {}. Make sure they exist '
                                         'and your bucket is in the same region as this '
                                         'function.'.format(key, source_bucket))
                                      raise e
  
                            Description: Copies objects from srcBucket to dstBucket based on S3 Event Trigger
                            FunctionName:
                              Fn::Sub: "${AWS::StackName}"
                            Handler: index.handler
                            MemorySize: 128
                            Role:
                              Fn::GetAtt:
                              - LambdaRole
                              - Arn
                            Runtime: python3.6
                            Timeout: 60
                        LambdaInvokePermission:
                          Type: AWS::Lambda::Permission
                          DependsOn: LambdaFunction
                          Properties:
                            FunctionName:
                              Fn::GetAtt:
                              - LambdaFunction
                              - Arn
                            Action: lambda:InvokeFunction
                            Principal: s3.amazonaws.com
                            SourceAccount:
                              Ref: AWS::AccountId
                            SourceArn:
                              Fn::Sub: arn:aws:s3:::${srcBucket}
  </code></pre>
  
  <p>Hi below is the clouformation ,code we have python snippet for lambda function s3 to s3 copy.Here could not able to pass the destination bucket from cloud formation parameters to python snippet as target_bucket     =  Ref: dstBucket</p>
  
  <p>I am hardcoding now  target_bucket = destination1 but i want to pass as Ref value</p>
  
  <p>I have tried different ways did not succeed.                       </p>