Azure ARM 部署,从 powershell 传递动态变量

Azure ARM deployment, passing dynamic variables from powershell

我创建了一个 ARM 模板来部署具有一组应用程序设置的服务。 我在 ARM 模板中的一个参数没有默认值。 目前,当我 运行 使用 ISE 的部署脚本时,我被询问 "Supply values for the following parameters:" (人工输入请求)。

没关系,但此脚本将自动执行。如何将此动态变量通过管道传输到此字段?

手臂:

"Paramters":{
    "dynamicParam": {
        "type": "string",
        "metadata": {
            "description": "dont know this until deployment"
        }
    }
}

部署powershell是样板。

有几种方法可以做到这一点,最简单的方法是:

New-AzureRmResourceGroupDeployment ... -dynamicParam value

另一个(更酷)是使用您拥有的参数值创建一个散列 table,并将其与 cmdlet 匹配:

$params = @{
   paramA = "test"
   paramB = "anotherTest"
}
New-AzureRmResourceGroupDeployment ... @params

另一种方法是预处理json参数文件并将其传递给部署

只是想添加到上面的答案使用 -TemplateParameterObject 传递 $params

New-AzureRmResourceGroupDeployment -ResourceGroupName $resourceGroupName -Name $deploymentName -TemplateFile $templateFilePath -TemplateParameterObject $params;

在通过 ARM 模板创建资源部署时,在 Az powershell 中传递动态参数是最简单正确的方法。

请使用以下 cmdlet 来实现。

az group deployment create --name TempGroup --resource-group insightsrg --parameters '{\"actionGroupName\": {\"value\": \"jsonActionGroup\"},\"actionGroupShortName\": {\"value\": \"JAG\"}}' --template-file "C:\HM\ARM\policy\actiongroup\actiongroup.json"