如何修复AttributeError:模块'botocore.vendored.requests'没有属性'Post'追溯

时间:2019-08-14 13:16:15

标签: python-3.x amazon-web-services aws-lambda

我试图让LexBot与Lambda进行通信,因此我遵循了创建请求,签名和执行此操作所需的所有过程。 但是我不确定是否需要从Python导入某些东西。当我要发布消息时失败。创建签名以及auth头。

请告知大家,任何帮助将不胜感激!

我已将这些文章用作指导: https://docs.aws.amazon.com/general/latest/gr/sigv4-signed-request-examples.html

https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html

print ('\nBEGIN REQUEST++++++++++++++++++++++++++++++++++++')
print ('Request URL = ' + endpoint)
print('\n' + authorization_header)
print('\nX-Amz-content-Sha256 header is' + payload_hash)

r = requests.Post ('myendpoint'+ canonical_uri, data=payload, 
headers=headers)
data = r.json()
lex_message = data['message']
print ('' + lex_message)

所以我认为我的问题来自这段代码,注意我删除了端点。

也不确定请求中的数据内容。

1 个答案:

答案 0 :(得分:3)

除了使用GET的{​​{1}}之外,我有相同的错误。已从python3.8中的GET中删除对POST / botocore.vendored.requests的支持。

作为一种解决方法,您可以将python3.8用作lambda,并且仍然可以使用一段时间。但是,您会发牢骚,python3.7也将删除对此的支持:

2020/03/31

因此,使用DeprecationWarning: You are using the put() function from 'botocore.vendored.requests'. This dependency was removed from Botocore and will be removed from Lambda after 2020/03/31. https://aws.amazon.com/blogs/developer/removing-the-vendored-version-of-requests-from-botocore/. Install the requests package, 'import requests' directly, and use the requests.put() function instead. 获取pip软件包或使用下面的链接中所示的layer的选择不多。

更多信息可以在Upcoming changes to the Python SDK in AWS Lambda

中找到