bash - 如何在启动数据库时从 cloudformation 模板创建 RDS 架构?

标签 bash amazon-web-services aws-cloudformation amazon-rds database-schema

我正在尝试从云形成模板安装 MYSQL (RDS)。有没有办法运行 SQL DDL 脚本,以便我们可以在数据库设置时创建架构

最佳答案

您的基础设施代码(无论是 CloudFormation 还是 CDK 等)应该只关心在云中配置资源,而不关心其他任何事情。

架构创建可以在数据库启动后通过 AWS CodeBuild 完成(我使用 Flyway 来完成此操作 https://flywaydb.org/ )。

我所做的是:

  1. 我有一个 CDK 包来创建基础设施,其中配置了我的 RDS。这个包只关心基础设施,而不关心其他。

  2. 我有一个单独的 CDK 包,其目的仅是执行架构迁移。该管道跟踪我的架构存储库,并由 CodeBuild 组成,其中可以运行 Flyway 来迁移架构(包括架构初始化)。 CodeBuild 第一次运行将使用定义的架构初始化数据库,一旦进行新的架构更改并将代码提交到存储库,管道将被触发,并使用新架构构建新的 docker 镜像,并运行新的docker 镜像针对数据库来更新架构。可以从 Secret-manager 获取数据库凭据作为 CodeBuild 中的环境变量。

管道看起来像这样:

SourceStage => Docker Build Stage(using CodeBuild to build a docker image with the new schema) => Flyway Stage(using CodeBuild to run the docker image)

当然,您可以将以上两个包合并为一个包,只要您将代码很好地分开,知道一部分仅用于基础架构,另一部分用于数据库架构迁移管道。

关于bash - 如何在启动数据库时从 cloudformation 模板创建 RDS 架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56396996/

相关文章:

linux - bash - 命令行中的for循环

linux - 使用 Bash 脚本将输入提供给命令行

amazon-web-services - 在 S3 上使用 https 托管 SPA 或静态网站的最便宜方式

amazon-web-services - 使用 AWS Config 一致性包有什么优势?

amazon-web-services - 当注册特定条目时使用 dynamodb 触发 lambda

aws-lambda - 是否可以在 lambda 的环境变量中使用 SSM 参数?

macos - 复制包含空文件的目录树

regex - 如何在 shell 脚本中使用正则表达式?

amazon-web-services - AWS 云信息 : is there a way to capture Glue ARN for use in a step function?

amazon-web-services - cloudformation 中的 AWS eventbridge 调度程序 : Target needs RoleArn although permissions were attached to lambda function