web-dev-qa-db-ja.com

CloudFormationを使用してAWSLambda関数にコードを追加できません

クラウドフォーメーションスタックを作成しようとしています。スタックは正しくデプロイされました。 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
8
Neeraj

コードをインラインで指定する場合、ハンドラーの最初の部分は常に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

14
Sergey Kovalev