Я использую boto для вызова своих лямбда-функций и проверки моего бэкэнда. Я хочу вызвать их асинхронно. Я отметил, что "invoke_async" устарел и не должен использоваться. Вместо этого вы должны использовать "invoke" с InvocationType "Event" для выполнения функции асинхронно.
Я не могу понять, как получить ответы от функций, когда они вернутся. Я пробовал следующее:
payload3=b"""{
"latitude": 39.5732160891,
"longitude": -119.672918997,
"radius": 100
}"""
client = boto3.client('lambda')
for x in range (0, 5):
response = client.invoke(
FunctionName="loadSpotsAroundPoint",
InvocationType='Event',
Payload=payload3
)
time.sleep(15)
print(json.loads(response['Payload'].read()))
print("\n")
Даже если я скажу, что код спал в течение 15 секунд, переменная ответа по-прежнему пуста, когда я пытаюсь ее распечатать. Если я изменяю InvokationType invokation на "RequestResponse", все работает отлично, а переменная переменной печатается, но это синхронно. Я что-то пропустил? Как выполнить какой-либо код, например, распечатать результат, когда возвращается асинхронная invocation?
Спасибо.