python - AWS Lambda 包部署

标签 python amazon-web-services aws-lambda

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

我选择 hello-python Footprint。

我使用内联代码创建了第一个 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')

在我点击“保存并测试”后,没有任何反应,但我得到了这个奇怪的红丝带,但没有其他实质性的错误信息。修改源码重新打包上传,日志和运行结果没有任何变化。 enter image description here

最佳答案

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 中查看其工作原理的示例他们在那里创建了一个名为 my_handler() 的 python 函数在文件内 hello_python.py , 他们创建了一个 lambda 函数来使用处理程序调用它 hello_python.my_handler .

关于python - AWS Lambda 包部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35782388/

相关文章:

python - beautifulSoup 在 Python 网络抓取时不匹配 chrome inspect

python - 如何将参数从一个函数传递到另一个函数?

python - 如何在没有转义斜线的情况下将字典放入 JSON

python - 如何使用python提取亚马逊产品链接

amazon-web-services - AWS API 网关 : Regex for error is not picked up

java - 无法在 AWS lambda 函数中获取 AmazonDynamoDBClient

amazon-web-services - 如何使用 CloudFormation 加密 AWS Lambda 环境变量

javascript - 在 Flask 应用程序中将变量从后端传递到前端

amazon-web-services - 如何使用访问 key ID和 secret 访问 key 将文件上传到Amazon S3

amazon-web-services - 亚马逊网络服务 (AWS) 或 Rackspace 云服务器之间的比较?