0
Azure ARM配備テンプレートでcopy element機能を使用して「ネストされたforループ」を作成しようとしていますが、リソースタイプ(Microsoft.Web/sites/hostnameBindings私の場合)Azure ARMの配備要素内の要素をコピーして、複数のインスタンスを作成する
具体的には、複数のホスト名を複数のアプリケーション(azure appサービスWebサイト)にバインドしようとしています。
これは可能ですか?または、linked templatesパスを下る必要がありますか?
ここまでは私の試みですが、動作させることはできません。
parameters.json
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"appList": {
"value": [
{ "appName": "app1", "hostNames": [ "app1.qqq.example.com", "app1.ttt.example.com" ] },
{ "appName": "app2", "hostNames": [ "app2.qqq.example.com" , "app2.ttt.example.com" ] },
{ "appName": "app3", "hostNames": [ "app3.qqq.example.com", "app3.ttt.example.com" ] }
]
}
}
}
template.json
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"appList": { "type": "array" }
},
"resources": [
{
"type": "Microsoft.Web/sites/hostnameBindings",
"name": "parameters('appList')[copyIndex('webAppCopy')]/parameters('appList')[copyIndex('webAppCopy')].hostNames",
"copy": [
{
"name": "webAppCopy",
"count": "[length(parameters('appList'))]"
}
],
"apiVersion": "2016-03-01",
"location": "[resourceGroup().location]"
}
],
"outputs": {}
}
ありがとう@JohnRusk。私はこの解決策を働かせるために、アプリケーションごとに等しい量のホスト名を用意しましたが、そうでない場合(app1に3つのホスト名があり、app2に5つのホスト名があります)、それが破損します。それでももっと一般的な解決策を探しています。 –
"condition"要素で新しい(ish) "if"ステートメントを使用できるかどうかを確認することは価値があるかもしれませんが、copyIndexがループの反復に展開されないようにしてくださいホスト名配列。キャッチすることは、それが複雑になる可能性があり、私はcopyIndexが "condition"でサポートされているかどうかもわかりません。 –