AWS Lambda Python:模块上缺少“处理程序”

时间:2016-11-22 12:25:36

标签: amazon-web-services aws-lambda

我有以下结构的部署包:

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

然后我在配置文件

中定义处理程序路径

MY-project.lambda_handler

获取错误:

'handler' missing on module

无法理解

2 个答案:

答案 0 :(得分:3)

此错误发生了一些问题。

问题#1:

您要遇到的第一个问题是,如果您错误地命名该文件,则会收到此错误:

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

如果您错误地命名该功能,则会收到此错误:

  

Handler' handler'缺少模块' lambda_function_file':'模块'   object没有属性' handler'

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

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

资源链接:

No lambda_function?

问题#2:

adrian_praja已在aws forum中解决了该问题。他回答了以下内容

  

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

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

问题#3:

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

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

在上述错误消息的情况下,我尝试调用index.js的处理程序方法,但找不到相应的方法。 呼叫处理用" Handler"设置。在配置选项卡上。 下面是设置调用index.js的处理程序方法的示例。 enter image description here

资源链接:

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

答案 1 :(得分:0)

我遇到了这个问题,必须确保文件中有一个名为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