【问题标题】:Using cloud functions vs cloud run as webhook for dialogflow使用云函数与云作为对话流的 webhook 运行
【发布时间】:2020-08-15 05:39:03
【问题描述】:

我对 Web 开发和云计算了解不多。根据我在使用云函数作为对话流的 webhook 服务时所读到的内容,您只能在 1 个源文件中编写代码。我想创建一个真正复杂的对话流代理,所以有一个有组织的代码结构来简化开发会很方便。 我最近发现了 Cloud run,它似乎也可以处理 webhook 请求,并且可以开发复杂的代码结构。

我不想使用 Cloud Run 只是因为将所有内容都写在一个文件中很不方便,但另一方面,拥有一个包含数千行代码的单个文件的云功能会很奇怪。

是否可以在单个云功能中拥有多个文件? 云运行适合我的问题吗? (创建一个复杂的对话流代理)

【问题讨论】:

  • 是的,可以为一个功能部署多个源文件。我不知道你为什么认为这是不可能的。
  • 那是因为我通过 dialogflow 查看了已经创建的云功能...它启用了内联编辑器选项,这将其限制为只有 1 个源文件。我想另一种方法是使用 CloudSource 存储库对吗?谢谢!
  • 你有很多选择。您还可以使用 Firebase CLI 或 gcloud 进行部署。有很多关于如何将 Cloud Functions 作为独立产品使用的文档。
  • 仅供参考:我认为您担心的是错误的事情。一千行的源文件在几十万行代码的项目中很常见。今天的编辑器几乎可以处理任何事情,包括折叠代码。从基础开始,在理解之后再考虑细微差别。

标签: google-cloud-platform google-cloud-functions dialogflow-es webhooks google-cloud-run


【解决方案1】:

是否可以在一个云函数中拥有多个文件?

是的。当您deploy to Google Cloud Functions 时,您会创建一个包含所有源文件的包,或者将其从源存储库中提取。

但 Dialogflow 只允许在内置编辑器中使用 index.jspackage.json

为简单起见,内置代码编辑器只允许您编辑这两个文件。但内置编辑器主要用于基本测试。如果您正在认真编写代码,那么您可能已经拥有一个您喜欢用来编写和部署该代码的环境。

Cloud Run 适合吗?

当然。 Cloud Run 为您带来的最大好处是完全控制您的运行时环境,因为除了代码之外,您还要指定该环境的详细信息。

然而,最大的缺点是您还必须确定该环境的详细信息。 Cloud Funcitons 提供 HTTPS 服务器,您无需担心这些细节,只要其他环境适合。

我还有哪些其他选择?

任何你想要的地方! Dialogflow 只需要您的 webhook

  • 使用公共地址(即,Google 可以解决和到达的地址)
  • 使用非自签名证书在该地址运行 HTTPS 服务器

在测试期间,通常通过ngrok 之类的隧道在您自己的机器上运行它,但这在生产环境中不是一个好主意。如果您已经熟悉在另一个环境中运行 HTTPS 服务器,并且希望继续使用该环境,那么您应该没问题。

【讨论】:

    猜你喜欢
    • 2021-08-14
    • 1970-01-01
    • 2020-04-08
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    • 2021-08-19
    • 2018-06-28
    相关资源
    最近更新 更多