如何在Azure AZ中覆盖/添加参数,替代AzureRM部署脚本?
将AzureRM部署脚本转换为Azure AZ CLI
嘿,我来帮你把原来的AzureRM PowerShell脚本转换成等价的Azure AZ CLI命令!
首先要明确:你原来AzureRM脚本里的-azureEnvironment ${env}和-locationKey ${location},本质是传递给ARM模板的自定义输入参数。在AZ CLI里,所有模板参数都需要通过--parameters选项来传递——不管是来自参数文件,还是单独的键值对参数。
你之前写的AZ CLI命令接近正确,但最后两行的参数写法不对,应该把它们合并到--parameters选项里。下面是完整的正确命令:
az group deployment create ` --name LocalTestDeployment ` --resource-group xxx-${env}-${location} ` --mode Incremental ` --template-file ..\webapp\azuredeploy.json ` --parameters @..\webapp\azuredeploy.parameters-dev.json ` --parameters azureEnvironment=${env} locationKey=${location}
或者你也可以把额外参数和参数文件写在同一个--parameters后面,用空格分隔:
az group deployment create ` --name LocalTestDeployment ` --resource-group xxx-${env}-${location} ` --mode Incremental ` --template-file ..\webapp\azuredeploy.json ` --parameters @..\webapp\azuredeploy.parameters-dev.json azureEnvironment=${env} locationKey=${location}
关键说明:
- AZ CLI的
az group deployment create不支持直接追加未定义的选项(比如你之前写的-azureEnvironment),所有模板参数必须通过--parameters传递。 - 这种写法会先加载参数文件里的配置,然后用后面的键值对参数覆盖或添加模板参数,和你原来AzureRM脚本的
Incremental模式逻辑完全一致。
内容的提问来源于stack exchange,提问作者KungWaz
相关产品推荐
相关产品推荐

