AWS Lambda 函数错误:使用无服务器框架部署后模块上缺少处理程序

问题描述 投票:0回答:1

我有一个使用无服务器框架来管理和部署AWS服务的项目。在

serverless.yml
文件中定义了一个状态函数和 3 个 Lambda 函数,如下所示:

functions:
  FileUploading:
    handler: wesii_pipelines.handlers.file_uploading_handler
  InternalUploadEvent:
    handler: wesii_pipelines.handlers.internal_upload_event_handler
  GenerateTemporaryCreds:
    handler: wesii_pipelines.handlers.generate_temporary_s3_creds_handler
    events:
      - http:
          path: s3creds
          method: post

stepFunctions: ${file(serverless.sfn.yml)}

resources: ${file(serverless.resources.yml)}

并且有对三个文件

serverless.sfn.yml
serverless.resources.yml
serverless.env.yml
的引用。这 3 个函数的定义包含在
wesii_pipelines
文件内的
handlers.py
文件夹中,如下所示:

def file_uploading_handler(event, context):
def internal_upload_event_handler(event, context):
def generate_temporary_s3_creds_handler(event, context):

在上次部署后(我尝试将 Lambda 函数的 Python 运行时版本从 3.7 更新到 3.11),每次执行步骤函数都会失败,并给出以下错误:

Handler 'file_uploading_handler' missing on module 'wesii_pipelines.handlers'

我一年内没有进行任何部署,因此我没有更改项目使用的任何 aws 资源。

即使尝试使用旧版本的 Python 3.7 重新部署也会出现同样的错误,因此这让我认为无服务器框架构建部署并将 Lambda 函数的名称与其定义相关联的方式发生了变化。

什么可能导致此错误?

amazon-web-services aws-lambda serverless-framework aws-step-functions
1个回答
0
投票

通过更新Serverless框架及使用的相关插件版本解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.