gpt4 book ai didi

amazon-web-services - 如何使用 Terraform 在 RDS MySQL 上执行 SQL 脚本?

转载 作者:行者123 更新时间:2023-12-03 14:49:48 24 4
gpt4 key购买 nike

我创建了 aws_db_instance使用 Terraform 配置配置 RDS MySQL 数据库。现在我的下一个问题是在 RDS 上执行 SQL 脚本(CREATE TABLE 和 INSERT 语句)。我做了以下但没有效果。 terraform plan甚至看不到我在执行 sql 时所做的更改。我在这里错过了什么?谢谢。

resource "aws_db_instance" "mydb" {
# ...

provisioner "remote-exec" {
inline = [
"chmod +x script.sql",
"script.sql args",
]
}
}

最佳答案

看看这个帖子:How to apply SQL Scripts on RDS with Terraform

如果你只是想设置用户和权限(你不应该使用你在生成 RDS 时设置的 root pw)有一个 terraform 提供者:
https://www.terraform.io/docs/providers/mysql/index.html

但是您正在寻找数据库架构和种子。该提供商不能这样做。
如果您愿意以另一种方式进行操作,则可能需要使用 ssm 自动化文档和/或 lambda 进行检查。我会使用 lambda。选择一种您熟悉的语言。将 lambda 的角色设置为有权读取它执行工作所需的密码。您可以将密码保存在 ssm 参数存储中。然后编写您的数据库工作脚本。
然后在 terraform 中执行一个本地 exec,它只是调用 lambda 并将 RDS 的 ID 和 ssm 参数存储中的 secret 路径传递给它。这将确保数据库操作是从 VPC 内部的计算完成的,而不必为此目的设置 EC2 堡垒。
以下是 javascript 如何完成此操作,例如:
https://www.w3schools.com/nodejs/nodejs_mysql_create_table.asp

关于amazon-web-services - 如何使用 Terraform 在 RDS MySQL 上执行 SQL 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49541658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com