如何使用Terraform输出Cosmos DB连接字符串

时间:2019-09-14 17:56:25

标签: azure azure-devops terraform

我正在使用Terraform在Azure中使用Mongo API来构建Cosmos数据库,但无法弄清楚一旦构建后如何返回或输出连接字符串。

我已经构建了多个Cosmos DB,但是找不到有关如何输出连接字符串的任何资料。我正在使用模块来构建调用我的main.tf和variable.tf的资源。如果我知道要在output.tf文件中放入什么内容,则可以将其放入其中,以便我的模块可以利用它。

模块{ 可变输入 }

我没有任何错误消息可发布,因为我不知道如何调用连接字符串。我确实解析了Azure Provider,并从Mongo DB Cosmos部分发布了JSON图片。下面的JSON图片: ![来自Azure TF提供程序的Mongo Cosmos DB JSON] https://i.imgur.com/VwtkpiR.png

1 个答案:

答案 0 :(得分:0)

您需要从CosmosDB Account中读取数据。它包含一个connection_strings数组。´看起来应该像这样:

// Look for this
resource "azurerm_cosmosdb_account" "cosdb"{
   ...
}

output "cosmosdb_connectionstrings" {
   value = azurerm_cosmosdb_account.cosdb.connection_strings
   sensitive   = true
}

您还可以使用字符串插值通过组合主键和端点来构建连接字符串。如果您不使用Terraform管理帐户,这也可以使用。您可以使用CosmosDB Data Source来访问密钥。

data "azurerm_cosmosdb_account" "cosdb" {
  name                = "${var.cosmosdbname}"
  resource_group_name = "${var.cosmosdbresourcegroupname}"
}

output "cosmosdb_connectionstrings" {
   value = ${data.azurerm_cosmosdb_account.cosdb.endpoint};AccountKey=${data.azurerm_cosmosdb_account.cosdb.primary_master_key};"
   sensitive   = true
}