Google cloud platform 谷歌云功能之间的内部通信?

Google cloud platform 谷歌云功能之间的内部通信?,google-cloud-platform,google-cloud-functions,Google Cloud Platform,Google Cloud Functions,我们创建了一个Google云函数,它本质上是一个内部API。有没有其他内部Google云函数可以在不公开该函数的HTTP端点的情况下与API函数进行对话的方法 我们已经查看了PubSub,但就我们所知,您可以发送请求(比如!),但无法收到响应 理想情况下,由于额外的安全后果,我们不想公开HTTP端点,我们正尝试采用微服务方法,使每个函数都是自己的实体。最简单的方法是将API包装成常规函数或对象,并将额外的代码与需要使用它的每个函数一起部署。您甚至可能希望完全模块化代码,正如您期望npm模块所做的

我们创建了一个Google云函数,它本质上是一个内部API。有没有其他内部Google云函数可以在不公开该函数的HTTP端点的情况下与API函数进行对话的方法

我们已经查看了PubSub,但就我们所知,您可以发送请求(比如!),但无法收到响应


理想情况下,由于额外的安全后果,我们不想公开HTTP端点,我们正尝试采用微服务方法,使每个函数都是自己的实体。

最简单的方法是将API包装成常规函数或对象,并将额外的代码与需要使用它的每个函数一起部署。您甚至可能希望完全模块化代码,正如您期望npm模块所做的那样。

我赞同您的微服务方法,并试图保持您的服务独立。您可以在不向HTTP打开所有函数的情况下完成此操作。Chris Richardson在他的优秀网站上描述了一个类似的案例:

您已经按服务模式应用了数据库。每项服务都有 它自己的数据库。但是,有些业务事务跨越多个 因此,您需要一种机制来确保跨服务的数据一致性 服务。例如,让我们假设您正在构建一个电子商务商店 客户有信用额度的地方。应用程序必须确保 新订单不会超过客户的信用额度。自命令以来 而且客户位于不同的数据库中,应用程序不能简单地 使用本地ACID事务

他接着说:

使用这种方法的电子商务应用程序将创建 使用由以下内容组成的基于编舞的传奇进行排序 步骤:

  • 订单服务创建处于挂起状态的订单,并发布OrderCreated事件
  • 客户服务收到事件尝试为该订单保留信用。它发布信用保留事件或 这是一个令人震惊的事件
  • 订单服务接收事件并将订单状态更改为“已批准”或“已取消”
  • 基本上,与同步返回值的直接函数调用不同,第一个微服务向第二个微服务发送异步“请求事件”,第二个微服务发出第一个服务拾取的“响应事件”。您将使用发送和接收消息


    你可以在他的网站上的下面阅读更多关于这方面的信息。

    也许这会对@VaisakhPS有所帮助这基本上就是我下面所说的,但问题是专门询问函数调用。我在这里添加了更多选项。多谢,道格,这是一个解决方案,但是,这种方法不符合我们的理想,即每个函数都是一个小型/微型服务,特别是由于我们的API相对较大且相互交织,这使得它有点混乱。我认为您没有其他选择。微服务实际上并不意味着少量的代码,它只意味着少量的整体功能。是的,似乎没有其他选择,因此这个问题似乎很疯狂,因为函数不能以请求/响应的方式直接调用彼此。当我提到上面提到的微服务时,我指的是功能而不是大小——我的错误是不清楚。感谢您的响应。没有什么可以阻止您使用HTTP客户端库从另一个函数直接调用某个HTTP函数。您只需启用项目的帐单。我个人认为这不是一个好主意,因为这会比直接将代码包含到第一个函数中花费更多,性能更差。是的,这也是我们的想法,正如您所说,由于一个函数等待另一个函数的响应,同时仍然为这两个函数向我们计费,因此成本方面是一个痛点。谢谢