2016-10-22 4 views
0

Visual Studio를 사용하여 저장소 계정 병 배포를 배포하려고합니다. 다음은 내 템플릿입니다오류 : Code = InvalidTemplate; 메시지 = 배포 템플릿 유효성 검사가 실패했습니다 : '템플릿 리소스

{ 
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", 
    "contentVersion": "1.0.0.0", 
    "parameters": { 
     "storageAccountType": { 
     "type": "array", 
     "defaultValue": [ 
      "Standard_LRS", 
      "Standard_LRS", 
      "Standard_GRS" 
     ] 
     }, 
     "storageAccountNamePrefix": { 
     "type": "string", 
     "defaultValue": "az", 
     "minLength": 1 
     } 
    }, 
    "variables": { 

    }, 
    "resources": [ 
    { 
     "name": "[concat(parameters('storageAccountNamePrefix'),'strg', copyIndex(),uniqueString(resourceGroup().id))]", 
     "type": "Microsoft.Storage/storageAccounts", 
     "location": "[resourceGroup().location]", 
     "apiVersion": "2015-06-15", 
     "copy": { 
     "count": "[length(parameters('storageAccountType'))]", 
     "name": "storageCopy" 
     }, 
     "sku": { 
     "name": "[parameters('storageAccountType')[copyIndex()]]" 
     }, 
     "tags": { 
     "displayName": "[parameters('storageAccountNamePrefix')[copyIndex()]]" 
     }, 
     "properties": { 
     "accountType": "[parameters('storageAccountType')[copyIndex()]]" 
     }, 
     "kind": "Storage" 
    } 
    ], 
    "outputs": { 
    } 
} 

throw되는 오류는 다음 줄

"name": "[concat(parameters('storageAccountNamePrefix'),'strg', copyIndex(),uniqueString(resourceGroup().id))]", 

오류에있다

Error: Code=InvalidTemplate; Message=Deployment template validation failed: 'The template resource 'azstrg0u2pzkvcrv3eo4' at line '25' and column '10' is not valid: Template language expression property 'Microsoft.WindowsAzure.ResourceStack.Frontdoor.Templates.Expressions.TemplateFunctionExpression' can't be evaluated. Please see https://aka.ms/arm-template-expressions for usage details..'. 

내가 할 수 있었기 때문에이 실패가 왜 이해가 안 돼요 다른 자원 이름에 concat 기능을 사용하십시오. 스토리지 계정 이름에는 특수 문자가없는 문자와 숫자 만 사용할 수 있습니다. 오류에서 해결 된 자원 이름이 정확하게 표시됩니다. 따라서 오류 메시지에서 무엇이 잘못된지 알기가 어렵습니다. " 'storageAccountNamePrefix'는"배열이 아니기 때문에

"tags": { 
    "displayName": "[parameters('storageAccountNamePrefix')[copyIndex()]]" 
    }, 

:

나는 당신의 템플릿을 시도

답변

1

, 그것은 아래의 코드에 문제를 보인다. 이전 버전 2016년 1월 1일에, 'SKU는'ACCOUNTTYPE '라고하고'속성 '에서 찾을 것을

"tags": { 
    "displayName": "[parameters('storageAccountNamePrefix')]" 
    }, 

2.Please 노트 : 그래서 당신이 메시지를 오류 줄 것이다, 다음을 시도하십시오 봉투. 이 정보는 this article에 있습니다. 그래서 우리는 API 버전이 "2015-06-15"일 때 sku와 kind를 제거해야한다고 생각합니다. 다음 리소스 정보 템플릿을 모두 테스트했지만 성공적으로 작동합니다. 시도해보십시오.

"resources": [ 
{ 
    "name": "[concat(parameters('storageAccountNamePrefix'),'strg', copyIndex(),uniqueString(resourceGroup().id))]", 
    "type": "Microsoft.Storage/storageAccounts", 
    "location": "[resourceGroup().location]", 
    "apiVersion": "2015-06-15", 
    "copy": { 
    "count": "[length(parameters('storageAccountType'))]", 
    "name": "storageCopy" 
    }, 
    "tags": { 
    "displayName": "[parameters('storageAccountNamePrefix')]" 
    }, 
    "properties": { 
    "accountType": "[parameters('storageAccountType')[copyIndex()]]" 
    } 
}], 

또는

"resources": [ 
{ 
    "name": "[concat(parameters('storageAccountNamePrefix'),'strg', copyIndex(),uniqueString(resourceGroup().id))]", 
    "type": "Microsoft.Storage/storageAccounts", 
    "location": "[resourceGroup().location]", 
    "apiVersion": "2016-01-01", 
    "copy": { 
    "count": "[length(parameters('storageAccountType'))]", 
    "name": "storageCopy" 
    }, 
    "sku": { 
    "name": "[parameters('storageAccountType')[copyIndex()]]" 
    }, 
    "tags": { 
    "displayName": "[parameters('storageAccountNamePrefix')]" 
    }, 
    "kind": "Storage" 
}],