我试图让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)
所以我认为我的问题来自这段代码,注意我删除了端点。
也不确定请求中的数据内容。
答案 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的选择不多。