系列:如何利用微服务构建无服务器 GraphQL API
在Twitter上关注我,很高兴接受您对主题或改进的建议/Chris
我写了两篇系列文章,解释了一个很常见的情况。你有一个或几个服务,每个服务都由一个团队维护,因此每个服务都有自己的生命周期。
有时,您可能需要构建一个需要从其中一些服务读取数据的应用。与其进行大量的 HTTP 调用,不如在这些服务前面运行类似 GraphQL 的程序,这样新应用的构建者就可以只查询他们需要的数据,岂不是很棒?在我们将它们 Docker 化的过程中,GraphQL 最终会使用这些服务的 URL,从而在 GraphQL API 和服务之间实现非常松散的耦合。松散耦合的意思是,服务不知道 GraphQL API,而 GraphQL API 可以轻松地将数据源替换为符合相同模式的另一个数据源,毕竟,它只是一个 URL。
在本系列文章中,我假设我们不会频繁使用 GraphQL API,因此赋予它与其他关键业务服务相同的正常运行时间并因此设定相同的成本是没有意义的。此外,GraphQL 可以看作是对其获取结果的计算,实际上并不需要拥有自己的状态。因此,它是实现无服务器化的理想选择。
这两个部分:
- 构建服务和 GraphQL API这里我们将展示如何构建服务并使用 Docker 进行容器化,从而轻松将其推送到云端。我们还将展示如何引入 Docker 化的服务及其 URL,并构建 GraphQL API。
- 注册免费的 Azure 帐户要创建无服务器 Azure 函数,您需要一个免费的 Azure 帐户
- 迁移到云端:我们将每个服务推送到云端的容器注册表,并为每个服务创建一个服务端点。我们还创建了一个无服务器应用和一个函数,并从中调用我们的 GraphQL API。然后,我们使用 VS Code 将无服务器应用迁移到云端。