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

Azure Resource Manager テンプレートを作成して、複数のリソースをデプロイしたりデプロイ順序を構成したりする方法を説明します。Learn how to create an Azure Resource Manager 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. 詳細については、「Define the order for deploying resources in Azure Resource Manager Templates」 (Azure Resource Manager テンプレートでリソースをデプロイする順序を定義する) を参照してください。For more information, see Define the order for deploying resources in Azure Resource Manager 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 クイック スタート テンプレートは、Resource Manager テンプレートのリポジトリです。Azure QuickStart Templates is a repository for Resource Manager 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 テンプレート

    テンプレートによって定義されたリソースは、5 つあります。There are five 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. 4 番目のリソースを展開します。Expand the fourth resource. リソースの種類は Microsoft.Network/networkInterfaces です。The resource type is Microsoft.Network/networkInterfaces:

    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. このリソースは他の 2 つのリソースに依存しています。The resource depends on two other resources:

    • Microsoft.Network/publicIPAddresses
    • Microsoft.Network/virtualNetworks
  5. 5 番目の要素を展開します。Expand the fifth 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

注意

この記事は、新しい Azure PowerShell Az モジュールを使用するために更新されました。This article has been updated to use the new Azure PowerShell Az module. AzureRM モジュールはまだ使用でき、少なくとも 2020 年 12 月までは引き続きバグ修正が行われます。You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. 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. Az モジュールのインストール手順については、Azure PowerShell のインストールを参照してください。For Az module installation instructions, see Install Azure PowerShell.

テンプレートをデプロイする方法は多数あります。There are many methods for deploying templates. このチュートリアルでは、Azure Portal から Cloud Shell を使用します。In this tutorial, you use Cloud Shell from the Azure portal.

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

  2. Cloud Shell の左上隅から [PowerShell] を選択し、[確認] を選択します。Select PowerShell from the upper left corner of the Cloud shell, and then select Confirm. このチュートリアルでは、PowerShell を使用します。You use PowerShell in this tutorial.

  3. Cloud Shell から [ファイルのアップロード] を選択します。Select Upload file from the Cloud shell:

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

  4. チュートリアルで前に保存したテンプレートを選択します。Select the template you saved earlier in the tutorial. 既定の名前は azuredeploy.json です。The default name is azuredeploy.json. 同じ名前のファイルが既にある場合は、古いファイルが通知なしに上書きされます。If you have a file with the same file name, the old file is overwritten without any notification.

    オプションで ls $HOME コマンドと cat $HOME/azuredeploy.json コマンドを使用して、ファイルが正常にアップロードされたことを確認できます。You can optionally use the ls $HOME command and the cat $HOME/azuredeploy.json command to verify the files areis uploaded successfully.

  5. Cloud Shell から、次の PowerShell コマンドを実行します。From the Cloud shell, run the following PowerShell commands. セキュリティを向上させるには、生成されたパスワードを仮想マシンの管理者アカウントに対して使用します。To increase security, use a generated password for the virtual machine administrator account. 前提条件」を参照してください。See Prerequisites.

    $resourceGroupName = Read-Host -Prompt "Enter the Resource Group name"
    $location = Read-Host -Prompt "Enter the location (i.e. centralus)"
    $adminUsername = Read-Host -Prompt "Enter the virtual machine admin username"
    $adminPassword = Read-Host -Prompt "Enter the admin password" -AsSecureString
    $dnsLabelPrefix = Read-Host -Prompt "Enter the DNS label prefix"
    
    New-AzResourceGroup -Name $resourceGroupName -Location "$location"
    New-AzResourceGroupDeployment `
        -ResourceGroupName $resourceGroupName `
        -adminUsername $adminUsername `
        -adminPassword $adminPassword `
        -dnsLabelPrefix $dnsLabelPrefix `
        -TemplateFile "$HOME/azuredeploy.json"
    
  6. 次の PowerShell コマンドを実行して、新しく作成された仮想マシンの一覧を表示します。Run the following PowerShell command to list the newly created virtual machine:

    $resourceGroupName = Read-Host -Prompt "Enter the Resource Group name"
    Get-AzVM -Name SimpleWinVM -ResourceGroupName $resourceGroupName
    

    仮想マシンの名前は、テンプレート内に SimpleWinVM としてハードコーディングされています。The virtual machine name is hard-coded as SimpleWinVM inside the template.

  7. 仮想マシンの確認を目的とする仮想マシンへの 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 shall 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. 条件に基づいて Azure リソースをデプロイする方法については、以下を参照してください。To learn how to deploy Azure resources based on conditions, see: