如何使用 aws cloudformation 或 aws cdk 设置 aws aurora mysql 表?

Posted

技术标签:

【中文标题】如何使用 aws cloudformation 或 aws cdk 设置 aws aurora mysql 表?【英文标题】:how to setup tables of aws aurora mysql using aws cloudformation or aws cdk? 【发布时间】:2019-09-15 01:39:31 【问题描述】:

如何使用 aws cloudformation 或 aws cdk 设置 aws aurora mysql 的表?

在我的设置中,我有一个使用 lambda 用于各种微服务的无服务器应用程序。数据库是一个无服务器的 aurora mysql 数据库。为了配置 aws 基础设施,我将使用 aws CDK。我喜欢使用一些迁移工具(如 liquibase 或 sequelize)来设置数据库。

目前我正在使用一个单独的 lambda 函数。 lambda 函数执行 liquibase 以设置数据库更改。但是在使用 CDK 部署成功后,我必须单独执行该功能。

在执行 cloudformation 堆栈(cdk 堆栈)后触发的执行将是最佳的?!我想通过代码管道避免 CI / CD 堆栈。

有没有人在提供时设置数据库的最佳实践?

【问题讨论】:

【参考方案1】:

我使用 Cloudformation 自定义资源在部署时运行数据库迁移和初始数据库设置脚本。

如果您不想依赖 CI/CD 管道为您完成迁移,这是为无服务器应用程序运行数据库迁移的推荐方法。

这是Alex DeBrie 写的一篇关于 CF 自定义资源的好博文:https://www.alexdebrie.com/posts/cloudformation-custom-resources/

【讨论】:

【参考方案2】:

云看规则

基于 cloudformation 事件的云监视规则可用于路由事件以处理 lambda。云监视规则可以是 CDK 部署描述的一部分。

触发的函数然后可以执行 liquibase、flyway、sequelize 或其他东西来启动或更改数据库。

----或----

Cloudformation 自定义资源

AWS cloudformation 自定义资源可以在 cloudformation 生命周期内执行 lambda 函数。

然后触发的函数可以执行 liquibase、flyway、sequelize 或其他东西来启动或更改 db。

【讨论】:

以上是关于如何使用 aws cloudformation 或 aws cdk 设置 aws aurora mysql 表?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AWS SAM 或 Cloudformation 中添加身份提供者

AWS Cloudformation-如何在 json/yaml 模板中处理字符串大写或小写

如何在 cloudformation“Fn::Sub”中转义“$”

用于管理 AWS 无服务器基础设施的 Terraform 或 cloudformation [关闭]

如何修复与 AWS::CloudFormation::Init 一起创建 EC2 的 cloudformation 模板

AWS - 如何使用 CDK/CloudFormation 将服务链接角色传递给自动缩放组?