次の方法で共有


クイックスタート: テンプレート スペックの作成とデプロイ

このクイックスタートでは、Azure Resource Manager テンプレート (ARM テンプレート) をテンプレート スペックにパッケージ化する方法について説明します。次に、そのテンプレート スペックをデプロイします。テンプレート スペックには、ストレージ アカウントをデプロイする ARM テンプレートが含まれています。

Tip

Bicep は ARM テンプレートと同じ機能を提供し、構文の方が使いやすいため、推奨されます。 詳しくは、「クイックスタート: Bicep を使用してテンプレート スペックを作成してデプロイする」を参照してください。

Prerequisites

アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます

Note

Azure PowerShell でテンプレート スペックを使用するには、バージョン 5.0.0 以降をインストールする必要があります。 Azure CLI で使用するには、 バージョン 2.14.2 以降を使用します。

テンプレートを作成する

ARM テンプレートからテンプレート スペックを作成します。 次のテンプレートをコピーし、C:\Templates\createStorageV1.jsとして保存 します

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountName": {
      "type": "string",
      "defaultValue": "[uniqueString(resourceGroup().id)]"
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "[parameters('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {
        "accessTier": "Hot"
      }
    }
  ]
}

テンプレート スペックを作成する

テンプレート スペックは、Microsoft.Resources/templateSpecs という名前のリソースの種類です。 テンプレート スペックを作成するには、PowerShell、Azure CLI、Azure portal、または ARM テンプレートを使用します。

  1. テンプレート スペックを含む新しいリソース グループを作成します。

    New-AzResourceGroup `
      -Name templateSpecRG `
      -Location westus2
    
  2. そのリソース グループ内にテンプレート スペックを作成します。 新しいテンプレート スペックに storageSpec という名前を付けます。

    New-AzTemplateSpec `
      -Name storageSpec `
      -Version "1.0" `
      -ResourceGroupName templateSpecRG `
      -Location westus2 `
      -TemplateFile "C:\Templates\createStorageV1.json"
    

テンプレート スペックのデプロイ

テンプレート スペックをデプロイするには、テンプレートのデプロイに使用するのと同じデプロイ コマンドを使用します。 デプロイするテンプレート スペックのリソース ID を渡します。

  1. 新しいストレージ アカウントを格納するリソース グループを作成します。

    New-AzResourceGroup `
      -Name storageRG `
      -Location westus2
    
  2. テンプレート スペックのリソース ID を取得します。

    $id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "1.0").Versions.Id
    
  3. テンプレート スペックをデプロイします。

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG
    
  4. ARM テンプレートの場合とまったく同じようにパラメーターを指定します。 ストレージ アカウントの種類のパラメーターを指定して、テンプレート スペックを再デプロイします。

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG `
      -storageAccountType Standard_GRS
    

アクセス権を付与する

組織内の他のユーザーがテンプレート スペックをデプロイできるようにするには、そのユーザーに読み取りアクセス権を付与します。 共有するテンプレート スペックを含むリソース グループの Microsoft Entra グループに閲覧者ロールを割り当てます。 詳細については、チュートリアル: Azure PowerShell を使用して Azure リソースへのアクセス権をグループに付与する」を参照してください。

テンプレートの更新

テンプレート スペックでテンプレートを変更するには、テンプレートを修正します。 次のテンプレートは、ストレージ アカウント名のプレフィックスを追加する点を除き、以前のテンプレートと似ています。 次のテンプレートをコピーし 、createStorageV2.jsonファイル として保存します。

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountName": {
      "type": "string",
      "defaultValue": "[format('store{0}', uniqueString(resourceGroup().id))]"
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "[parameters('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {
        "accessTier": "Hot"
      }
    }
  ]
}

テンプレート スペックのバージョンの更新

変更後のテンプレートの新しいテンプレート スペックを作成する代わりに、既存のテンプレート スペックに 2.0 という名前の新しいバージョンを追加します。どちらのバージョンでもデプロイできます。

  1. テンプレート スペックの新しいバージョンを作成します。

    New-AzTemplateSpec `
      -Name storageSpec `
      -Version "2.0" `
      -ResourceGroupName templateSpecRG `
      -Location westus2 `
      -TemplateFile "C:\Templates\createStorageV2.json"
    
  2. 新しいバージョンをデプロイするには、2.0 バージョンのリソース ID を取得します。

    $id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "2.0").Versions.Id
    
  3. そのバージョンをデプロイします。 ストレージ アカウント名のプレフィックスを指定します。

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG `
      -namePrefix "demoaccount"
    

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

このクイックスタートでデプロイしたリソースをクリーンアップするには、作成したリソース グループを両方とも削除します。

  1. Azure portal で、左側のメニューから [リソース グループ] を選択します。
  2. [名前でフィルター] フィールドに、リソース グループ名 (templateSpecRG and storageRG) を入力します。
  3. リソース グループ名を選択します。
  4. トップ メニューから [リソース グループの削除] を選択します。

次のステップ

リンクされたテンプレートを含むテンプレート スペックを作成する方法については、リンクされたテンプレート のテンプレート スペックを作成する方法を参照してください。