2017-06-21 4 views
3

Ich habe alle durch das Netz gesucht, aber keine Lösung gefunden, wie diese Funktionalität erfolgreich gemacht werden kann. Benötige Hilfe.AWS Lambda im Hintergrund zu laufen, auch nach dem Senden der Antwort an API Gateway

Meine Forderung ist: Ich habe einen wollen, dass, wenn ich eine aws Lambda-Funktion geschrieben in node.js auslösen und verwendet eine aws-serverless-Express-Modul muss schnell auf API-Gateway-Antwort zurückschicken, aber immer noch nicht verlassen und noch laufen in das Backend und wir konnten Cloud Watch Logs sehen. Es muss asynchron sein.

Der Code-Snippet ist:

app.get('/check', function(req, res){ 
    method.invoke(req) 
    res.status(200).send('success') 
    }) 

ich tat und geprüft, wie dies aber die Lambda-Funktion wird beendet und gibt die Antwort an api Gateway es nicht einmal die method.invoke läuft hat() Funktion in Back-End .

Bitte korrigieren Sie mich, wenn ich etwas verstehe oder falsch mache. Ich habe mit diesem Link überprüft: Invoke AWS Lambda and return response to API Gateway asyncronously

Ist es die einzige Möglichkeit, dieses Problem zu tun. Erstellen von zwei Lambda-Funktionen.

Antwort

1

Sie können dies erreichen, indem Sie AWS Lambda Step functions, verbunden mit API Gateway, parallele Ausführung von Zweigen mit zwei Lambda-Funktionen verwenden, wobei eine eine Antwort an API Gateway zurückgibt und andere asynchron ausgeführt wird.

0

Neben den Schrittfunktionen können Sie mit dem in der Lambda-Umgebung integrierten SDK einfach eine weitere Lambda-Funktion aufrufen.

Ich bin kein Experte in Express oder NodeJS, aber ich würde auch denken, dass es eine Möglichkeit geben sollte, die HTTP-Antwort zurück zu senden und die Codeausführung fortzusetzen.

Verwandte Themen