Bel*_*bad 4 python lambda amazon-web-services python-requests
我目前正在尝试requests在AWS Lambda函数中使用Python 模块.以下是我到目前为止采取的步骤:
我创建了一个新目录,并使用该命令在其中安装了请求模块 pip3 install requests -t .
然后我test_requests.py在目录中编写了一个简单的Python脚本,如下所示:
import requests
def my_handler(event, context):
r = requests.get("http://google.com")
return r
Run Code Online (Sandbox Code Playgroud)
我使用了压缩整个目录,包括请求模块 zip test_requests.zip *
然后,我使用以下命令将该函数上载到AWS: aws lambda create-function --function-name test_requests --zip-file fileb://test_requests.zip --handler test_requests.my_handler --runtime python3.6 --region us-east-1 --role xxxMY_ROLE_ARNxxx
最后,我用这个命令调用了这个函数: aws lambda invoke --function-name test-requests --payload {} --region us-east-1 lambda_response.txt
当我发出这个命令时,我从Lambda得到了一个未处理的异常.输出文件lambda_response.txt包含:{"errorMessage": "module 'requests' has no attribute 'get'", "errorType": "AttributeError", "stackTrace": [["/var/task/test_requests.py", 3, "my_handler", "r = requests.get('http://google.com')"]]}
我已经看到几个关于AWS lambda的问题,并且无法正确导入模块.这些问题似乎都集中在lambda无法找到模块.在这种情况下,似乎lambda已找到请求,但无法访问其所有属性.
Bel*_*bad 14
我弄清楚我做错了什么.zip test.zip *仅拉链目录结构的顶级.我需要-r旗帜以捕捉一切.