I'm trying to create the Cloud Formation Stack. The Stack was deployed correctly. Lambda function was created, but the code is not getting added as inline to the function.
It says
Your Lambda function "lambda_function" cannot be edited inline since the file name specified in the handler does not match a file name in your deployment package.
Cloud Formation Code:
LambdaFunction:
Type: "AWS::Lambda::Function"
Properties:
Code:
ZipFile: !Sub |
import json
def lambda_handler(event,context):
#Creating delete request
...
Description: Lambda function.
FunctionName: lambda_function
Handler: lambda_function.lambda_handler
Role : !GetAtt LambdaExecutionRole.Arn
Runtime: python2.7
Timeout: 5
Using AWS CloudFormation to deploy AWS Lambda functions provides a reliable, reproducible and version-able deployment mechanism. But while simple deployments are easily achieved, it can be challenging to produce templates that seamlessly deploy to any AWS Region supported by Lambda.
The first part of the handler should always be index
if you specify the code inline.
If you specify your source code as inline text by specifying the ZipFile property within the Code property, specify index.function_name as the handler. http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html
So just use this:
LambdaFunction:
Type: "AWS::Lambda::Function"
Properties:
Code:
ZipFile: !Sub |
import json
def lambda_handler(event,context):
#Creating delete request
...
Description: Lambda function.
FunctionName: lambda_function
Handler: index.lambda_handler
Role : !GetAtt LambdaExecutionRole.Arn
Runtime: python2.7
Timeout: 5
Notice index.lambda_handler
instead of lambda_function.lambda_handler
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With