チュートリアル:依存リソースを含む ARM テンプレートを作成するTutorial: Create ARM templates with dependent resources

Azure Resource Manager (ARM) テンプレートを作成して、複数のリソースをデプロイしたりデプロイ順序を構成したりする方法を説明します。Learn how to create an Azure Resource Manager (ARM) template to deploy multiple resources and configure the deployment order. テンプレートを作成したら、Azure portal から Cloud Shell を使用してテンプレートをデプロイします。After you create the template, you deploy the template using the Cloud Shell from the Azure portal.

このチュートリアルでは、ストレージ アカウント、仮想マシン、仮想ネットワーク、およびその他の依存リソースを作成します。In this tutorial, you create a storage account, a virtual machine, a virtual network, and some other dependent resources. 別のリソースが存在するまではデプロイできないリソースもあります。Some of the resources cannot be deployed until another resource exists. たとえば、仮想マシンを作成するには、そのストレージ アカウントとネットワーク インターフェイスが存在している必要があります。For example, you can't create the virtual machine until its storage account and network interface exist. このリレーションシップは、一方のリソースと他方のリソースに依存関係を持たせることにより定義します。You define this relationship by making one resource as dependent on the other resources. Resource Manager により、リソース間の依存関係が評価され、リソースは依存する順にデプロイされます。Resource Manager evaluates the dependencies between resources, and deploys them in their dependent order. 相互依存していないリソースは、平行してデプロイされます。When resources aren't dependent on each other, Resource Manager deploys them in parallel. 詳細については、「Azure Resource Manager テンプレートでのリソース デプロイ順序の定義」を参照してください。For more information, see Define the order for deploying resources in ARM templates.

Resource Manager テンプレートの依存リソースのデプロイ順序を示す図

このチュートリアルに含まれるタスクは次のとおりです。This tutorial covers the following tasks:

  • クイック スタート テンプレートを開くOpen a Quickstart template
  • テンプレートを調べるExplore the template
  • テンプレートのデプロイDeploy the template

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。If you don't have an Azure subscription, create a free account before you begin.

前提条件Prerequisites

この記事を完了するには、以下が必要です。To complete this article, you need:

クイック スタート テンプレートを開くOpen a Quickstart template

Azure クイックスタート テンプレートは、ARM テンプレートのリポジトリです。Azure Quickstart Templates is a repository for ARM templates. テンプレートを最初から作成しなくても、サンプル テンプレートを探してカスタマイズすることができます。Instead of creating a template from scratch, you can find a sample template and customize it. このチュートリアルで使用するテンプレートは、「Deploy a simple Windows VM」(単純な Windows VM をデプロイする) と呼ばれます。The template used in this tutorial is called Deploy a simple Windows VM.

  1. Visual Studio Code から、 [ファイル] > [ファイルを開く] を選択します。From Visual Studio Code, select File>Open File.

  2. [ファイル名] に以下の URL を貼り付けます。In File name, paste the following URL:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.json
    
  3. [開く] を選択して、ファイルを開きます。Select Open to open the file.

  4. [ファイル] > [Save As](名前を付けて保存) を選択し、このファイルのコピーを azuredeploy.json という名前でローカル コンピューターに保存します。Select File>Save As to save a copy of the file to your local computer with the name azuredeploy.json.

テンプレートを調べるExplore the template

このセクションでテンプレートを調べるときは、次の質問に回答するようにしてください。When you explore the template in this section, try to answer these questions:

  • このテンプレートに定義されている Azure リソースの数はいくつか。How many Azure resources defined in this template?
  • リソースの 1 つは、Azure Storage アカウントです。One of the resources is an Azure storage account. 定義は前回のチュートリアルで使用されたものと同じか。Does the definition look like the one used in the last tutorial?
  • このテンプレートに定義されているリソースのテンプレート 参照を見つけることができるか。Can you find the template references for the resources defined in this template?
  • リソースの依存関係を見つけることができるか。Can you find the dependencies of the resources?
  1. Visual Studio Code で、resources 内の最初のレベルの要素と 2 番目のレベルの要素のみが表示されるまで要素を折り畳みます。From Visual Studio Code, collapse the elements until you only see the first-level elements and the second-level elements inside resources:

    Visual Studio Code Azure Resource Manager テンプレート

    テンプレートによって定義されたリソースは、6 つあります。There are six resources defined by the template:

  2. 最初のリソースを展開します。Expand the first resource. それはストレージ アカウントです。It is a storage account. リソース定義とテンプレート リファレンスを比較します。Compare the resource definition to the template reference.

    Visual Studio Code の Azure Resource Manager テンプレートのストレージ アカウント定義

  3. 2 番目のリソースを展開します。Expand the second resource. リソースの種類は Microsoft.Network/publicIPAddresses です。The resource type is Microsoft.Network/publicIPAddresses. リソース定義とテンプレート リファレンスを比較します。Compare the resource definition to the template reference.

    Visual Studio Code の Azure Resource Manager テンプレートのパブリック IP アドレス定義

  4. 3 番目のリソースを展開します。Expand the third resource. リソースの種類は Microsoft.Network/networkSecurityGroups です。The resource type is Microsoft.Network/networkSecurityGroups. リソース定義とテンプレート リファレンスを比較します。Compare the resource definition to the template reference.

    Visual Studio Code の Azure Resource Manager テンプレートのネットワーク セキュリティ グループ定義

  5. 4 番目のリソースを展開します。Expand the fourth resource. リソースの種類は Microsoft.Network/virtualNetworks です。The resource type is Microsoft.Network/virtualNetworks:

    Visual Studio Code Azure Resource Manager テンプレートの仮想ネットワークの dependsOn

    dependsOn 要素を使用すると、1 つのリソースが 1 つ以上のリソースに依存していることを定義できます。The dependsOn element enables you to define one resource as a dependent on one or more resources. このリソースは、もう 1 つのリソースに依存しています。This resource depends on one other resource:

    • Microsoft.Network/networkSecurityGroups
  6. 5 番目の要素を展開します。Expand the fifth resource. リソースの種類は Microsoft.Network/networkInterfaces です。The resource type is Microsoft.Network/networkInterfaces. このリソースは他の 2 つのリソースに依存しています。The resource depends on two other resources:

    • Microsoft.Network/publicIPAddresses
    • Microsoft.Network/virtualNetworks
  7. 6 番目のリソースを展開します。Expand the sixth resource. このリソースは、仮想マシンです。This resource is a virtual machine. 次に示す他の 2 つのリソースに依存しています。It depends on two other resources:

    • Microsoft.Storage/storageAccounts
    • Microsoft.Network/networkInterfaces

次の図は、このテンプレートのリソースと依存関係の情報を示しています。The following diagram illustrates the resources and the dependency information for this template:

Visual Studio Code Azure Resource Manager テンプレートの依存関係図

依存関係を指定することにより、Resource Manager は、ソリューションを効率的にデプロイします。By specifying the dependencies, Resource Manager efficiently deploys the solution. ストレージ アカウント、パブリック IP アドレス、および仮想ネットワークは、依存関係がないため、同時にデプロイされます。It deploys the storage account, public IP address, and virtual network in parallel because they have no dependencies. パブリック IP アドレスと仮想ネットワークがデプロイされると、ネットワーク インターフェイスが作成されます。After the public IP address and virtual network are deployed, the network interface is created. その他のすべてのリソースがデプロイされると、Resource Manager は、仮想マシンをデプロイします。When all other resources are deployed, Resource Manager deploys the virtual machine.

テンプレートのデプロイDeploy the template

  1. Azure Cloud Shell にサインインします。Sign in to the Azure Cloud Shell

  2. 左上の [PowerShell] または [Bash] (CLI の場合) を選択して、希望の環境を選択します。Choose your preferred environment by selecting either PowerShell or Bash (for CLI) on the upper left corner. 切り替えた場合は、シェルを再起動する必要があります。Restarting the shell is required when you switch.

    Azure portal の Cloud Shell のファイルのアップロード

  3. [ファイルのアップロード/ダウンロード] を選択し、 [アップロード] を選択します。Select Upload/download files, and then select Upload. 先のスクリーンショットをご覧ください。See the previous screenshot. 前に保存したファイルを選択します。Select the file you saved earlier. ファイルをアップロードした後、ls コマンドと cat コマンドを使用して、ファイルが正常にアップロードされたことを確認できます。After uploading the file, you can use the ls command and the cat command to verify the file is uploaded successfully.

  4. 次の PowerShell スクリプトを実行してテンプレートをデプロイします。Run the following PowerShell script to deploy the template.

    echo "Enter a project name that is used to generate resource group name:" &&
    read projectName &&
    echo "Enter the location (i.e. centralus):" &&
    read location &&
    echo "Enter the virtual machine admin username:" &&
    read adminUsername &&
    echo "Enter the DNS label prefix:" &&
    read dnsLabelPrefix &&
    resourceGroupName="${projectName}rg" &&
    az group create --name $resourceGroupName --location $location &&
    az deployment group create --resource-group $resourceGroupName --template-file "$HOME/azuredeploy.json" --parameters adminUsername=$adminUsername dnsLabelPrefix=$dnsLabelPrefix
    
  5. 仮想マシンの確認を目的とする仮想マシンへの RDP が、正常に作成されました。RDP to the virtual machine to verify the virtual machine has been created successfully.

リソースをクリーンアップするClean up resources

Azure リソースが不要になったら、リソース グループを削除して、デプロイしたリソースをクリーンアップします。When the Azure resources are no longer needed, clean up the resources you deployed by deleting the resource group.

  1. Azure portal で、左側のメニューから [リソース グループ] を選択します。From the Azure portal, select Resource group from the left menu.
  2. [名前でフィルター] フィールドに、リソース グループ名を入力します。Enter the resource group name in the Filter by name field.
  3. リソース グループ名を選択します。Select the resource group name. リソース グループ内の合計 6 つのリソースが表示されます。You'll see a total of six resources in the resource group.
  4. トップ メニューから [リソース グループの削除] を選択します。Select Delete resource group from the top menu.

次のステップNext steps

このチュートリアルでは、テンプレートを作成してデプロイし、仮想マシン、仮想ネットワーク、および依存リソースを作成しました。In this tutorial, you developed and deployed a template to create a virtual machine, a virtual network, and the dependent resources. デプロイ スクリプトを使用してデプロイ前後の操作を実行する方法については、次のページを参照してください。To learn how to use deployment scripts to perform pre/post deployment operations, see: