从Python 2.7上的现有lambda函数调用AWS lambda函数

时间:2016-07-17 15:05:08

标签: python python-2.7 aws-lambda

我试图从现有的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}

1 个答案:

答案 0 :(得分:10)

您正在寻找的响应数据就在那里,它就在Payload内作为StreamingBody对象。

根据Boto文档,您可以使用read方法读取对象:

invoke_response['Payload'].read()