我們有一個Azure ARM模板,它爲Microsoft.Web /站點添加appsettings。在ARM模板中有條件地設置appsetting值
"resources": [
{
"apiVersion": "2016-03-01",
"name": "myazurefunction",
"type": "Microsoft.Web/sites",
"properties": {
"name": "myazurefunction",
"siteConfig": {
"appSettings": [
{
"name": "MY_SERVICE_URL",
"value": "[concat('https://myservice-', parameters('env'), '.domain.ca')]"
}
]
}
}
}
]
我們還有四個parameters.environment.json
文件。例如,這是parameters.dev.json
的內容。
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01...",
"contentVersion": "1.0.0.0",
"parameters": {
"env": {
"value": "dev"
}
}
}
該模板及其參數支持約定優於配置。這在很大程度上工作正常,並且導致以下MY_SERVICE_URL
值。
- https://myservice-dev.domain.ca
- https://myservice-qa.domain.ca
- https://myservice-ci.domain.ca
- https://myservice-prod.domain.ca
的問題是,我們要打破的dev
環境公約。也就是說,我們希望它有一個MY_SERVICE_URL
,看起來是這樣的:
我們如何可以配置ARM模板打破慣例只有一個環境?
我的第一個雖然是使用像這樣的條件,但這樣的ARM功能似乎不可用。
"name": "MY_SERVICE_URL",
"value": "[parameters('env') -eq 'dev'
? 'https://abc123.foo.bar.baz.ca'
: concat('https://myservice-', parameters('env'), '.domain.ca')]"
對不起,固定一個錯字,並添加評論@ ShaunLuttin – 4c74356b41