如何使 AWS APPSync API 从开发到暂存再到生产保持同步?

How to keep AWS APPSync APIs in sync from Dev to Staging to Production?

假设您有一个名为 API-DEVAWS AppSync API。 它托管 GraphQL 架构、解析器、数据源、DynamoDB 表(例如:Dev_Articles)、DynamoDB 表配置和 DynamoDB 数据。 API 消耗了大约。同一个 React 应用程序的 50 个实例。

您将如何自动将最新功能从 API-DEV 迁移到 API-STAGING?请注意,我想更新除数据之外的所有内容。

我正在考虑的方法:

  1. 保留要更新的列表,将登台应用程序移至维护模式,并手动将更改应用到登台环境。似乎每次 "release" 都有很多工作要做,而且容易出错。
  2. 将某种 YAML 模板与 aws-cli 结合使用,将更改存储在 GIT 存储库中并在推送时自动部署。似乎是执行此操作的好方法,但找不到分步指南,另外,我们所有的配置都已经在 AWS 中,所以我猜我们必须使用模板重新创建所有配置。
  3. 使用某种工具自动比较和更新两个给定的 API 和 DynamoDB。还没有找到这个。
  4. 构建我自己的 Nodejs 应用程序,该应用程序将利用 aws-cli 进行比较和更新。然后将其托管在 Lamda 上,并通过推送 React 应用程序存储库的 stagingmaster 分支(代码提交 > 代码构建 > 代码部署)触发。这就是我现在要去的地方,但那里可能有一个现有的解决方案。

还有其他想法吗?让我知道!

使用CloudFormation to model your API。然后,您可以将 API 配置、解析器和数据源(无数据)作为代码和 运行 在各个阶段的模板进行维护。

为了简化 CloudFormation 的创建,您可以使用 AWS Amplify CLI 来定义 GraphQL 模式,它将为您自动生成解析器。

看看这个:https://github.com/sid88in/serverless-appsync-plugin

Serverless-appsync-plugin 让您的生活更轻松。它的配置应该比设置您自己的 Cloudformation 更简单。