2016-12-15 19 views
0

ビジュアルスタジオ2015でazureのリソースグループに新しいVMを作成します。 新しいVMは宣言されていない同じリソースグループ内の既存のリソースに依存しますテンプレート内の私は、「リソース 『Microsoft.Storage/storageAccounts/***』 2時21分10秒である - テンプレートで定義されていない」持っAzure ARMテンプレートdependsOn:テンプレートでリソースが定義されていません

"resources": [ 
{ 
    "apiVersion": "2015-06-15", 
    "type": "Microsoft.Compute/virtualMachines", 
    "name": "[variables('vmName')]", 
    "location": "[resourceGroup().location]", 
    "tags": { 
    "displayName": "VirtualMachine" 
    }, 
    "dependsOn": [ 
    "[resourceId('0abb7c58-93b4-45f4-b1be-61a98ac347a3','securitydata','Microsoft.Storage/storageAccounts', parameters('storageAccounts_simscitestrg6892_name'))]" 
    ], 

DEPENDSONは、同じARMテンプレート内のリソースを参照することができますか?

助けてください。

Regards、Frank。

答えて

4

DEPENDSONは、同じARMテンプレート内のリソースを参照することができます:あなたのケースでは、あなたは、このようなVMのプロパティキーを追加することができますか?

Azureのリソースマネージャテンプレートに依存関係の定義について、この公式 documentから

次のように、我々は見つけることができる:

リソースマネージャは、リソース間の依存関係を評価し、それに依存するために、それらを展開しています。リソースが互いに依存しない場合、Resource Managerはそれらを並列にデプロイします。 同じテンプレートにデプロイされているリソースの依存関係を定義する必要があります。

私のテストに基づいて、私はこの問題を再現できました。

{ 
    "name": "[parameters('storageAccounts_simscitestrg6892_name')]", 
    "type": "Microsoft.Storage/storageAccounts", 
    "location": "[resourceGroup().location]", 
    "apiVersion": "2015-06-15", 
    "dependsOn": [], 
    "tags": { 
     "displayName": "StorageAccountResourceName" 
    }, 
    "properties": { 
     "accountType": "[parameters('StorageAccountType')]" 
    } 
} 

をあなたのVMのリソースについて、次のように、あなたは「プロパティ> storageProfile」セクションの下osDiskを設定できます:あなたは、次のようにテンプレート内のストレージリソースを追加する必要が

"osDisk": { 
    "name": "Your-VMOSDisk", 
    "vhd": { 
    "uri": "[concat('https://', parameters('storageAccounts_simscitestrg6892_name'), '.blob.core.windows.net/', variables('Your-VMStorageAccountContainerName'), '/', variables('Your-VMOSDiskName'), '.vhd')]" 
    }, 
    "caching": "ReadWrite", 
    "createOption": "FromImage" 
} 

ストレージリソースは、存在しない場合は、VMと同じ場所に作成されます。

+0

はい、私は参照機能を使用します。 "出力":{ "storageAccountInfo":{ " 値"、"参照:concat( 'Microsoft.Storage/storageAccounts /'、parameters( 'storageAccountname'))、プロバイダ( 'Microsoft.Storage'、 'storageAccounts')。apiVersions [0]) "、 " type " : "オブジェクト" } } –

0

いいえ、これは意味がありません。dependsOnプロパティは、ARMテンプレート内の依存関係を追跡するためのもので、特定の順序でリソースをプロビジョニングできます。リソースがある場合は、それを追跡する意味がありません。それはすでにそこにある。あなたはそれを使用するときにそれを参照するだけです。

+0

はい、私は参考機能を使用します –

+0

はい、私は参照機能を使用します。 "outputs":{ "storageAccountInfo":{ "value": "参照(concat( 'Microsoft.Storage/storageAccounts /'、パラメータ( 'storageAccountname'))、プロバイダ( 'Microsoft.Storage'、 'storageAccounts' ).apiVersions [0])] "、 " type ":" object " } } –

0

はい。 DependsOnは、同じテンプレートを使用して作成している別のリソースに依存するリソースを作成するときに使用されます。リソースがすでに作成されている場合は、リソースへの参照を追加するだけです。

"properties": { 
       "hardwareProfile": { 
        "vmSize": "Standard_DS1" 
       }, 
       "storageProfile": { 
        "imageReference": { 
         "publisher": "MicrosoftWindowsServerHPCPack", 
         "offer": "WindowsServerHPCPack", 
         "sku": "2012R2", 
         "version": "latest" 
        }, 
        "osDisk": { 
         "name": "[parameters('virtualMachines_APP01_name')]", 
         "createOption": "FromImage", 
         "vhd": { 
          "uri": "[concat('https', '://', parameters('storageAccounts_vmdkstorageacct_name'), '.blob.core.windows.net', concat('/vhds/', parameters('virtualMachines_APP01_name'),'APP01.vhd'))]" 
         }, 
         "caching": "ReadWrite" 
        }, 
        "dataDisks": [] 
       }, 
       "osProfile": { 
        "computerName": "[parameters('virtualMachines_APP01_name')]", 
        "adminUsername": "vmadmin", 
        "windowsConfiguration": { 
         "provisionVMAgent": true, 
         "enableAutomaticUpdates": true 
        }, 
        "secrets": [], 
        "adminPassword": "[parameters('virtualMachines_APP01_adminPassword')]" 
       }, 
       "networkProfile": { 
        "networkInterfaces": [ 
         { 
          "id": "[resourceId('Microsoft.Network/networkInterfaces', parameters('networkInterfaces_app01_name'))]" 
         } 
        ] 
       } 
      } 
+0

はい、私は参照機能を使用します。 "outputs":{ "storageAccountInfo":{ "value": "[参照(concat( 'Microsoft.Storage/storageAccounts /'、パラメータ( 'storageAccountname'))、プロバイダ( 'Microsoft。ストレージ」、 'storageAccounts')apiVersions [0])] " "タイプ": "オブジェクト" } } –

関連する問題