【问题标题】:How use api.ai + webhook + lambda如何使用 api.ai + webhook + lambda
【发布时间】:2017-11-28 06:39:28
【问题描述】:

我正在开发聊天机器人,并且正在测试如何使用这些技术。我的想法是使用 Facebook Messenger 链接到 API.ai 并从 API.ai 使用 Webhook 发送到Amazon API Gateway + Lambda 使用 DynamoDB 执行一些任务。

如果我有一个与 API.ai 关联的 url (API Gateway),我的问题是在 Webhook 中(这是我第一次使用它) 。当不同的 Intents 需要它时,我会调用不同的 Lambda 函数。也就是说:

Intent1 -> API 网关 -> Lambda1

Intent2 -> API 网关 -> Lambda2

我认为因为它是一个可以在 API.ai 中关联的 url (API Gateway)。 Lambda 函数是否应该用作过滤器?

Intention1 -> API Gateway -> LambdaFilter -> Lambda1

Intention2 -> API Gateway -> LambdaFilter -> Lambda2

感谢任何帮助和建议。

【问题讨论】:

标签: aws-lambda webhooks dialogflow-es api-gateway


【解决方案1】:

嗯,我也在为这个架构规划而苦苦挣扎。 您将需要一个 API 条目,也就是说,它将指向一个特定的 lambda 函数。

您可以为您的 Lambda 激活“代理集成”,然后您将能够在履行 webhook 上捕获从 API.ai 发送的所有标头。

然后,使用 LambdaFilter(它是一个 Lambda),您将需要使用 boto3 编写代码来调用其他 lambda,这将增加更多的 lambda 调用和处理时间。另一个要尝试的东西(我还没有尝试过)是 StepFuncions,它声称可以解决 lambda 工作流管理。

为了说明一个 lambda 在我的测试中调用另一个 lambda 有多糟糕,我做了 SLACK > APIGW > LAMBDAs > SLACK。 4 个 lambda 调用链(slack-handler、general-handler、general-notifier、slack-notifier)大约需要 0.6~.9 秒。而且我仍然没有调用 API.ai !!!将其压缩为仅 2 个 lambda(处理程序和通知程序,其中包含更复杂的代码)让我进入了 .3~.4s 的场景。

我这样做是为了避免将我的解决方案耦合到 API.ai 或 Slack。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-05
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多