팔 템플릿에 중첩 된 배열 객체를 참조하는. 이러한 리소스 중 하나는 일부 저장소 계정입니다.내가 몇 배열을 기반으로 여러 자원을 만들려고하고
{
"apiVersion": "[variables('storageApiVersion')]",
"type": "Microsoft.Storage/storageAccounts",
"name": "[variables('storageAccountArray')[0][copyIndex()]]",
"location": "[variables('computeLocation')]",
"copy": {
"name": "storageLoop0",
"count": "[variables('saCount0')]"
나는이 저장소 계정 자원의 몇 가지를해야합니다 여기서 나는과 같이이 반복 할 수있을 것이라고 생각
"storageAccountArray": [
"uniqueStringArray0",
[
"[toLower(concat(parameters('prefix'), 'vhd0', variables('uniqueSuffixID'), '0'))]",
"[toLower(concat(parameters('prefix'), 'vhd0', variables('uniqueSuffixID'), '1'))]",
"[toLower(concat(parameters('prefix'), 'vhd0', variables('uniqueSuffixID'), '2'))]",
"[toLower(concat(parameters('prefix'), 'vhd0', variables('uniqueSuffixID'), '3'))]",
"[toLower(concat(parameters('prefix'), 'vhd0', variables('uniqueSuffixID'), '4'))]"
],
"uniqueStringArray1",
[
"[toLower(concat(parameters('prefix'), 'vhd1', variables('uniqueSuffixID'), '0'))]",
"[toLower(concat(parameters('prefix'), 'vhd1', variables('uniqueSuffixID'), '1'))]",
"[toLower(concat(parameters('prefix'), 'vhd1', variables('uniqueSuffixID'), '2'))]",
"[toLower(concat(parameters('prefix'), 'vhd1', variables('uniqueSuffixID'), '3'))]",
"[toLower(concat(parameters('prefix'), 'vhd1', variables('uniqueSuffixID'), '4'))]"
],
"uniqueStringArray2",
[
"[toLower(concat(parameters('prefix'), 'vhd2', variables('uniqueSuffixID'), '0'))]",
"[toLower(concat(parameters('prefix'), 'vhd2', variables('uniqueSuffixID'), '1'))]",
etc....
: 나는 중첩 된 배열이 저장 계정의 이름이 모든 사본, 그래서 이름이 0,0 다음 0,1 0,2 등에서 가져온받을 것이며, 다음 자원에 이름입니다 : 그래서
"name": "[variables('storageAccountArray')[1][copyIndex()]]"
1,0 1,1 1, 2 등
이 같은 질문에 따르면'The template resource '[variables('storageAccountArray')[0][copyIndex()]]' is not valid: Template language expression property 'Microsoft.WindowsAzure.ResourceStack.Frontdoor.Templates.Expressions.TemplateFunctionExpression' can't be evaluated.
: I 배포하려고 할 때
는 그러나, 나는이 오류가 Access/process (nested) objects, arrays or JSON JSON 일반적으로이 방법으로 평가 될 수있다. 팔이 템플릿을 평가하는 방식으로이 작업을 수행 할 수 없습니까?
"osDisk": {
"vhdContainers": [
"[concat('https://', variables('storageAccountArray')[copyIndex()][0], '.blob.core.windows.net/', parameters('vmStorageAccountContainerNameType0'))]",
"[concat('https://', variables('storageAccountArray')[copyIndex()][1], '.blob.core.windows.net/', parameters('vmStorageAccountContainerNameType0'))]",
"[concat('https://', variables('storageAccountArray')[copyIndex()][2], '.blob.core.windows.net/', parameters('vmStorageAccountContainerNameType0'))]",
etc...
I : 나는 또한 많은 VM을 생성하는 루프지고 내 VM을위한 OS 디스크 등이 디스크를 사용하려고하면
, 나는 액세스하는 중첩 된 배열을 필요로를 추가 할 수 없습니다입니다 또한 많은으로 중첩 된 배열을 분할 시도하지만 자신의 스토리지 계정을 필요로하는 VM을 반복하고, 나는 아직도 내가 루프에서 VM을 생성 할 수 없습니다 요구할 것으로 보인다 하나 개의 숫자를 증가해야합니다.
은 또한 중첩 템플릿에 루프 자원을 분할 할 수있다. 저도 같은 외부 템플릿에 대한 모든 포인트는 다음 번호를 그런 식으로 증가하는 매개 변수로 다른 수의 각각의 시간을 통과 자원을 많은 "Microsoft.Resources/배포"를 만들 수 있을까?
아이디어가 있으십니까?
는 는 는IOW, 당신의 선언 귀하의 "uniqueStringArray0"부분을 제거, 즉 배열 요소를 만드는 것 어떤이다
"m": [
[ "a", "b", "c" ],
[ "1", "2", "3" ]
]
:
팔 템플릿은 내가 그것을 TBH – 4c74356b41