如何使用 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 模板