您如何使用 AppSync 和无服务器管理 updates/rollbacks 和多个版本?

How do you manage updates/rollbacks and multiples versions with AppSync and serverless?

我正在使用 AppSyncLambdas。为此,我使用 serverless framework.

我对您使用 dev/test/prod 版本管理无服务器项目的方式有一些疑问。

我目前使用 --stage 选项,例如 sls deploy -s test 来拥有多个版本。但是如果部署后出现问题我不能rollback 所以我想知道我是否应该一直使用新名称部署并稍后删除预览版本?

编辑:我发现 this 应该对 lambda 执行此操作,但对 AppSync 是否有效?

您如何管理 dev/test/prod 版本的 AppSync 和 Lambdas?

使用 API 版本会很好,除非没有交叉 API 订阅。您在一个 API 中的变更不会触发另一个中的订阅。我希望 AppSync 能够支持某种 API 版本控制。

不确定无服务器回滚是否适用于 AppSync,他们可能应该适用。但是,它只是使用无服务器的 S3 存储桶缓存,而不是 CloudFormation 功能。因此,您几乎可以使用版本控制来回滚更改并重新部署(您的用例可能会有所不同)。

我们确实在一个 AWS 账户中有开发和测试阶段,在另一个 AWS 账户中有生产阶段。在测试阶段,我们可以测试 API 在将其部署到生产环境之前是否正常工作。

对于我们的其他部署,我们在生产之前也有测试阶段,但对于 AppSync 这是不可能的,因为交叉 API 订阅问题。我们不能通过 beta API 在生产中更改某些数据,并且不能在生产中触发订阅 API。