azure-devops - Azure DevOps : Connecting Terraform output to Azure web service JSON config?

标签 azure-devops terraform-provider-azure

我试图弄清楚如何根据使用 Terraform 部署的资源来更新我的 .NET Core Web 服务中的 JSON 配置文件。

我有一个现有的 Azure DevOps 管道,它将 .NET Core Web 服务构建/部署到 Azure 应用服务。

在迁移到 Terraform 时,我将为开发/测试/生产环境创建 CosmosDb 数据库、Azure 搜索服务、事件网格等。

我可以在 Terraform 中创建这些,但我不清楚如何从这些资源中获取输出(如 CosmosDb 位置、 key 和数据库 ID)并将它们注入(inject)到我部署的 Web 服务中的 JSON 配置文件中。

有没有人做过这种事情,并且可以展示一个 Terraform 的例子?谢谢!

最佳答案

您实际上并没有将它们注入(inject)到您的配置文件中,而是将它们设置为应用服务中的应用设置,这将覆盖配置文件中的这些键。

因此,如果您有:

{
   CosmosDb: {
       Key: ""
   }
}

在您的 terraform 中,您将执行以下操作。
resource "azurerm_app_service" "test" {
  name                = "example-app-service"
  location            = "${azurerm_resource_group.test.location}"
  resource_group_name = "${azurerm_resource_group.test.name}"
  app_service_plan_id = "${azurerm_app_service_plan.test.id}"

  app_settings = {
      "CosmosDb:Key" = "${azurerm_cosmosdb_account.db.primary_master_key}"
  }
}

因此,您将引用您的其他 Terraform 资源以提取您需要的值,并将其放入 Terraform 中您的应用服务的应用设置部分。

关于azure-devops - Azure DevOps : Connecting Terraform output to Azure web service JSON config?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58405677/

相关文章:

azure - 是否可以通过变量访问Azure Pipelines中任务中的测试执行结果?

sql-server - 使用 Azure Pipeline 中的 SqlPackage 部署 DACPAC 忽略参数并删除用户

azure - 如何使用 terraform 输出作为 Azure DevOps 管道中的变量

azure - 了解terraform中的共享模块和destroy命令,如何在销毁时排除共享模块?

azure - Terraform Azurerm 抛出此处不需要名为 "java_version"的参数

docker - Azure容器服务容器作为VSTS代理来构建docker镜像

Azure DevOps - 用户作为审批者触发发布

tfs - NPM:仅安装丢失 - 如何加快 npm install

azure - 获取 azurerm_linux_virtual_machine_scale_set 的 IP 地址作为输出

Azure - 尝试使用 Terraform 中的 JsonADDomainExtension 将虚拟机加入域