AWS Lambda没有返回值

时间:2019-03-27 18:57:15

标签: python amazon-web-services aws-lambda

我有一个AWS Lambda函数,该函数将一组参数传递给另一个函数。经过一些处理后,该第二个函数应该返回一个值,但是由于某种原因,第一个函数没有收到该值。

这是调用方函数:

import boto3

lam = boto3.client('lambda')

def lambda_handler(event, context):
  payload={}
  payload['key1'] = 'Test Value'
  response=lam.invoke(FunctionName='callee', InvocationType='RequestResponse', Payload=json.dumps(payload))
  print(response)

这是被调用方功能:

def lambda_handler(event, context):
    print('value1=' + event['key1'])
    return event['key1']

被调用方函数按预期方式打印该值,但调用方函数未收到被调用方的返回。

我该如何解决? 谢谢。

1 个答案:

答案 0 :(得分:1)

response对象返回为:

{
    'ResponseMetadata': {...}, 
    'StatusCode': 200, 
    'ExecutedVersion': '$LATEST', 
    'Payload': <botocore.response.StreamingBody object at 0x7f34aea2d240>
}

然后您可以通过以下方式提取返回值:

print(response['Payload'].read())