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

标签 azure azure-devops azure-pipelines azure-databricks terraform-provider-azure

我正在尝试将使用 Azure DevOps 的 terraform 部署生成的 databricks 工作区名称作为变量传递到另一个步骤,但不知道该怎么做。

所以我在我的output.tf中定义了输出

output "workspace_name" {
  value = azurerm_databricks_workspace.databricks.name
}

我可以看到输出:

enter image description here

通过 stackoverflow,有一个解决方案可以自动将所有输出作为变量:

1- 配置输出变量:

enter image description here

2-配置 powershell 脚本来获取它们并填充它

powershell

3-现在怎么办?变量名称是什么?如何在 Databricks Bearer Token 解决方案中使用它?

最佳答案

$json = Get-Content $env:jsonPath | Out-String | ConvertFrom-Json

foreach($prop in $json.psobject.properties) {
    Write-Host("##vso[task.setvariable variable=$($prop.Name);]$($prop.Value.value)")
}

此脚本的逻辑用于循环遍历之前 terraform 生成的 output json 文件。

这一行“##vso[task.setvariablevariable=$($prop.Name);]$($prop.Value.value)”旨在设置名称output json 文件中显示为管道变量名称,还将输出 json 文件中的相应值设置为其管道变量的值。

这是他们的 map 展示:

Terraform Output Json                          Azure devops pipeline 

   Output name            ================>      varaible name

   Output value           ================>      variable value
<小时/>

因此,在 Databricks Bearer Token 任务中,您可以通过在 terraform 文件中配置的名称直接调用变量:workspace_name

关于azure - 如何使用 terraform 输出作为 Azure DevOps 管道中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60480791/

相关文章:

python - 如何在 Azure CI 中实现具有代码覆盖率的并行 pytesting

azure - 在 Azure DevOps 上使用 Azure CLI 为当前 IP 创建防火墙规则

visual-studio - Visual Studio Team Services - 编辑链接设置

azure - 从 ASP.NET Core 访问 Azure 应用服务 ConnectionString

java - Azure:超出了准备语句每个 session 20 MB 的内存限制

azure - c.a.storage.common.Storage输入流: Stream is already closed

visual-studio - 无法在 Visual Studio Online 中删除团队项目

asp.net - 在 Azure 网站上使用 Azure 缓存服务(预览版)时出现问题

Azure DevOps - Github 状态检查

azure - 从 Azure 管道中的 `az vm run-command` 获取退出代码