我想每小时向外部 API (https://example.com/api/jobs/test) 发送一个发布请求。
我使用的Lambda函数如下:
Handler: index.lambda_handler
python: 3.6
索引.py
import requests
def lambda_handler(event, context):
url="https://example.com/api/jobs/test"
response = requests.post(url)
print(response.text) #TEXT/HTML
print(response.status_code, response.reason) #HTTP
测试活动:
{
"url": "https://example.com/api/jobs/test"
}
错误:
START RequestId: 370eecb5-bfda-11e7-a2ed-373c1a03c17d Version: $LATEST
Unable to import module 'index': No module named 'requests'
END RequestId: 370eecb5-bfda-11e7-a2ed-373c1a03c17d
REPORT RequestId: 370eecb5-bfda-11e7-a2ed-373c1a03c17d Duration: 0.65 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 21 MB
如有任何帮助,我们将不胜感激。
供应的
requests
现已从 botocore
中删除。
考虑使用 CloudFormation 包或 SAM CLI 打包功能通过
requirements.txt
打包您的 Lambda 代码。
我之前的旧答案
弃用: 您可以利用requests
库中的requests
模块,而无需安装或打包您的函数。boto
考虑这个导入:
import botocore.vendored.requests as requests
您需要将
requests
模块安装到您的项目目录并创建 lambda 部署包。有关详细信息,请参阅此链接。
简而言之,您需要在开发系统(PC或Mac)上创建index.py文件,并在该系统上安装Python和pip;他们按照文档中的步骤操作。要创建 lambda,请选择“上传 zip”选项,而不是“编辑内联”选项
subprocess.call('pip install requests -t /tmp/ --no-cache-dir'.split(), stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) sys.path.insert(1, '/tmp/') 导入请求
您需要安装请求模块。类型:
pip install requests
进入您的终端,或者如果您使用的是激活虚拟环境,则在激活虚拟环境后。