0

Ich versuche, die hier gefundene Webhook Example for Google Actions auf Lambda AWS zu implementieren.Webhook-Bereitstellung auf Lambda AWS

Ich war erfolgreich Bereitstellung und die POST-Anrufe mit ngrok. Also, keine Probleme dort.

Aber das Problem, das ich fand, ist es Express Node-Modul für POST-Anfragen verwendet. Lambda AWS schlägt fehl, wenn die Anforderung an das Express-Modul gesendet wird. Gibt es eine Möglichkeit, den POST-Aufruf erfolgreich zu machen?

Ich habe versucht, Lambda-Express Node-Modul zu verwenden, aber es scheint auch ein Problem zu haben.

Antwort

0

Ich bin this tutorial that explains der Schritt für Schritt Prozess der Verbindung API.ai Absicht mit der Lambda-Funktion.

Und wenn Sie dem Google Web Hook Beispiel folgen, um es zu Lambda zu implementieren, dann ist es eine falsche Richtung. Schließen Sie die Express-Nutzung vollständig ab und auch die Assistant-Klasse ist nicht notwendig, wenn eine Lambda-Bereitstellung erforderlich ist.

1

Lambda AWS unterstützt eine HTTP-Schnittstelle nicht direkt.

Eine Lösung wäre, dass Sie API Gateway verwenden, die es Ihnen ermöglichen würde, den HTTPS-POST, den AoG sendet, in einen Aufruf von AWS Lambda zu übersetzen.

In Ihrem Lambda Sie die Anforderung behandeln, die in über den Standard-Lambda-Handler kommt:

function(event, context, callback); 

statt über Express. Sie würden wahrscheinlich auch Express aus Ihrem Code entfernen wollen, was wie eine Menge Arbeit klingt, aber ich habe es kurz angeschaut, als es veröffentlicht wurde und mein Eindruck war, dass die Abhängigkeit von Express gering und ziemlich unnötig war.

Die Alternative wäre, von Lambda auf etwas HTTP-basiert wie Google App Engine, die auch (zum Teil) serverless ist. Ich denke, das könnte einfacher sein, aber ich weiß nicht, was Ihre anderen Faktoren sein könnten.

+0

Ja Tom, musste die Express-Nutzung vollständig beseitigen und muss die Initialisierungs-js-Datei neu gestalten, um Lambda-Handler und Callbacks zu verwenden –