【问题标题】:AWS Lambda package deploymentAWS Lambda 包部署
【发布时间】:2016-07-04 22:32:00
【问题描述】:

我正在尝试将 python .zip 包部署为 AWS Lambda

我选择 hello-python 足迹。

我使用内联代码创建了第一个 lambda,之后我尝试更改为从开发 .zip 上传。

我使用的包是一个 .zip 文件,其中包含一个名为 hello_python.py 的文件,其代码与默认的内联代码示例相同,如下所示:

from __future__ import print_function

import json

print('Loading function')


def lambda_handler(event, context):
    #print("Received event: " + json.dumps(event, indent=2))
    print("value1 = " + event['key1'])
    print("value2 = " + event['key2'])
    print("value3 = " + event['key3'])
    return event['key1']  # Echo back the first key value
    #raise Exception('Something went wrong')

点击“保存并测试”后,什么也没有发生,但我得到这个奇怪的红丝带,但没有其他实质性错误消息。修改源码,重新打包再上传,日志和运行结果没有任何变化。

【问题讨论】:

  • CloudWatch Logs 中是否显示任何内容?

标签: python amazon-web-services aws-lambda


【解决方案1】:

Lambda 函数需要<FILE-NAME-NO-EXTENSION>.<FUNCTION-NAME> 格式的处理程序。在您的情况下,处理程序设置为 lambda_function.lambda_handler,这是 AWS Lambda 分配的默认值)。但是,您已将文件命名为 hello_python.py。因此,AWS Lambda 正在寻找一个名为 lambda_function.py 的 python 文件,但什么也没找到。

要解决这个问题:

  1. hello_python.py 文件重命名为lambda_function.py
  2. 将您的 lambda 函数处理程序修改为 hello_python.lambda_handler

您可以在documentation 中看到其工作原理的示例,其中他们在文件hello_python.py 中创建了一个名为my_handler() 的python 函数,并创建了一个lambda 函数来使用处理程序hello_python.my_handler 调用它。

【讨论】:

    猜你喜欢
    • 2017-06-19
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2022-12-23
    • 1970-01-01
    相关资源
    最近更新 更多