Aws lambda 如何使用python在AWS lambda中进行HTTP rest调用?

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 另见

要使用python进行http调用,我的方法是使用
请求

但是,
请求
未安装在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())