【发布时间】:2019-06-11 10:37:39
【问题描述】:
我们创建了一个 bash 脚本来部署基于 Azure CLI 和 ARM 模板的 Azure 基础架构。
我们还使用 keyvault 来存储我们的秘密,我们在部署资源时需要它作为参考。
示例(这适用于参数 json 中的静态值):
templateUri="armdeploymysql.json"
az group deployment create \
--name $Environment \
--resource-group $RSGName \
--template-file $templateUri \
--parameters @armdeploymysql-parameters.json
在 armdeploymysql-parameters.json 中你会发现:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"administratorLogin": {
"value": "termysqladmin"
},
"administratorLoginPassword": {
"reference": {
"keyVault": {
"id": "/subscriptions/xxx-xxx-xxx-xxx--xx/resourceGroups/resourcegroupname/providers/Microsoft.KeyVault/vaults/keyvaultname"
},
"secretName": "WORDPRESSDBPASSWORD"
}
},
如您所见,我们使用的是静态值。但是我们需要为多个环境(Test、Acc 和 Prod)部署这个模板,所以我们希望使用变量而不是静态值。
它适用于大多数 ARM 参数,我们使用如下配置:
templateUri="armdeploymysql.json"
az group deployment create \
--name $Environment \
--resource-group $RSGName \
--template-file $templateUri \
--parameters "version=$version" \
"location=$location" \
"administratorLogin=$SQLAdmin" \
"administratorLoginPassword=$SQLPass"
所以问题是:
- 我们能否像上一个示例一样进行参数引用以指向密钥库?
- 如何解析参数json中的变量?
【问题讨论】: