Azure Resource Manager テンプレートの構造と構文の詳細Understand the structure and syntax of Azure Resource Manager templates

この記事では、Azure Resource Manager テンプレートの構造について説明します。This article describes the structure of an Azure Resource Manager template. テンプレートの各種セクションとそこで使用できるプロパティを紹介しています。It presents the different sections of a template and the properties that are available in those sections. テンプレートは、JSON、およびデプロイの値を構築するときの式で構成されます。The template consists of JSON and expressions that you can use to construct values for your deployment.

この記事は、Resource Manager テンプレートにある程度慣れているユーザー向けです。This article is intended for users who have some familiarity with Resource Manager templates. テンプレートの構造と構文に関する詳細情報を提供します。It provides detailed information about the structure and syntax of the template. テンプレートの作成の概要を知りたい場合は、「初めての Azure Resource Manager テンプレートを作成する」をご覧ください。If you want an introduction to creating a template, see Create your first Azure Resource Manager template.

注意

この記事は、新しい Azure PowerShell Az モジュールを使用するために更新されました。This article has been updated to use the new Azure PowerShell Az module. Az モジュールと AzureRM の互換性の詳細については、「Introducing the new Azure PowerShell Az module (新しい Azure PowerShell Az モジュールの概要)」を参照してください。To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. インストール手順については、Azure PowerShell のインストール を参照してください。For installation instructions, see Install Azure PowerShell.

テンプレートの形式Template format

最も単純な構造のテンプレートは、次の要素で構成されます。In its simplest structure, a template has the following elements:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "",
  "apiProfile": "",
  "parameters": {  },
  "variables": {  },
  "functions": [  ],
  "resources": [  ],
  "outputs": {  }
}
要素名Element name 必須Required 説明Description
$schema$schema はいYes テンプレート言語のバージョンが記述されている JSON スキーマ ファイルの場所。Location of the JSON schema file that describes the version of the template language.

リソース グループ デプロイの場合、次を使用します。For resource group deployments, use: https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#

サブスクリプション デプロイの場合、次を使用します。For subscription deployments, use: https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#
contentVersioncontentVersion はいYes テンプレートのバージョン (1.0.0.0 など)。Version of the template (such as 1.0.0.0). この要素には任意の値を指定できます。You can provide any value for this element. この値を使用し、テンプレートの大きな変更を記述します。Use this value to document significant changes in your template. テンプレートを使用してリソースをデプロイする場合は、この値を使用して、適切なテンプレートが使用されていることを確認できます。When deploying resources using the template, this value can be used to make sure that the right template is being used.
apiProfileapiProfile いいえ No リソースの種類に対する API のバージョンのコレクションとして機能する API バージョン。An API version that serves as a collection of API versions for resource types. この値を使用すると、テンプレートのリソースごとに API バージョンを指定しなくて済みます。Use this value to avoid having to specify API versions for each resource in the template. API プロファイルのバージョンを指定し、リソースの種類の API バージョンを指定しないと、Resource Manager では、プロファイルでそのリソースの種類に対して定義されている API バージョンが使用されます。When you specify an API profile version and don't specify an API version for the resource type, Resource Manager uses the API version for that resource type that is defined in the profile.

API プロファイル プロパティは、Azure Stack やグローバルな Azure など、さまざまな環境にテンプレートをデプロイする場合に特に便利です。The API profile property is especially helpful when deploying a template to different environments, such as Azure Stack and global Azure. API プロファイルのバージョンを使用し、両方の環境でサポートされているバージョンがテンプレートで自動的に使用されるようにします。Use the API profile version to make sure your template automatically uses versions that are supported in both environments. 現在の API プロファイルのバージョンおよびリソース プロファイルで定義されている API バージョンの一覧については、「API Profile (API プロファイル)」をご覧ください。For a list of the current API profile versions and the resources API versions defined in the profile, see API Profile.

詳しくは、「API プロファイルを使用してバージョンを追跡する」をご覧ください。For more information, see Track versions using API profiles.
parametersparameters いいえ No リソースのデプロイをカスタマイズするのにはデプロイを実行すると、提供されている値です。Values that are provided when deployment is executed to customize resource deployment.
variablesvariables いいえ No テンプレート言語式を簡略化するためにテンプレート内で JSON フラグメントとして使用される値。Values that are used as JSON fragments in the template to simplify template language expressions.
functionsfunctions いいえ No テンプレート内で使用できるユーザー定義関数。User-defined functions that are available within the template.
resourcesresources はいYes リソース グループまたはサブスクリプション内でデプロイまたは更新されるリソースの種類。Resource types that are deployed or updated in a resource group or subscription.
outputsoutputs いいえ No デプロイ後に返される値。Values that are returned after deployment.

各要素には、設定できるプロパティがあります。Each element has properties you can set. この記事では、テンプレートのセクションについて詳しく説明します。This article describes the sections of the template in greater detail.

構文Syntax

テンプレートの基本的な構文は JSON です。The basic syntax of the template is JSON. ただし、式を使用して、テンプレート内で使用できる JSON の値を拡張できます。However, you can use expressions to extend the JSON values available within the template. 式の始まりと終わりは、それぞれ角かっこ [] です。Expressions start and end with brackets: [ and ], respectively. 式の値は、テンプレートのデプロイ時に評価されます。The value of the expression is evaluated when the template is deployed. 式では、文字列、整数、ブール値、配列、またはオブジェクトを返すことができます。An expression can return a string, integer, boolean, array, or object. 次の例では、パラメーターの既定値での式を示します。The following example shows an expression in the default value of a parameter:

"parameters": {
  "location": {
    "type": "string",
    "defaultValue": "[resourceGroup().location]"
  }
},

式の構文 resourceGroup() では、Resource Manager によってテンプレート内で使用するために提供されている関数の 1 つを呼び出します。Within the expression, the syntax resourceGroup() calls one of the functions that Resource Manager provides for use within a template. JavaScript の場合と同様に、関数呼び出しは functionName(arg1,arg2,arg3) という形式になります。Just like in JavaScript, function calls are formatted as functionName(arg1,arg2,arg3). 構文 .location では、その関数によって返されたオブジェクトから 1 つのプロパティを取得します。The syntax .location retrieves one property from the object returned by that function.

テンプレート関数とそのパラメーターでは大文字と小文字が区別されません。Template functions and their parameters are case-insensitive. たとえば、Resource Manager では、variables('var1')VARIABLES('VAR1') が同じものとして解決されます。For example, Resource Manager resolves variables('var1') and VARIABLES('VAR1') as the same. 評価の際、関数は、大文字/小文字を明確に変更する (toUpper、toLower など) 場合を除き、大文字/小文字を保持します。When evaluated, unless the function expressly modifies case (such as toUpper or toLower), the function preserves the case. 特定のリソースの種類では、関数の評価方法とは無関係に、大文字/小文字の要件が存在する場合があります。Certain resource types may have case requirements irrespective of how functions are evaluated.

角かっこ [ で始まるリテラル文字列を使用するが、式として解釈されないようにするには、文字列が [[ で始まるように追加の角かっこを追加します。To have a literal string start with a bracket [, but not have it interpreted as an expression, add an extra bracket to start the string with [[.

文字列値をパラメーターとして関数に渡すには、単一引用符を使用します。To pass a string value as a parameter to a function, use single quotes.

"name": "[concat('storage', uniqueString(resourceGroup().id))]"

テンプレートでの JSON オブジェクトの追加など、式の中で二重引用符をエスケープするには、円記号を使用します。To escape double quotes in an expression, such as adding a JSON object in the template, use the backslash.

"tags": {
    "CostCenter": "{\"Dept\":\"Finance\",\"Environment\":\"Production\"}"
},

テンプレート式は、24,576 文字を超えることはできません。A template expression can't exceed 24,576 characters.

テンプレート関数の完全一覧が必要な場合、「 Azure リソース マネージャーのテンプレートの関数」を参照してください。For the full list of template functions, see Azure Resource Manager template functions.

parametersParameters

テンプレートの parameters セクションでは、リソースをデプロイするときにどのような値を入力できるかを指定します。In the parameters section of the template, you specify which values you can input when deploying the resources. 特定の環境 (開発、テスト、運用など) に合った値をパラメーターに渡すことで、デプロイをカスタマイズすることができます。These parameter values enable you to customize the deployment by providing values that are tailored for a particular environment (such as dev, test, and production). テンプレートでは必ずしもパラメーターを使用する必要はありませんが、パラメーターを使わなかった場合、常に同じリソースが同じ名前、同じ場所、同じプロパティでデプロイされます。You don't have to provide parameters in your template, but without parameters your template would always deploy the same resources with the same names, locations, and properties.

テンプレートではパラメーターが 256 個に制限されます。You're limited to 256 parameters in a template. この記事で説明するように、複数のプロパティを含むオブジェクトを使用すると、パラメーター数を減らすことができます。You can reduce the number of parameters by using objects that contain multiple properties, as shown in this article.

利用可能なプロパティAvailable properties

パラメーターで使用可能なプロパティは次のとおりです。The available properties for a parameter are:

"parameters": {
  "<parameter-name>" : {
    "type" : "<type-of-parameter-value>",
    "defaultValue": "<default-value-of-parameter>",
    "allowedValues": [ "<array-of-allowed-values>" ],
    "minValue": <minimum-value-for-int>,
    "maxValue": <maximum-value-for-int>,
    "minLength": <minimum-length-for-string-or-array>,
    "maxLength": <maximum-length-for-string-or-array-parameters>,
    "metadata": {
      "description": "<description-of-the parameter>" 
    }
  }
}
要素名Element name 必須Required 説明Description
parameterNameparameterName はいYes パラメーターの名前。Name of the parameter. 有効な JavaScript 識別子で指定する必要があります。Must be a valid JavaScript identifier.
typetype はいYes パラメーター値の型。Type of the parameter value. 使用できる型および値は、stringsecurestringintboolobjectsecureObjectarray です。The allowed types and values are string, securestring, int, bool, object, secureObject, and array.
defaultValuedefaultValue いいえ No パラメーターに値が指定されない場合のパラメーターの既定値。Default value for the parameter, if no value is provided for the parameter.
allowedValuesallowedValues いいえ No 適切な値が確実に指定されるように、パラメーターに使用できる値の配列。Array of allowed values for the parameter to make sure that the right value is provided.
minValueminValue いいえ No int 型パラメーターの最小値。The minimum value for int type parameters, this value is inclusive.
maxValuemaxValue いいえ No int 型パラメーターの最大値。The maximum value for int type parameters, this value is inclusive.
minLengthminLength いいえ No string 型、securestring 型、array 型パラメーターの長さの最小値 (この値を含む)。The minimum length for string, secure string, and array type parameters, this value is inclusive.
maxLengthmaxLength いいえ No string 型、securestring 型、array 型パラメーターの長さの最大値 (この値を含む)。The maximum length for string, secure string, and array type parameters, this value is inclusive.
descriptiondescription いいえ No ポータルを通じてユーザーに表示されるパラメーターの説明。Description of the parameter that is displayed to users through the portal. 詳しくは、テンプレート内のコメントに関するページをご覧ください。For more information, see Comments in templates.

パラメーターの定義と使用Define and use a parameter

単純なパラメーター定義の例を次に示します。The following example shows a simple parameter definition. ここでは、パラメーターの名前が定義され、パラメーターが文字列値を取ることが指定されています。It defines the name of the parameter, and specifies that it takes a string value. パラメーターは、使用目的に合う値のみを受け入れます。The parameter only accepts values that make sense for its intended use. デプロイ時に値が指定されなかった場合の既定値が指定されています。It specifies a default value when no value is provided during deployment. さらに、このパラメーターには使用方法の説明も含まれています。Finally, the parameter includes a description of its use.

"parameters": {
  "storageSKU": {
    "type": "string",
    "allowedValues": [
      "Standard_LRS",
      "Standard_ZRS",
      "Standard_GRS",
      "Standard_RAGRS",
      "Premium_LRS"
    ],
    "defaultValue": "Standard_LRS",
    "metadata": {
      "description": "The type of replication to use for the storage account."
    }
  }   
}

テンプレートでは、次の構文でパラメーターの値を参照できます。In the template, you reference the value for the parameter with the following syntax:

"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "sku": {
      "name": "[parameters('storageSKU')]"
    },
    ...
  }
]

テンプレート関数とパラメーターTemplate functions with parameters

パラメーターの既定値を指定する場合は、ほとんどのテンプレート関数を使用できます。When specifying the default value for a parameter, you can use most template functions. 別のパラメーター値を使用して既定値を作成できます。You can use another parameter value to build a default value. 次のテンプレートは、既定値に関する関数の使用方法を示します。The following template demonstrates the use of functions in the default value:

"parameters": {
  "siteName": {
    "type": "string",
    "defaultValue": "[concat('site', uniqueString(resourceGroup().id))]",
    "metadata": {
      "description": "The site name. To use the default value, do not specify a new value."
    }
  },
  "hostingPlanName": {
    "type": "string",
    "defaultValue": "[concat(parameters('siteName'),'-plan')]",
    "metadata": {
      "description": "The host name. To use the default value, do not specify a new value."
    }
  }
}

parameters セクションで reference 関数を使用することはできません。You can't use the reference function in the parameters section. パラメーターはデプロイ前に評価されるため、reference 関数はリソースのランタイム状態を取得できません。Parameters are evaluated before deployment so the reference function can't get the runtime state of a resource.

パラメーターとしてのオブジェクトObjects as parameters

関連する値は 1 つのオブジェクトとして渡すことにより整理しやすくなります。It can be easier to organize related values by passing them in as an object. この方法により、テンプレート内のパラメータ数も減少します。This approach also reduces the number of parameters in the template.

テンプレートでパラメーターを定義し、デプロイ時に 1 つの値ではなく、JSON オブジェクトを指定します。Define the parameter in your template and specify a JSON object instead of a single value during deployment.

"parameters": {
  "VNetSettings": {
    "type": "object",
    "defaultValue": {
      "name": "VNet1",
      "location": "eastus",
      "addressPrefixes": [
        {
          "name": "firstPrefix",
          "addressPrefix": "10.0.0.0/22"
        }
      ],
      "subnets": [
        {
          "name": "firstSubnet",
          "addressPrefix": "10.0.0.0/24"
        },
        {
          "name": "secondSubnet",
          "addressPrefix": "10.0.1.0/24"
        }
      ]
    }
  }
},

その後、ドット演算子を使用して、パラメーターのサブプロパティを参照します。Then, reference the subproperties of the parameter by using the dot operator.

"resources": [
  {
    "apiVersion": "2015-06-15",
    "type": "Microsoft.Network/virtualNetworks",
    "name": "[parameters('VNetSettings').name]",
    "location": "[parameters('VNetSettings').location]",
    "properties": {
      "addressSpace":{
        "addressPrefixes": [
          "[parameters('VNetSettings').addressPrefixes[0].addressPrefix]"
        ]
      },
      "subnets":[
        {
          "name":"[parameters('VNetSettings').subnets[0].name]",
          "properties": {
            "addressPrefix": "[parameters('VNetSettings').subnets[0].addressPrefix]"
          }
        },
        {
          "name":"[parameters('VNetSettings').subnets[1].name]",
          "properties": {
            "addressPrefix": "[parameters('VNetSettings').subnets[1].addressPrefix]"
          }
        }
      ]
    }
  }
]

パラメーターの例が示されているテンプレートParameter example templates

次のサンプル テンプレートでは、パラメーターを使用するいくつかのシナリオを例示します。These example templates demonstrate some scenarios for using parameters. さまざまなシナリオでパラメーターがどのように処理されるかを、このサンプルをデプロイして試してください。Deploy them to test how parameters are handled in different scenarios.

TemplateTemplate 説明Description
既定値のための関数を含むパラメーターparameters with functions for default values パラメーターの既定値を定義する際のテンプレート関数の使用方法を説明します。Demonstrates how to use template functions when defining default values for parameters. このテンプレートではリソースをデプロイしません。The template doesn't deploy any resources. パラメーターの値を作成して、その値を返します。It constructs parameter values and returns those values.
パラメーター オブジェクトparameter object パラメーターのオブジェクトの使用方法を示します。Demonstrates using an object for a parameter. このテンプレートではリソースをデプロイしません。The template doesn't deploy any resources. パラメーターの値を作成して、その値を返します。It constructs parameter values and returns those values.

variablesVariables

テンプレート内で使用できる値は、variables セクションで構築します。In the variables section, you construct values that can be used throughout your template. 必ずしも変数を定義する必要はありませんが、変数を定義することによって複雑な式が減り、テンプレートが単純化されることはよくあります。You don't need to define variables, but they often simplify your template by reducing complex expressions.

使用可能な定義Available definitions

次の例では、変数の定義に使用できるオプションを示します。The following example shows the available options for defining a variable:

"variables": {
  "<variable-name>": "<variable-value>",
  "<variable-name>": { 
    <variable-complex-type-value> 
  },
  "<variable-object-name>": {
    "copy": [
      {
        "name": "<name-of-array-property>",
        "count": <number-of-iterations>,
        "input": <object-or-value-to-repeat>
      }
    ]
  },
  "copy": [
    {
      "name": "<variable-array-name>",
      "count": <number-of-iterations>,
      "input": <object-or-value-to-repeat>
    }
  ]
}

copy を使用して変数に複数の値を作成する方法については、「変数の反復処理」をご覧ください。For information about using copy to create several values for a variable, see Variable iteration.

変数の定義と使用Define and use a variable

変数を定義する例を以下に示します。The following example shows a variable definition. これにより、ストレージ アカウント名の文字列値が作成されます。It creates a string value for a storage account name. テンプレート関数をいくつか使用してパラメーター値を取得し、連結して一意の文字列にします。It uses several template functions to get a parameter value, and concatenates it to a unique string.

"variables": {
  "storageName": "[concat(toLower(parameters('storageNamePrefix')), uniqueString(resourceGroup().id))]"
},

リソースを定義するときに、この変数を使用します。You use the variable when defining the resource.

"resources": [
  {
    "name": "[variables('storageName')]",
    "type": "Microsoft.Storage/storageAccounts",
    ...

構成変数Configuration variables

複雑な JSON 型を使用して、環境に関連する値を定義できます。You can use complex JSON types to define related values for an environment.

"variables": {
  "environmentSettings": {
    "test": {
      "instanceSize": "Small",
      "instanceCount": 1
    },
    "prod": {
      "instanceSize": "Large",
      "instanceCount": 4
    }
  }
},

パラメーターで、使用する構成の値を示す値を作成します。In parameters, you create a value that indicates which configuration values to use.

"parameters": {
  "environmentName": {
    "type": "string",
    "allowedValues": [
      "test",
      "prod"
    ]
  }
},

現在の設定を取得するには次のようにします。You retrieve the current settings with:

"[variables('environmentSettings')[parameters('environmentName')].instanceSize]"

変数の例のテンプレートVariable example templates

次のサンプル テンプレートでは、変数を使用するいくつかのシナリオを例示します。These example templates demonstrate some scenarios for using variables. さまざまなシナリオで変数がどのように処理されるかを、このサンプルを展開して試してください。Deploy them to test how variables are handled in different scenarios.

TemplateTemplate 説明Description
変数の定義variable definitions さまざまな種類の変数を例示します。Demonstrates the different types of variables. このテンプレートではリソースをデプロイしません。The template doesn't deploy any resources. 変数の値を作成して、その値を返します。It constructs variable values and returns those values.
構成変数configuration variable 構成の値を定義する変数の用法を例示します。Demonstrates the use of a variable that defines configuration values. このテンプレートではリソースをデプロイしません。The template doesn't deploy any resources. 変数の値を作成して、その値を返します。It constructs variable values and returns those values.
ネットワーク セキュリティの規則パラメーター ファイルnetwork security rules and parameter file ネットワーク セキュリティ グループにセキュリティの規則を割り当てるために、配列を正しい形式で作成します。Constructs an array in the correct format for assigning security rules to a network security group.

FunctionsFunctions

テンプレート内で、独自の関数を作成できます。Within your template, you can create your own functions. これらの関数は、テンプレートで使用可能です。These functions are available for use in your template. 通常は、テンプレート内で繰り返したくない複雑な式を定義します。Typically, you define complicated expression that you don't want to repeat throughout your template. ユーザー定義関数は、テンプレートでサポートされている関数および式から作成します。You create the user-defined functions from expressions and functions that are supported in templates.

ユーザー関数を定義するときに、適用される制限がいくつかあります。When defining a user function, there are some restrictions:

  • 関数は変数にアクセスできません。The function can't access variables.
  • 関数は、関数内で定義されているパラメーターのみを使用できます。The function can only use parameters that are defined in the function. ユーザー定義関数内でパラメーター関数を使用する場合、その関数のパラメーターに制限されます。When you use the parameters function within a user-defined function, you're restricted to the parameters for that function.
  • 関数は、その他のユーザー定義関数を呼び出すことはできません。The function can't call other user-defined functions.
  • 関数は reference 関数を使用できません。The function can't use the reference function.
  • 関数のパラメーターでは既定値を指定できません。Parameters for the function can't have default values.

テンプレート関数との名前の競合を回避するために、お使いの関数には名前空間の値が必要です。Your functions require a namespace value to avoid naming conflicts with template functions. 次の例は、ストレージ アカウント名を返す関数を示しています。The following example shows a function that returns a storage account name:

"functions": [
  {
    "namespace": "contoso",
    "members": {
      "uniqueName": {
        "parameters": [
          {
            "name": "namePrefix",
            "type": "string"
          }
        ],
        "output": {
          "type": "string",
          "value": "[concat(toLower(parameters('namePrefix')), uniqueString(resourceGroup().id))]"
        }
      }
    }
  }
],

関数を呼び出すには、次を使用します。You call the function with:

"resources": [
  {
    "name": "[contoso.uniqueName(parameters('storageNamePrefix'))]",
    "type": "Microsoft.Storage/storageAccounts",
    "apiVersion": "2016-01-01",
    "sku": {
      "name": "Standard_LRS"
    },
    "kind": "Storage",
    "location": "South Central US",
    "tags": {},
    "properties": {}
  }
]

リソースResources

resources セクションでは、デプロイまたは更新されるリソースを定義します。In the resources section, you define the resources that are deployed or updated.

利用可能なプロパティAvailable properties

リソースは、次の構造で定義します。You define resources with the following structure:

"resources": [
  {
      "condition": "<true-to-deploy-this-resource>",
      "apiVersion": "<api-version-of-resource>",
      "type": "<resource-provider-namespace/resource-type-name>",
      "name": "<name-of-the-resource>",
      "location": "<location-of-resource>",
      "tags": {
          "<tag-name1>": "<tag-value1>",
          "<tag-name2>": "<tag-value2>"
      },
      "comments": "<your-reference-notes>",
      "copy": {
          "name": "<name-of-copy-loop>",
          "count": <number-of-iterations>,
          "mode": "<serial-or-parallel>",
          "batchSize": <number-to-deploy-serially>
      },
      "dependsOn": [
          "<array-of-related-resource-names>"
      ],
      "properties": {
          "<settings-for-the-resource>",
          "copy": [
              {
                  "name": ,
                  "count": ,
                  "input": {}
              }
          ]
      },
      "sku": {
          "name": "<sku-name>",
          "tier": "<sku-tier>",
          "size": "<sku-size>",
          "family": "<sku-family>",
          "capacity": <sku-capacity>
      },
      "kind": "<type-of-resource>",
      "plan": {
          "name": "<plan-name>",
          "promotionCode": "<plan-promotion-code>",
          "publisher": "<plan-publisher>",
          "product": "<plan-product>",
          "version": "<plan-version>"
      },
      "resources": [
          "<array-of-child-resources>"
      ]
  }
]
要素名Element name 必須Required 説明Description
conditioncondition いいえ No このデプロイの間にリソースがプロビジョニングされるかどうかを示すブール値。Boolean value that indicates whether the resource will be provisioned during this deployment. true の場合、デプロイ時にリソースが作成されます。When true, the resource is created during deployment. false の場合、このデプロイでは、リソースはスキップされます。When false, the resource is skipped for this deployment.
apiVersionapiVersion はいYes リソースの作成に使用する REST API バージョン。Version of the REST API to use for creating the resource. 使用可能な値を確認するには、テンプレートのリファレンスに関する記事をご覧ください。To determine available values, see template reference.
typetype はいYes リソースの種類。Type of the resource. この値は、リソース プロバイダーの名前空間と、リソースの種類の組み合わせです (例: Microsoft.Storage/storageAccounts)。This value is a combination of the namespace of the resource provider and the resource type (such as Microsoft.Storage/storageAccounts). 使用可能な値を確認するには、テンプレートのリファレンスに関する記事をご覧ください。To determine available values, see template reference.
namename はいYes リソースの名前。Name of the resource. この名前は、RFC3986 で定義されている URI コンポーネントの制限に準拠する必要があります。The name must follow URI component restrictions defined in RFC3986. また、リソース名を外部に公開する Azure サービスでは、名前が別の ID になりすますことがないように、その名前を検証します。In addition, Azure services that expose the resource name to outside parties validate the name to make sure it isn't an attempt to spoof another identity.
locationlocation 多様Varies 指定されたリソースのサポートされている地理的な場所。Supported geo-locations of the provided resource. 利用可能な任意の場所を選択できますが、一般的に、ユーザーに近い場所を選択します。You can select any of the available locations, but typically it makes sense to pick one that is close to your users. また、通常、相互に対話するリソースを同じリージョンに配置します。Usually, it also makes sense to place resources that interact with each other in the same region. ほとんどのリソースの種類では場所が必要となりますが、場所を必要としない種類 (ロールの割り当てなど) もあります。Most resource types require a location, but some types (such as a role assignment) don't require a location.
tagstags いいえ No リソースに関連付けられたタグ。Tags that are associated with the resource. サブスクリプション間でリソースを論理的に編成するためのタグを適用します。Apply tags to logically organize resources across your subscription.
コメントcomments いいえ No テンプレート内にドキュメント化するリソースについてのメモ。Your notes for documenting the resources in your template. 詳しくは、テンプレート内のコメントに関するページをご覧ください。For more information, see Comments in templates.
copycopy いいえ No 複数のインスタンスが必要な場合に作成するリソースの数。If more than one instance is needed, the number of resources to create. 既定のモードはパラレルです。The default mode is parallel. すべてのリソースを同時にデプロイする必要がない場合は、シリアル モードを指定します。Specify serial mode when you don't want all or the resources to deploy at the same time. 詳しくは、「Azure Resource Manager でリソースの複数のインスタンスを作成する」をご覧ください。For more information, see Create several instances of resources in Azure Resource Manager.
dependsOndependsOn いいえ No このリソースが配置される前に配置される必要があるリソース。Resources that must be deployed before this resource is deployed. Resource Manager により、リソース間の依存関係が評価され、リソースが正しい順序でデプロイされます。Resource Manager evaluates the dependencies between resources and deploys them in the correct order. 相互依存していないリソースは、平行してデプロイされます。When resources aren't dependent on each other, they're deployed in parallel. 値には、リソース名またはリソースの一意識別子のコンマ区切りリストを指定できます。The value can be a comma-separated list of a resource names or resource unique identifiers. このテンプレートに配置されたリソースのみをリストします。Only list resources that are deployed in this template. このテンプレートで定義されていないリソースは、既に存在している必要があります。Resources that aren't defined in this template must already exist. 不要な依存関係は追加しないでください。こうした依存関係によりデプロイの速度が遅くなり、循環依存関係を作成されることがあります。Avoid adding unnecessary dependencies as they can slow your deployment and create circular dependencies. 詳細については、Azure Resource Manager テンプレートの依存関係の定義に関するページをご覧ください。For guidance on setting dependencies, see Defining dependencies in Azure Resource Manager templates.
propertiesproperties いいえ No リソース固有の構成設定。Resource-specific configuration settings. properties の値は、リソースを作成するために REST API 操作 (PUT メソッド) の要求本文に指定した値と同じです。The values for the properties are the same as the values you provide in the request body for the REST API operation (PUT method) to create the resource. コピー配列を指定して、1 つのプロパティの複数のインスタンスを作成することもできます。You can also specify a copy array to create several instances of a property. 使用可能な値を確認するには、テンプレートのリファレンスに関する記事をご覧ください。To determine available values, see template reference.
skusku いいえ No 一部のリソースでは、デプロイする SKU を定義する値が許可されます。Some resources allow values that define the SKU to deploy. たとえば、ストレージ アカウントの冗長性の種類を指定することができます。For example, you can specify the type of redundancy for a storage account.
kindkind いいえ No 一部のリソースでは、デプロイするリソースの種類を定義する値が許可されます。Some resources allow a value that defines the type of resource you deploy. たとえば、作成する Cosmos DB の種類を指定することができます。For example, you can specify the type of Cosmos DB to create.
プランplan いいえ No 一部のリソースでは、デプロイするプランを定義する値が許可されます。Some resources allow values that define the plan to deploy. たとえば、仮想マシンのマーケットプレース イメージを指定することができます。For example, you can specify the marketplace image for a virtual machine.
resourcesresources いいえ No 定義されているリソースに依存する子リソース。Child resources that depend on the resource being defined. 親リソースのスキーマで許可されているリソースの種類のみを指定します。Only provide resource types that are permitted by the schema of the parent resource. 子リソースの完全修飾型には親リソースの種類が含まれます (例: Microsoft.Web/sites/extensions)。The fully qualified type of the child resource includes the parent resource type, such as Microsoft.Web/sites/extensions. 親リソースへの依存関係は示されません。Dependency on the parent resource isn't implied. この依存関係は明示的に定義する必要があります。You must explicitly define that dependency.

条件Condition

デプロイ時にリソースを作成するどうかを決定する必要がある場合は、condition 要素を使用します。When you must decide during deployment whether or not to create a resource, use the condition element. この要素の値は、true または false に解決されます。The value for this element resolves to true or false. 値が true の場合、リソースが作成されます。When the value is true, the resource is created. 値が false の場合、リソースは作成されません。When the value is false, the resource isn't created. この要素の値は、リソース全体にのみ適用できます。The value can only be applied to the whole resource.

通常、新しいリソースを作成するか、既存のリソースを使用する場合は、この値を使用します。Typically, you use this value when you want to create a new resource or use an existing one. たとえば、新しいストレージ アカウントをデプロイするか、既存のストレージ アカウントを使用するかを指定するには、次のようにします。For example, to specify whether a new storage account is deployed or an existing storage account is used, use:

{
    "condition": "[equals(parameters('newOrExisting'),'new')]",
    "type": "Microsoft.Storage/storageAccounts",
    "name": "[variables('storageAccountName')]",
    "apiVersion": "2017-06-01",
    "location": "[resourceGroup().location]",
    "sku": {
        "name": "[variables('storageAccountType')]"
    },
    "kind": "Storage",
    "properties": {}
}

condition 要素を使用する完全なテンプレート例については、新規または既存の仮想ネットワーク、ストレージ、およびパブリック IP を使用する VM に関するページを参照してください。For a complete example template that uses the condition element, see VM with a new or existing Virtual Network, Storage, and Public IP.

リソース名Resource names

Resource Manager では、一般に、次の 3 種類のリソース名を使用します。Generally, you work with three types of resource names in Resource Manager:

  • 一意である必要があるリソース名Resource names that must be unique.
  • 一意である必要がないリソース名。ただし、リソースを識別するのに役立つ名前を指定するようにします。Resource names that aren't required to be unique, but you choose to provide a name that can help you identify the resource.
  • 一般的なものでよいリソース名Resource names that can be generic.

データ アクセス エンドポイントを持つリソースの種類に対しては、一意のリソース名を指定します。Provide a unique resource name for any resource type that has a data access endpoint. 一意の名前にする必要がある一般的なリソースの種類には次のようなものがあります。Some common resource types that require a unique name include:

  • Azure Storage1Azure Storage1
  • Azure App Service の Web Apps の機能Web Apps feature of Azure App Service
  • SQL ServerSQL Server
  • Azure Key VaultAzure Key Vault
  • Azure Cache for RedisAzure Cache for Redis
  • Azure BatchAzure Batch
  • Azure の Traffic ManagerAzure Traffic Manager
  • Azure SearchAzure Search
  • Azure HDInsightAzure HDInsight

1 ストレージ アカウント名も、小文字で 24 文字以下にする必要があり、ハイフンを含めることはできません。1 Storage account names also must be lowercase, 24 characters or less, and not have any hyphens.

名前を設定する際には、一意の名前を手動で作成するか、uniqueString() 関数を使用して名前を生成します。When setting the name, you can either manually create a unique name or use the uniqueString() function to generate a name. uniqueString の結果に、プレフィックスまたはサフィックスを追加することもできます。You also might want to add a prefix or suffix to the uniqueString result. 一意の名前を変更すると、リソースの種類を名前から簡単に識別するのに役立ちます。Modifying the unique name can help you more easily identify the resource type from the name. たとえば、次の変数を使用してストレージ アカウントの一意の名前を生成できます。For example, you can generate a unique name for a storage account by using the following variable:

"variables": {
  "storageAccountName": "[concat(uniqueString(resourceGroup().id),'storage')]"
}

リソースの種類によっては、識別名を指定したいことがありますが、その名前は一意である必要はありません。For some resource types, you might want to provide a name for identification, but the name doesn't have to be unique. このようなリソースの種類では、その用途と特性がわかる名前を指定します。For these resource types, provide a name that describes it use or characteristics.

"parameters": {
  "vmName": { 
    "type": "string",
    "defaultValue": "demoLinuxVM",
    "metadata": {
      "description": "The name of the VM to create."
    }
  }
}

別のリソースからアクセスされることの多いリソースの種類に対しては、テンプレートでハードコーディングされた一般的な名前を使用できます。For resource types that you mostly access through a different resource, you can use a generic name that is hard-coded in the template. たとえば、SQL Server のファイアウォール規則には、標準的で一般的な名前を設定できます。For example, you can set a standard, generic name for firewall rules on a SQL server:

{
  "type": "firewallrules",
  "name": "AllowAllWindowsAzureIps",
  ...
}

リソースの場所Resource location

テンプレートをデプロイするときに、各リソースの場所を指定する必要があります。When deploying a template, you must provide a location for each resource. 場所ごとに、異なるリソースの種類がサポートされます。Different resource types are supported in different locations. リソースの種類に対してサポートされている場所を取得するには、「Azure リソース プロバイダーとリソースの種類」をご覧ください。To get the supported locations for a resource type, see Azure resource providers and types.

パラメーターを使用して、リソースの場所を指定し、既定値を resourceGroup().location に設定します。Use a parameter to specify the location for resources, and set the default value to resourceGroup().location.

次の例は、パラメーターとして指定された場所にデプロイされたストレージ アカウントを示したものです。The following example shows a storage account that is deployed to a location specified as a parameter:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountType": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_ZRS",
        "Premium_LRS"
      ],
      "metadata": {
        "description": "Storage Account type"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    }
  },
  "variables": {
    "storageAccountName": "[concat('storage', uniquestring(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "name": "[variables('storageAccountName')]",
      "location": "[parameters('location')]",
      "apiVersion": "2018-07-01",
      "sku": {
        "name": "[parameters('storageAccountType')]"
      },
      "kind": "StorageV2",
      "properties": {}
    }
  ],
  "outputs": {
    "storageAccountName": {
      "type": "string",
      "value": "[variables('storageAccountName')]"
    }
  }
}

子リソースChild resources

一部のリソースの種類では、一連の子リソースを定義することができます。Within some resource types, you can also define an array of child resources. 子リソースとは、別のリソースのコンテキスト内でのみ存在するリソースのことです。Child resources are resources that only exist within the context of another resource. たとえば、SQL データベースは SQL サーバーなしでは存在できないので、データベースはサーバーの子であることになります。For example, a SQL database can't exist without a SQL server so the database is a child of the server. データベースはサーバーの定義内に定義することができます。You can define the database within the definition for the server.

{
  "name": "exampleserver",
  "type": "Microsoft.Sql/servers",
  "apiVersion": "2014-04-01",
  ...
  "resources": [
    {
      "name": "exampledatabase",
      "type": "databases",
      "apiVersion": "2014-04-01",
      ...
    }
  ]
}

入れ子にした場合、種類は databases に設定されますが、全体的なリソースの種類は Microsoft.Sql/servers/databases です。When nested, the type is set to databases but its full resource type is Microsoft.Sql/servers/databases. 親リソースの種類から想定されるため、Microsoft.Sql/servers/ は不要です。You don't provide Microsoft.Sql/servers/ because it's assumed from the parent resource type. 子リソースの名前は exampledatabase が設定されていますが、完全な名前には親の名前が含まれています。The child resource name is set to exampledatabase but the full name includes the parent name. 親リソースから想定されるため、exampleserver は不要です。You don't provide exampleserver because it's assumed from the parent resource.

子リソースの種類の形式は次のとおりです。The format of the child resource type is: {resource-provider-namespace}/{parent-resource-type}/{child-resource-type}

子リソースの名前の形式は次のとおりです。The format of the child resource name is: {parent-resource-name}/{child-resource-name}

ただし、データベースをサーバー内で定義する必要はありません。But, you don't have to define the database within the server. 最上位レベルで子リソースを定義できます。You can define the child resource at the top level. 親リソースが同じテンプレート内にデプロイされていない場合、または複数の子リソースを作成するために copy を使う場合は、このアプローチを使用することがあります。You might use this approach if the parent resource isn't deployed in the same template, or if want to use copy to create more than one child resource. このアプローチの場合、完全なリソースの種類を指定する必要があり、子リソースの名前に親のリソースの名前を含める必要があります。With this approach, you must provide the full resource type, and include the parent resource name in the child resource name.

{
  "name": "exampleserver",
  "type": "Microsoft.Sql/servers",
  "apiVersion": "2014-04-01",
  "resources": [ 
  ],
  ...
},
{
  "name": "exampleserver/exampledatabase",
  "type": "Microsoft.Sql/servers/databases",
  "apiVersion": "2014-04-01",
  ...
}

リソースに対する完全修飾参照を作成する場合、種類と名前からセグメントを結合する順序は、単に 2 つの連結ではありません。When constructing a fully qualified reference to a resource, the order to combine segments from the type and name isn't simply a concatenation of the two. 名前空間の後に、"種類/名前" のペアを具体性の低いものから高いものへの順に使用します。Instead, after the namespace, use a sequence of type/name pairs from least specific to most specific:

{resource-provider-namespace}/{parent-resource-type}/{parent-resource-name}[/{child-resource-type}/{child-resource-name}]*

例: For example:

Microsoft.Compute/virtualMachines/myVM/extensions/myExt は正しい Microsoft.Compute/virtualMachines/extensions/myVM/myExt は正しくないis correct Microsoft.Compute/virtualMachines/extensions/myVM/myExt is not correct

出力Outputs

[出力] セクションではデプロイから返される値を指定します。In the Outputs section, you specify values that are returned from deployment. 通常は、デプロイされたリソースからの値を返します。Typically, you return values from resources that were deployed.

利用可能なプロパティAvailable properties

次の例では、出力の定義の構造を示します。The following example shows the structure of an output definition:

"outputs": {
  "<outputName>" : {
    "condition": "<boolean-value-whether-to-output-value>",
    "type" : "<type-of-output-value>",
    "value": "<output-value-expression>"
  }
}
要素名Element name 必須Required 説明Description
outputNameoutputName はいYes 出力値の名前。Name of the output value. 有効な JavaScript 識別子で指定する必要があります。Must be a valid JavaScript identifier.
conditioncondition いいえ No この出力値が返されたかどうかを示すブール値。Boolean value that indicates whether this output value is returned. true の場合、値はデプロイの出力に含まれています。When true, the value is included in the output for the deployment. false の場合、このデプロイでは、出力値はスキップされます。When false, the output value is skipped for this deployment. 指定しない場合、既定値は true です。When not specified, the default value is true.
typetype はいYes 出力値の型。Type of the output value. 出力値では、テンプレート入力パラメーターと同じ型がサポートされています。Output values support the same types as template input parameters.
valuevalue はいYes 評価され、出力値として返されるテンプレート言語式。Template language expression that is evaluated and returned as output value.

出力値の定義および使用Define and use output values

次の例は、パブリック IP アドレスのリソース ID を返す方法を示しています。The following example shows how to return the resource ID for a public IP address:

"outputs": {
  "resourceID": {
    "type": "string",
    "value": "[resourceId('Microsoft.Network/publicIPAddresses', parameters('publicIPAddresses_name'))]"
  }
}

次の例は、新しくデプロイされたかどうかに基づいて、パブリック IP アドレスのリソース ID を条件付きで返す方法を示しています。The next example shows how to conditionally return the resource ID for a public IP address based on whether a new one was deployed:

"outputs": {
  "resourceID": {
    "condition": "[equals(parameters('publicIpNewOrExisting'), 'new')]",
    "type": "string",
    "value": "[resourceId('Microsoft.Network/publicIPAddresses', parameters('publicIPAddresses_name'))]"
  }
}

条件付き出力の簡単な例については、条件付き出力テンプレートに関する説明をご覧ください。For a simple example of conditional output, see conditional output template.

デプロイ後、スクリプトを使用して値を取得できます。After the deployment, you can retrieve the value with script. PowerShell では、次を使用します。For PowerShell, use:

(Get-AzResourceGroupDeployment -ResourceGroupName <resource-group-name> -Name <deployment-name>).Outputs.resourceID.value

Azure CLI では、次を使用します。For Azure CLI, use:

az group deployment show -g <resource-group-name> -n <deployment-name> --query properties.outputs.resourceID.value

reference 関数を使用して、リンクされているテンプレートから出力値を取得できます。You can retrieve the output value from a linked template by using the reference function. リンクされたテンプレートから出力値を取得するには、"[reference('deploymentName').outputs.propertyName.value]" のような構文でプロパティ値を取得します。To get an output value from a linked template, retrieve the property value with syntax like: "[reference('deploymentName').outputs.propertyName.value]".

リンクされたテンプレートから出力プロパティを取得する場合、プロパティ名にダッシュを含めることはできません。When getting an output property from a linked template, the property name can't include a dash.

次の例では、リンクされているテンプレートから値を取得することによってロード バランサーの IP アドレスを設定する方法を示します。The following example shows how to set the IP address on a load balancer by retrieving a value from a linked template.

"publicIPAddress": {
  "id": "[reference('linkedTemplate').outputs.resourceID.value]"
}

入れ子になったテンプレート の出力セクションでは reference 関数を使用できません。You can't use the reference function in the outputs section of a nested template. 入れ子になったテンプレート内のデプロイされたリソースの値を返すには、入れ子になったテンプレートをリンク済みテンプレートに変換します。To return the values for a deployed resource in a nested template, convert your nested template to a linked template.

出力の例のテンプレートOutput example templates

TemplateTemplate 説明Description
Copy variablesCopy variables 複合変数を作成し、それらの値を出力します。Creates complex variables and outputs those values. リソースはデプロイしません。Doesn't deploy any resources.
パブリック IP アドレスPublic IP address パブリック IP アドレスを作成し、リソース ID を出力します。Creates a public IP address and outputs the resource ID.
Load BalancerLoad balancer 前述のテンプレートにリンクします。Links to the preceding template. ロード バランサーの作成時に出力内のリソース ID を使用します。Uses the resource ID in the output when creating the load balancer.

コメントとメタデータComments and metadata

テンプレートにコメントとメタデータを追加するためのオプションがいくつかあります。You have a few options for adding comments and metadata to your template.

metadata オブジェクトは、テンプレート内のほとんどどこにでも追加できます。You can add a metadata object almost anywhere in your template. このオブジェクトは、Resource Manager では無視されますが、お使いの JSON エディターによっては、プロパティが無効であると警告される場合があります。Resource Manager ignores the object, but your JSON editor may warn you that the property isn't valid. オブジェクトで、必要なプロパティを定義します。In the object, define the properties you need.

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "comments": "This template was developed for demonstration purposes.",
    "author": "Example Name"
  },

パラメーターの場合、description プロパティを使って metadata オブジェクトを追加します。For parameters, add a metadata object with a description property.

"parameters": {
  "adminUsername": {
    "type": "string",
    "metadata": {
      "description": "User name for the Virtual Machine."
    }
  },

ポータルからテンプレートをデプロイする場合、説明で指定したテキストがそのパラメーターのヒントとして自動的に使用されます。When deploying the template through the portal, the text you provide in the description is automatically used as a tip for that parameter.

パラメーター ヒントの表示

リソースの場合、comments 要素またはメタデータ オブジェクトを追加します。For resources, add a comments element or a metadata object. 次の例は、コメント要素とメタデータ オブジェクトの両方を示しています。The following example shows both a comments element and a metadata object.

"resources": [
  {
    "comments": "Storage account used to store VM disks",
    "apiVersion": "2018-07-01",
    "type": "Microsoft.Storage/storageAccounts",
    "name": "[concat('storage', uniqueString(resourceGroup().id))]",
    "location": "[parameters('location')]",
    "metadata": {
      "comments": "These tags are needed for policy compliance."
    },
    "tags": {
      "Dept": "[parameters('deptName')]",
      "Environment": "[parameters('environment')]"
    },
    "sku": {
      "name": "Standard_LRS"
    },
    "kind": "Storage",
    "properties": {}
  }
]

出力の場合、メタデータ オブジェクトを出力値に追加します。For outputs, add a metadata object to the output value.

"outputs": {
  "hostname": {
    "type": "string",
    "value": "[reference(variables('publicIPAddressName')).dnsSettings.fqdn]",
    "metadata": {
      "comments": "Return the fully qualified domain name"
    }
  },

メタデータ オブジェクトをユーザー定義関数に追加することはできません。You can't add a metadata object to user-defined functions.

インライン コメントの場合、// を使用できますが、この構文はすべてのツールで機能しません。For inline comments, you can use // but this syntax doesn't work with all tools. Azure CLI を使用してインライン コメントを使用したテンプレートをデプロイすることはできません。You can't use Azure CLI to deploy the template with inline comments. また、インライン コメントを使用したテンプレートでの作業に、ポータルのテンプレート エディターは使用できません。And, you can't use the portal template editor to work on templates with inline comments. このスタイルのコメントを追加する場合は、ご使用のツールでインライン JSON コメントがサポートされていることを確認してください。If you add this style of comment, be sure the tools you use support inline JSON comments.

{
  "type": "Microsoft.Compute/virtualMachines",
  "name": "[variables('vmName')]", // to customize name, change it in variables
  "location": "[parameters('location')]", //defaults to resource group location
  "apiVersion": "2018-10-01",
  "dependsOn": [ // storage account and network interface must be deployed first
    "[resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]",
    "[resourceId('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
  ],

VS Code では、コメントを使用した JSON に言語モードを設定できます。In VS Code, you can set the language mode to JSON with comments. インライン コメントは無効としてマークされなくなります。The inline comments are no longer marked as invalid. モードを変更するには:To change the mode:

  1. 言語モードの選択を開きます (Ctrl + K M)Open language mode selection (Ctrl+K M)

  2. [JSON with Comments](コメントを使用した JSON) を選択します。Select JSON with Comments.

    言語モードの選択

クイック スタートとチュートリアルQuickstarts and tutorials

次のクイック スタートとチュートリアルを使用して、Resource Manager テンプレートの開発方法を学ぶことができます。Use the following quickstarts and tutorials to learn how to develop resource manager templates:

  • クイック スタートQuickstarts

    タイトルTitle 説明Description
    Azure Portal の使用Use the Azure portal ポータルを使用してテンプレートを生成します。また、テンプレートを編集してデプロイするプロセスについて説明しています。Generate a template using the portal, and understand the process of editing and deploying the template.
    Visual Studio Code を使用するUse Visual Studio Code Visual Studio Code を使用してテンプレートを作成および編集します。また、Azure Cloud Shell を使用してテンプレートをデプロイする方法を説明しています。Use Visual Studio Code to create and edit templates, and how to use the Azure Cloud shell to deploy templates.
    Visual Studio を使用するUse Visual Studio Visual Studio を使用してテンプレートを作成、編集、デプロイします。Use Visual Studio to create, edit, and deploy templates.
  • チュートリアルTutorials

    タイトルTitle 説明Description
    テンプレート リファレンスの利用Utilize template reference テンプレートを開発するためにテンプレート リファレンス ドキュメントを利用します。Utilize the template reference documentation to develop templates. このチュートリアルでは、ストレージ アカウントのスキーマを確認し、その情報を使用して、暗号化されたストレージ アカウントを作成します。In the tutorial, you find the storage account schema, and use the information to create an encrypted storage account.
    複数のインスタンスの作成Create multiple instances Azure リソースの複数のインスタンスを作成します。Create multiple instances of Azure resources. このチュートリアルでは、ストレージ アカウントの複数のインスタンスを作成します。In the tutorial, you create multiple instances of storage account.
    リソースの移動Move resources リソースを 1 つのリソース グループから別のリソース グループに移動します。Move resources from one resource group to another resource group. このチュートリアルでは、既存のテンプレートを実行して 2 つのリソース グループと 1 つのストレージ アカウントを作成した後、Azure PowerShell コマンドレットを実行してそのストレージ アカウントを他のリソース グループに移動します。In the tutorial, you run an existing template to create two resource groups and one storage account, and then run an Azure PowerShell cmdlet to move the storage account to the other resource group.
    リソースのデプロイ順序の設定Set resource deployment order リソースの依存関係を定義します。Define resource dependencies. このチュートリアルでは、仮想ネットワーク、仮想マシン、および依存する Azure リソースを作成します。In the tutorial, you create a virtual network, a virtual machine, and the dependent Azure resources. 依存関係を定義する方法を説明しています。You learn how the dependencies are defined.
    使用条件Use conditions いくつかのパラメーター値に基づいてリソースをデプロイします。Deploy resources based on some parameter values. このチュートリアルでは、新しいストレージ アカウントを作成するか、パラメーターの値に基づいて既存のストレージ アカウントを使用するためのテンプレートを定義します。In the tutorial, you define a template to create a new storage account or use an existing storage account based on the value of a parameter.
    キー コンテナーの統合Integrate key vault Azure Key Vault からシークレット/パスワードを取得します。Retrieve secrets/passwords from Azure Key Vault. このチュートリアルでは、仮想マシンを作成します。In the tutorial, you create a virtual machine. 仮想マシンの管理者のパスワードは、キー コンテナーから取得されます。The virtual machine administrator password is retrieved from a Key Vault.
    リンク済みテンプレートを作成するCreate linked templates テンプレートをモジュール化し、テンプレートから他のテンプレートを呼び出します。Modularize templates, and call other templates from a template. このチュートリアルでは、仮想ネットワーク、仮想マシン、および依存するリソースを作成します。In the tutorial, you create a virtual network, a virtual machine, and the dependent resources. 依存するストレージ アカウントは、リンクされたテンプレートで定義されます。The dependent storage account is defined in a linked template.
    仮想マシン拡張機能のデプロイDeploy virtual machine extensions 拡張機能を使用して、デプロイ後タスクを実行します。Perform post-deployment tasks by using extensions. このチュートリアルでは、仮想マシンに Web サーバーをインストールするために、カスタム スクリプト拡張機能をデプロイします。In the tutorial, you deploy a customer script extension to install web server on the virtual machine.
    SQL 拡張機能のデプロイDeploy SQL extensions 拡張機能を使用して、デプロイ後タスクを実行します。Perform post-deployment tasks by using extensions. このチュートリアルでは、仮想マシンに Web サーバーをインストールするために、カスタム スクリプト拡張機能をデプロイします。In the tutorial, you deploy a customer script extension to install web server on the virtual machine.
    成果物のセキュリティ保護Secure artifacts デプロイを完了するために必要な成果物をセキュリティで保護します。Secure the artifacts needed to complete the deployments. このチュートリアルでは、SQL 拡張機能のデプロイに関するチュートリアルで使用した成果物をセキュリティで保護する方法について説明します。In the tutorial, you learn how to secure the artifact used in the Deploy SQL extensions tutorial.
    安全なデプロイ プラクティスの使用Use safe deployment practices Azure Deployment Manager を使用します。Use Azure Deployment manager.
    チュートリアル:Resource Manager テンプレート デプロイのトラブルシューティングTutorial: Troubleshoot Resource Manager template deployments テンプレートのデプロイに関する問題をトラブルシューティングします。Troubleshoot template deployment issues.

これらのチュートリアルは、Resource Manager テンプレート開発の主要な概念について、個別にまたはシリーズとして使用できます。These tutorials can be used individually, or as a series to learn the major Resource Manager template development concepts.

次の手順Next steps