Нет возвращаемого значения из AWS Lambda

#python #amazon-web-services #aws-lambda

#python #amazon-веб-сервисы #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. Не следует ли callee вызывать функцию callee вместо lambda_handler ?

Ответ №1:

response Объект возвращается как:

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

Затем вы можете извлечь возвращаемое значение с помощью:

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