Mongodb Atlas 的 Terraform 提供程序:我的数据库在哪里?

par*_*nza 7 terraform mongodb-atlas terragrunt terraform-provider-aws

我已经通过 Mongodb terraform 提供程序成功创建了项目、用户和集群,但是我希望看到在我的新集群下已经创建的数据库,但找不到该数据库。我不确定它缺少什么或不正确,并且我在文档中找不到任何与我自己实现的内容不同的示例/信息。以下是我的 main.tf 文件中的相关信息:

# Create a db user
resource "mongodbatlas_database_user" "mongodb_user" {
  username = "${var.database_username}"
  password = "${random_string.master_password.result}"
  project_id = "${mongodbatlas_project.mongodb.id}"
  database_name  = "admin"

  roles {
    role_name = "readWrite"
    database_name = "admin"
  }
}
Run Code Online (Sandbox Code Playgroud)

团体

resource "mongodbatlas_project" "mongodb"{
  org_id = "${var.mongodb_atlas_org_id}"
  name = "${var.project_name}-${var.stage}"
 }
Run Code Online (Sandbox Code Playgroud)

# Create a cluster
resource "mongodbatlas_cluster" "mongodb-cluster" {
  project_id = "${mongodbatlas_project.mongodb.id}"
  name = "${var.cluster_name}-${var.stage}"
  num_shards = 1

  replication_factor = 3
  backup_enabled = true
  auto_scaling_disk_gb_enabled = true
  mongo_db_major_version = "4.0"

  //Provider Settings "block"
  provider_name = "AWS"
  disk_size_gb = 100
  provider_disk_iops = 300
  provider_encrypt_ebs_volume = false
  provider_instance_size_name = "M40"
  provider_region_name = "us-east-1"
}
Run Code Online (Sandbox Code Playgroud)

非常感谢任何帮助/建议。

谢谢

小智 3

数据库创建是CRUD操作,MongoDB Atlas API不支持CRUD操作。

此外,Terraform 用于部署基础设施,而不是其中的数据。您可以创建自己的 REST API,该 API 连接到 Terraform 创建的集群,使用 Terraform 创建的用户进行连接,然后执行您想要的任何 CRUD 操作。

希望这能回答您的问题。

  • “Terraform 用于部署您的基础设施,而不是其中的数据。” 这似乎是语义上的区别。您可以通过 Terraform 创建 mongodbatlas_database_users ——很难说用户是“基础设施”,但数据库不是。此外,使用 dynamodb,您甚至可以使用 Terraform 创建表。所以恕我直言,这似乎是一个相当弱的区别。 (7认同)