当我尝试使用 Terraform 和 mongodb atlas 提供程序输出 mongodb uri 时,我无法获取包含用户名和密码的完整 uri。例如,当我做类似的事情时:
terraform {
  required_version = "~> 0.14.7"
  required_providers {
    mongodbatlas = {
      source  = "mongodb/mongodbatlas"
      version = "0.8.2"
    }
  }
}
provider "mongodbatlas" {
  public_key  = var.mongodbatlas_public_key
  private_key = var.mongodbatlas_private_key
}
data "mongodbatlas_cluster" "db" {
  project_id = var.mongodbatlas_project_id
  name       = format("some-db-name-%s", var.env)
}
output "db_url" {
  value = data.mongodbatlas_cluster.db.connection_strings[0].address_srv
}
我总是得到以下形式的 uri:mongodb+srv://some-db-name-staging.xjcol.mongodb.net
将其作为环境变量添加到我的 Web 应用程序中以连接到数据库不起作用,因为它需要使用用户名和密码进行身份验证。手动将用户名和密码添加到该字符串中mongodb+srv://[username]:[password]@some-db-name-staging.xjcol.mongodb.net,应用程序可以正常连接到数据库。
mongodb continuous-deployment continuous-delivery terraform mongodb-atlas