チュートリアル:Resource Manager テンプレートを使用した複数のリソース インスタンスの作成Tutorial: Create multiple resource instances with Resource Manager templates

Azure Resource Manager テンプレートで反復処理して、Azure リソースの複数のインスタンスを作成する方法について説明します。Learn how to iterate in your Azure Resource Manager template to create multiple instances of an Azure resource. このチュートリアルでは、3 つのストレージ アカウント インスタンスが作成されるようテンプレートを変更します。In this tutorial, you modify a template to create three storage account instances.

Azure Resource Manager による複数のインスタンスの作成の図

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

  • クイック スタート テンプレートを開くOpen a QuickStart template
  • テンプレートの編集Edit 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. このクイック スタートで使用されるテンプレートは、Create a standard storage account と呼ばれます。The template used in this quickstart is called Create a standard storage account. テンプレートにより、Azure ストレージ アカウント リソースが定義されます。The template defines an Azure Storage account resource.

  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-storage-account-create/azuredeploy.json
    
  3. [開く] を選択して、ファイルを開きます。Select Open to open the file.

  4. テンプレートで "Microsoft.Storage/storageAccounts" リソースが定義されています。There is a 'Microsoft.Storage/storageAccounts' resource defined in the template. テンプレートをテンプレート リファレンスと比較します。Compare the template to the template reference. カスタマイズする前にテンプレートの基本をある程度理解することは役に立ちます。It is helpful to get some basic understanding of the template before customizing it.

  5. [ファイル]>[名前を付けて保存] を選択し、ファイルを azuredeploy.json としてご自身のローカル コンピューターに保存します。Select File>Save As to save the file as azuredeploy.json to your local computer.

テンプレートの編集Edit the template

既存のテンプレートでは、1 つのストレージ アカウントが作成されます。The existing template creates one storage account. 3 つのストレージ アカウントが作成されるよう、テンプレートをカスタマイズします。You customize the template to create three storage accounts.

Visual Studio Code で、次の 4 つの変更を行います。From Visual Studio Code, make the following four changes:

Azure Resource Manager で複数のインスタンスを作成する

  1. ストレージ アカウントのリソース定義に copy 要素を追加します。Add a copy element to the storage account resource definition. copy 要素には、そのループの反復回数と変数を指定します。In the copy element, you specify the number of iterations and a variable for this loop. 数値は正の整数で、800 を超えることはできません。The count value must be a positive integer and can't exceed 800.
  2. copyIndex() 関数は、ループ内の現在の繰り返しを返します。The copyIndex() function returns the current iteration in the loop. インデックスを名前のプレフィックスとして使用します。You use the index as the name prefix. copyIndex() は 0 から始まります。copyIndex() is zero-based. インデックス値をオフセットするには、copyIndex() 関数に値を渡します。To offset the index value, you can pass a value in the copyIndex() function. たとえば、 copyindex (1) のように指定します。For example, copyIndex(1).
  3. variables 要素を削除します。これ以上使われないためです。Delete the variables element, because it is not used anymore.
  4. outputs 要素を削除します。Delete the outputs element. これは不要になりました。It is no longer needed.

完成したテンプレートは、次のようになります。The completed template looks like:

{
  "$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."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "name": "[concat(copyIndex(),'storage', uniqueString(resourceGroup().id))]",
      "apiVersion": "2018-02-01",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageAccountType')]"
      },
      "kind": "Storage",
      "properties": {},
      "copy": {
        "name": "storagecopy",
        "count": 3
      }
    }
  ]
}

複数のインスタンスの作成の詳細については、「Azure Resource Manager テンプレートでリソースまたはプロパティの複数のインスタンスをデプロイする」を参照してください。For more information about creating multiple instances, see Deploy multiple instances of a resource or property in Azure Resource Manager Templates

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

デプロイ手順については、Visual Studio Code のクイック スタートの「テンプレートのデプロイ」セクションを参照してください。Refer to the Deploy the template section in the Visual Studio Code quickstart for the deployment procedure.

注意

この記事は、新しい 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.

3 つのストレージ アカウントをすべて一覧表示するには、--name パラメータを省略します。To list all three storage accounts, omit the --name parameter:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az storage account list --resource-group $resourceGroupName

テンプレートの名前定義とストレージ アカウント名を比較します。Compare the storage account names with the name definition in the template.

リソースのクリーンアップ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 learned how to create multiple storage account instances. 次のチュートリアルでは、複数のリソースと複数のリソース タイプを含むテンプレートを作成します。In the next tutorial, you develop a template with multiple resources and multiple resource types. 一部のリソースには依存リソースがあります。Some of the resources have dependent resources.