Ich verwende zwei Lambda-Funktionen mit Javascript 4.3 Laufzeit. Ich führe die erste und es ruft die zweite synchron (Sync ist die Absicht). Das Problem ist das zweite mal (bei 60 Sekunden), aber es erreicht tatsächlich ein erfolgreiches Ende nach nur 22 Sekunden.Lambda Zeitüberschreitung nach Callback
Hier ist der Fluss zwischen den zwei Lambda-Funktionen:
Lamda Funktion A Ich bin nicht mehr für Cloudwatch-Protokolle erhalten, aber das eigentliche Problem (glaube ich) ist Funktion B, die mal ohne Grund.
Hier einige Cloudwatch-Protokolle dies zu verdeutlichen:
Der Code in Funktion B am Ende - das ist die "Success" Log-Anweisung im Bild sehen enthält oben - unten enthalten ist:
Ursprünglich hatte ich nur die callback(null, 'successful ...')
Linie und nicht die NodeJS 0.10.x
Art und Weise, wo Sie succeed()
abgeblasen o f Kontext. In meiner Verzweiflung habe ich beides hinzugefügt, aber das Ergebnis ist dasselbe.
Wer hat eine Idee, was los ist? Irgendwie kann ich das debuggen?
Falls die Aufruflogik zwischen A und B eine Differenz in dem Zustand macht, die in B beginnt, ist hier der Aufruf:
Ich bekomme immer noch den Hang von Lambda + Node 4.3, selbst, aber Einstellung ['context.callbackWaitsForEmptyEventLoop = false;'] (https://aws.amazon.com/blogs/compute/ node-js-4-3-2-runtime-now-available-on-lambda /) könnte ein Workaround für das sein, was Sie sehen, wenn es ähnlich zu dem ist, in dem ich lief - ich hatte eine mysql-Verbindung, die ich nicht war Trennen, was wiederum die Ereignisschleife nicht leer hielt. Das Setzen des Wertes wie gezeigt hat das Problem bewiesen (durch "Fixieren" des Run-To-Timeouts); Angesichts dieser Beweise war ich in der Lage, es richtig zu lösen, indem ich diese Verbindung schloss. An diesem Punkt brauchte ich den Workaround nicht mehr. –
Ok, ich denke, das ist ein Thread, dem ich folgen kann; hatte die funktionale Variation des 4.3 Callbacks vergessen. Vielen Dank! Hinweis: Ich habe diese Frage an AWS abgewiesen, und sie kamen, um zu sagen, dass viele Leute dieses Problem haben und dass das Problem dadurch behoben wird, dass viele zu 0.10 zurückkehren. Das hat für mich funktioniert, aber das ist natürlich keine gute Lösung, da es offene Verbindungen gibt, die ich lieber auf eine anmutige/kontrollierte Art schließen möchte. – ken