首页 > 解决方案 > 我应该如何为我的 AWS 无服务器应用程序迁移(更新数据库架构)我的数据库

问题描述

我应该如何在 AWS 无服务器应用程序中运行我的数据库迁移?在传统的 NodeJS 应用程序中,我通常先npm start运行sequelize db:migrate。但是使用 Lambda 我应该怎么做呢?

我的数据库将位于私有子网中。想知道 CodeBuild 是否能够做到这一点?还在考虑让 Lambda 函数运行迁移……不确定是否推荐。

标签: node.jsamazon-web-servicesmigrationaws-lambda

解决方案


有多种方法可以实现这一目标。实际上,您在 CodeBuild 方面走在了正确的轨道上,至少采用这种方法应该没有任何问题。

由于您的数据库位于私有子网中,因此您需要配置 CodeBuild 以访问您的 VPC。配置完成后,允许从 CodeBuild 安全组访问您的数据库就很简单了。

您可能希望将整个事情设置为CodePipeline。您甚至可以为 CodeBuild 的不同运行设置多个构建规范文件。这样您就可以拥有一个如下所示的 CodePipeline:

Source -> CodeBuild (test) -> Approval -> CodeBuild (migrations) -> Lambda

从理论上讲,您还可以创建一个执行迁移的 Lambda 函数,并根据需要触发它。如果迁移需要很长时间,您还可以使用 AWS Batch 来运行它们。但是将 CodeBuild 用作部署管道的一部分非常有意义。


推荐阅读