Unter Verwendung von boto, um Lambda-Funktionen aufzurufen, wie mache ich das asynchron?

SO Ich verwende Boto, um meine Lambda-Funktionen aufzurufen und mein Backend zu testen. Ich möchte sie asynchron aufrufen. Ich habe festgestellt, dass "invoke_async" veraltet ist und nicht mehr verwendet werden sollte. Verwenden Sie stattdessen "invoke" mit dem InvocationType "Event", um die Funktion asynchron auszuführen.

Ich kann anscheinend nicht herausfinden, wie die Antworten von den Funktionen abgerufen werden, wenn sie zurückkehren. Ich habe folgendes probiert:

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")

Obwohl ich dem Code anweise, 15 Sekunden lang in den Energiesparmodus zu wechseln, ist die Antwortvariable beim Versuch, sie zu drucken, immer noch leer. Wenn ich den InvokationType-Aufruf in "RequestResponse" ändere, funktioniert alles einwandfrei und es werden variable Ausdrucke erstellt, dies ist jedoch synchron. Vermisse ich etwas Leichtes? Wie führe ich einen Code aus, zum Beispiel drucke ich das Ergebnis aus, wenn der asynchrone Aufruf zurückkomm

Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage