azure - 如何使用 ARM 'outputs' 值另一个释放任务?

标签 azure azure-devops azure-resource-manager

我有一个 ARM 模板,其输出部分如下所示:

"outputs": {
    "sqlServerFqdn": {
        "type": "string",
        "value": "[reference(concat('Microsoft.Sql/servers/', variables('sqlserverName'))).fullyQualifiedDomainName]"
    },
    "primaryConnectionString": {
        "type": "string",
        "value": "[concat('Data Source=tcp:', reference(concat('Microsoft.Sql/servers/', variables('sqlserverName'))).fullyQualifiedDomainName, ',1433;Initial Catalog=', variables('databaseName'), ';User Id=', parameters('administratorLogin'), '@', variables('sqlserverName'), ';Password=', parameters('administratorLoginPassword'), ';')]"
    },
    "envResourceGroup": {
        "type": "string",
        "value": "[parameters('hostingPlanName')]"
    }
}

我有一个使用该模板的 Azure 资源组部署任务。然后我想在下一个任务中使用变量 $(sqlServerFqdn) 进行配置。该变量似乎不仅仅填充,而且我找不到任何地方告诉我如何在发布时使用“输出”值。

在此 ARM 模板运行后,我需要做什么才能填充变量以用于配置任务? Powershell 脚本任务或另一个 ARM 模板的参数就是一个示例。

最佳答案

VSTS Azure 资源组部署 任务有 outputs section现在(从 January 2018 开始)。因此,您可以将Azure 资源组部署任务的部署输出中的变量名称设置为ResourceGroupDeploymentOutputs,并添加PowerShell 脚本 具有以下内联脚本的任务:

# Make outputs from resource group deployment available to subsequent tasks

$outputs = ConvertFrom-Json $($env:ResourceGroupDeploymentOutputs)
foreach ($output in $outputs.PSObject.Properties) {
  Write-Host "##vso[task.setvariable variable=RGDO_$($output.Name)]$($output.Value.value)"
}

在后续任务中,您可以使用模板变量。因此,例如,如果您的模板中有 sqlServerFqdn 变量,则在 PowerShell 脚本任务完成后,它将以 $(RGDO_sqlServerFqdn) 形式提供。

关于azure - 如何使用 ARM 'outputs' 值另一个释放任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36948549/

相关文章:

azure-devops - 授予服务帐户访问 AzureDevOps 的权限

azure - 无法从 ARM 模板中的存储资源获取 Azure 存储 key

azure - 在 Arm 模板中使用 If/Else

node.js - 使用 PM2 在 Azure Web Apps 中运行 SPA 时如何添加响应 header

azure - 如何使 Azure 逻辑应用在多个区域之间具有高可用性?

azure - API 连接 - ARM 模板中的用户名和密码

azure - 无法读取配置。 RoleEnvironment 由于其保护级别而可能无法访问

azure-devops - Azure DevOps 项目管道无法从不同项目中的工件源访问 NuGet 包

docker - 无法在Azure发布管道的App Service内部创建Docker网络

azure - Remove-AzDeployment 不会删除创建的资源