cfnresponse package is missing in new Python 3.9 runtime

2

Recently, AWS released Lambda runtime for python 3.9! Great!

But I noticed that, used as a backend of Cloudformation custom resource, cfnresponse is not provided.
This might be a bug, or do I miss something?

How to reproduce:
Use the following cloudformation template, and look into CloudWatch Logs for the backend function.

AWSTemplateFormatVersion: '2010-09-09'
Resources:
  BareLambdaFunctionPython39:
    Type: AWS::Lambda::Function
    Properties:
      Runtime: python3.9
      Handler: "index.handler"
      Role: !GetAtt LambdaExecutionRole.Arn
      Code:
        ZipFile: |
          import cfnresponse
          def handler(event, context):
              cfnresponse.send(event, context, cfnresponse.SUCCESS, {})
  BareLambdaFunctionPython39Custom:
    Type: Custom::BareLambdaFunctionPython39
    Properties:
      ServiceToken: !GetAtt BareLambdaFunctionPython39.Arn
 
  LambdaExecutionRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - lambda.amazonaws.com
            Action:
              - sts:AssumeRole
      Path: /
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
START RequestId: 96967b62-6969-4005-97ae-4bxxxxxxxxxx Version: $LATEST
[ERROR] Runtime.ImportModuleError: Unable to import module 'index': No module named 'cfnresponse'
Traceback (most recent call last):
END RequestId: 96967b62-6969-4005-97ae-4bxxxxxxxxxx 

Note that there is no error if I use python 3.8 runtime.

질문됨 3년 전3138회 조회
1개 답변
0
수락된 답변

Hi penguin32,

We've identified the issue and have deployed a fix. You should find cfnresponse now works properly for Lambda functions using the Python 3.9 managed runtime. Thanks for bringing this to our attention.

AWS
답변함 3년 전
  • This is now missing in 3.10 and 3.11 runtime

  • Reminder to everyone, you can only import cfnresponse if you are deploying the Lambda and code using Zip in CloudFormation. You cannot just create a Lambda and import.

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠