クラウドフォーメーションスタックを作成しようとしています。スタックは正しくデプロイされました。 Lambda関数が作成されましたが、コードが関数にインラインとして追加されていません。
それは言う
ハンドラーで指定されたファイル名がデプロイメントパッケージのファイル名と一致しないため、Lambda関数 "lambda_function"をインラインで編集することはできません。
クラウド形成コード:
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
コードをインラインで指定する場合、ハンドラーの最初の部分は常にindex
である必要があります。
Codeプロパティ内でZipFileプロパティを指定してソースコードをインラインテキストとして指定する場合は、ハンドラーとしてindex.function_nameを指定します。 http://docs.aws.Amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html
したがって、これを使用してください:
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
注意index.lambda_handler
の代わりに lambda_function.lambda_handler
。