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.

gefragt vor 3 Jahren3138 Aufrufe
1 Antwort
0
Akzeptierte Antwort

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
beantwortet vor 3 Jahren
  • 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.

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen