Я пишу лямбда-функцию AWS, которая вызывает другую лямбда-функцию. Обе лямбда-функции в Python. Вызываемая функция возвращает JSON, который помещается в botocore.response.streamingbody
. Я не могу преобразовать это обратно в JSON для доступа к обязательным полям.
Пробовал разные ссылки в том числе:
p = r['Payload'].read()
print p #Prints an empty string
print(r['Payload'].read()) #Prints Just a string
invoke_lambda(payload)
and r['Payload'].read().decode()
r['Payload'].read().decode("utf-8")
Пример вывода из вызываемой лямбда-функции (полученный от печати ответа перед возвратом):
{'statusCode': 200, 'headers': {'Access-Control-Allow-Origin': ''}, 'body1': [{'statusCode': 200, 'body': {' featureId ':' testFeature ',' version ':' 2.1 ',' active ': True},' headers ': {' Access-Control-Allow-Origin ':' '}}]}
Ответ, возвращаемый после вызова этой лямбды из вызываемой лямбда-функции:
{u'Payload ':, u'ExecutedVersion': '$ LATEST', 'ResponseMetadata': {'RetryAttempts': 0, 'HTTPStatusCode': 200, 'RequestId': '0f10c74d-ebd7-4a8a-8992- 6211a969ceb1 ',' HTTPHeaders ': {' x-amzn-requesttid ':' 0f10c74d-ebd7-4a8a-8992-6211a969ceb1 ',' content-length ':' 213 ',' x-amz-execute-version ':' $ ПОСЛЕДНИЕ ',' x-amzn-trace-id ':' root = 1-5d11c78f-f4d70afef2f04f3d061136fa; sampled = 0 ',' x-amzn-remapped-content-length ':' 0 ',' connection ':' keep- живы, 'дата': 'вт, 25 июня 2019 07:04:47 GMT', 'тип контента': 'application / json'}}, u'StatusCode ': 200}