【问题标题】:AWS Lambda Python: 'handler' missing on moduleAWS Lambda Python:模块上缺少“处理程序”
【发布时间】:2021-12-16 05:44:44
【问题描述】:

我有一个如下结构的部署包:

my-project.zip
    --- my-project.py
    ------ lambda_handler()

然后我在配置文件中定义处理程序路径

my-project.lambda_handler

得到错误:

'handler' missing on module

看不懂

【问题讨论】:

  • 您可以尝试在文件名中不使用破折号吗?
  • @Leon 感谢您的评论,如果我尝试不使用破折号字符也会出现同样的错误

标签: amazon-web-services aws-lambda


【解决方案1】:

有一些问题会发生此错误。

问题#1:

您将遇到的第一个问题是,如果您错误地命名文件,您会收到以下错误:

无法导入模块“lambda_function”:没有名为 lambda_function 的模块

如果你错误地命名函数,你会得到这个错误:

模块“lambda_function_file”上缺少处理程序“处理程序”:“模块” 对象没有属性“处理程序”

在仪表板上,确保将处理程序字段输入为function_filename.actual_function_name,并确保它们在您的部署包中匹配。

如果这些消息更有启发性,那将是一个更简单的步骤。

资源链接:

No lambda_function?

问题#2:

adrian_praja 已解决aws forum 中的问题。他回答了以下问题

我相信你的index.js 应该包含

exports.createThumbnailHandler = function(event, context) {}

问题#3:

解决方法:正确指定方法调用

node.js 调用的方法的规范在 Lambda 的设置中不正确时,会发生这种情况。 请查看要调用的方法的规范。

在上述报错信息的情况下,我尝试调用index.js的handler方法,但是找不到对应的方法。 调用的处理通过配置选项卡上的“处理程序”设置。 下面是一个设置调用index.js的处理方法的例子。

资源链接:

  1. http://qiita.com/kazuqqfp/items/ac8d93918d0030b31aad
  2. AWS Lambda Function is returning Handler 'handler' missing on module 'index'

【讨论】:

    【解决方案2】:

    我遇到了这个问题,必须确保我的文件中有一个名为 handler 的函数,例如:

    # this just takes whatever is sent to the api gateway and sends it back
    
    def handler(event, context):
        try:
            return response(event, 200)
        except Exception as e:
            return response('Error' + e.message, 400)
    
    def response(message, status_code):
        return message
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-26
      • 2016-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多