How to add a dependency file in AWS Lambda Console with CloudFormation Package

Viewed 392

My AWS lambda function MyLambda requires a file called auxiliary.json. I manually created the function and the file in the console and it is working fine.

Now, I would like to do this using CloudFormation so that I can see both the lambda function code and the file content on the console, and it works the same way it does with the manually created one. I do not want to package it with as zip and push it to S3 bucket.

I have the files in my code folder in the following structure:

.
├── lambda-template.yaml
└── lambdas/
    ├── mylambda.py
    └── auxiliary.json

In lambda-template.yaml, I have the lambda resource like below:

Resources:
  MyLambda:
    Type: AWS::Lambda::Function
    Properties:      
      FunctionName: "MyLambda"
      Code: lambdas/mylambda.py
      Handler: "MyLambda.lambda_handler"
      Runtime: "python3.8"
      Timeout: 30
      MemorySize: 128

After running the aws cloudformation package like below, I get the code from mylambda.py added to mylambda-template.packaged.yaml file.

aws cloudformation package \
   --template-file mylambda-template.yaml \
   --s3-bucket example-bucket \
   --output-template-file mylambda-template.packaged.yaml \
   --profile myawsprofile \
   --region us-east-1

And, I can deploy the packaged template like below with no issue:

aws cloudformation deploy \
   --template-file mylambda-template.packaged.yaml \
   --stack-name mylambda \
   --profile myawsprofile \
   --region us-east-1

However, I cannot add the required file auxiliary.json in the console using CloudFormation. How can I do this?

1 Answers

Your Code is the path to only mylambda.py

Code: lambdas/mylambda.py

You should make it to directory:

Code: lambdas
Related