Aws lambda 如何使用python在AWS lambda中进行HTTP rest调用?
要使用python进行http调用,我的方法是使用Aws lambda 如何使用python在AWS lambda中进行HTTP rest调用?,aws-lambda,Aws Lambda,要使用python进行http调用,我的方法是使用请求 但是,请求未安装在lambda上下文中。使用导入请求导致模块未找到错误 另一种方法是使用botocore.Vendor导入请求提供的库。但是AWS不推荐使用此库 我希望避免在lambda zip文件中打包依赖项 在基于python的lambda中进行REST调用的最聪明的解决方案是什么?解决方案1) 由于botocore.vendored导入请求中的已被弃用,建议采用的方法是安装依赖项 $ pip install requests 另见
请求
但是,请求
未安装在lambda上下文中。使用导入请求
导致模块未找到错误
另一种方法是使用botocore.Vendor导入请求提供的库。但是AWS不推荐使用此库
我希望避免在lambda zip文件中打包依赖项
在基于python的lambda中进行REST调用的最聪明的解决方案是什么?解决方案1)
由于botocore.vendored导入请求中的已被弃用,建议采用的方法是安装依赖项
$ pip install requests
另见
但是您必须注意在lambda zip中打包依赖项
解决方案2)
我的首选解决方案是使用urllib
。它在lambda执行上下文中
解决方案3)
使用http.client
,它也在lambda执行上下文中
import requests
response = requests.get('https://...')
import urllib.request
import json
res = urllib.request.urlopen(urllib.request.Request(
url='http://asdfast.beobit.net/api/',
headers={'Accept': 'application/json'},
method='GET'),
timeout=5)
print(res.status)
print(res.reason)
print(json.loads(res.read()))
import http.client
connection = http.client.HTTPSConnection('fakerestapi.azurewebsites.net')
connection.request('GET', '/api/Books')
response = connection.getresponse()
print(response.read().decode())