Lambda AWS 上的 Webhook 部署

Webhook deployment on Lambda AWS

我正在尝试将此处找到的 Webhook Example for Google Actions 部署到 Lambda AWS。

我使用 ngrok 成功部署并进行了 POST 调用。所以,没问题。

但我发现的问题是它使用 Express 节点模块进行 POST 请求调用。向 Express 模块发出请求时,Lambda AWS 失败。那么有没有办法让POST调用成功。

我尝试使用 Lambda-Express 节点模块来部署它,但它似乎也有一些问题。

Lambda AWS 不直接支持 HTTP 接口。

您可以使用 API Gateway 的一种解决方案,这样您就可以将 AoG 发送的 HTTPS POST 转换为对 AWS Lambda 的调用。

在您的 lambda 中,您将处理通过标准 Lambda 处理程序传入的请求:

function( event, context, callback );

而不是通过快递。您可能还想从您的代码中删除 Express,这听起来可能需要做很多工作,但是当它发布时我简单地看了一下,我的印象是对 Express 的依赖很小而且完全没有必要。

另一种方法是从 Lambda 切换到基于 HTTP 的东西,比如 Google App Engine,它也是无服务器的(在一定程度上)。我想这可能更容易,但我不知道你的其他因素可能是什么。

我遇到了 this tutorial that explains 使用 Lambda 函数连接 API.ai 意图的分步过程。

并且如果您按照 Google web hook 示例将其部署到 Lambda,那么这是一个错误的方向。完全消除 express 用法,需要 Lambda 部署时也不需要助手class。