我试图从现有的lambda函数调用另一个lambda函数,如下所示(python 2.7)
from __future__ import print_function
import boto3
import json
lambda_client = boto3.client('lambda')
def lambda_handler(event, context):
invoke_response = lambda_client.invoke(FunctionName="teststack",
InvocationType='RequestResponse'
)
print(invoke_response)
return str(invoke_response)
我得到的是以下回复而不是实际结果。当我运行teststack lambda时,它运行正常,但低于响应而不是"测试"由teststack
Lambda函数返回。
{u'Payload': <botocore.response.StreamingBody object at ****>, 'ResponseMetadata': {'HTTPStatusCode': 200, 'RequestId': '******', 'HTTPHeaders': {'x-amzn-requestid': '******', 'content-length': '155', 'x-amzn-remapped-content-length': '0', 'connection': 'keep-alive', 'date': 'Sun, 17 Jul 2016 21:02:01 GMT', 'content-type': 'application/json'}}, u'StatusCode': 200}
答案 0 :(得分:10)
您正在寻找的响应数据就在那里,它就在Payload
内作为StreamingBody对象。
根据Boto文档,您可以使用read
方法读取对象:
invoke_response['Payload'].read()