2016-10-22 24 views
0

Visual Studioを使用してストレージアカウントのアーム展開を展開しようとしています。以下は私のテンプレートがあるError: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": { 
    } 
} 

スローされるエラーは、次の行

"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" 
}], 
関連する問題