首页 > 解决方案 > 如何使用 Terraform 输出 Cosmos DB 连接字符串

问题描述

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

我已经构建了几个 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

标签: azureazure-devopsterraform

解决方案


您需要从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 "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
}

推荐阅读