チュートリアル:ARM テンプレート リファレンスを利用する

テンプレート スキーマ情報を見つける方法のほか、その情報を使用して Azure Resource Manager テンプレート (ARM テンプレート) を作成する方法について説明します。

このチュートリアルでは、Azure クイックスタート テンプレートから入手したベース テンプレートを使用します。 テンプレート リファレンス ドキュメントを使用して、テンプレートを検証します。

Resource Manager テンプレート リファレンスを利用したストレージ アカウントのデプロイ

このチュートリアルに含まれるタスクは次のとおりです。

  • クイック スタート テンプレートを開く
  • テンプレートの理解
  • テンプレート リファレンスの検索
  • テンプレートの編集
  • テンプレートのデプロイ

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。

前提条件

この記事を完了するには、以下が必要です。

クイック スタート テンプレートを開く

Azure クイックスタート テンプレートは、ARM テンプレートのリポジトリです。 テンプレートを最初から作成しなくても、サンプル テンプレートを探してカスタマイズすることができます。 このクイック スタートで使用されるテンプレートは、Create a standard storage account と呼ばれます。 テンプレートにより、Azure ストレージ アカウント リソースが定義されます。

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

  2. [ファイル名] に以下の URL を貼り付けます。

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json
    
  3. [開く] を選択して、ファイルを開きます。

  4. [ファイル]>[名前を付けて保存] を選択し、ファイルを azuredeploy.json としてご自身のローカル コンピューターに保存します。

スキーマの概要

  1. Visual Studio Code から、テンプレートをルート レベルに折りたたみます。 次の要素を含む最も単純な構造があります。

    Resource Manager テンプレートの最も単純な構造

    • $schema: テンプレート言語のバージョンが記述されている JSON スキーマ ファイルの場所を指定します。
    • contentVersion: この要素に値を指定して、テンプレートの大きな変更を記述します。
    • metadata: テンプレートのメタデータを指定します。
    • parameters: リソースのデプロイをカスタマイズするためにデプロイを実行するときに提供される値を指定します。
    • variables: テンプレート言語式を簡略化するためにテンプレート内で JSON フラグメントとして使用される値を指定します。 このテンプレートには、この要素は含まれません。
    • resources: リソース グループ内でデプロイまたは更新されるリソースの種類を指定します。
    • outputs: デプロイ後に返される値を指定します。
  2. resources を展開します。 Microsoft.Storage/storageAccounts リソースが定義されています。 スクリーンショットに表示されている API バージョンは 2022-09-01 です。 SKU 名ではパラメーター値を使用します。 パラメーター名は storageAccountType です。

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

  3. parameters を展開して、storageAccountType がどのように定義されているかを確認します。 このパラメーターには、8 つの値が使用できます。 Resource Manager テンプレートのストレージ アカウント リソース SKU

テンプレート リファレンスを使用すると、最新の API バージョンを使用しているかどうか、また、パラメーターの定義に許可されている値がすべて含まれるかどうかを確認できます。

テンプレート リファレンスの検索

  1. Azure テンプレート リファレンスを参照します。

  2. [タイトルでフィルター処理します] ボックスに「ストレージ アカウント」と入力し、[リファレンス] > [ストレージ] の 1 つ目の [ストレージ アカウント] を選択します。

    Resource Manager テンプレート参照ストレージ アカウント

  3. ARM テンプレートを選択します。

  4. 通常、リソースの種類には複数の API バージョンがあります。 このページには、既定では最新のテンプレート スキーマ バージョンが表示されます。 [最新] のドロップダウン ボックスを選択して、バージョンを表示します。 スクリーンショットに表示されている最新バージョンは 2022-09-01 です。 [最新] または [最新] のすぐ下にあるバージョンを選択して、最新バージョンを表示します。 このバージョンがテンプレートのストレージ アカウント リソースに使用されているバージョンと一致していることを確認してください。 API バージョンを更新する場合は、リソース定義がテンプレート リファレンスと一致していることを確認してください。

    Resource Manager テンプレート リファレンスのストレージ アカウントのバージョン

  5. このページには、リソースの種類としての storageAccount の詳細が一覧表示されます。 たとえば、指定できる Sku オブジェクトの値が一覧表示されます。 SKU は 8 つあり、先ほど開いたクイックスタート テンプレートに記載されているものと一致します。

    Resource Manager テンプレート リファレンスのストレージ アカウントの SKU

テンプレートのデプロイ

  1. Azure Cloud Shell にサインインします。

  2. 左上の [PowerShell] または [Bash] (CLI の場合) を選択して、希望の環境を選択します。 切り替えた場合は、シェルを再起動する必要があります。

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

  3. [ファイルのアップロード/ダウンロード] を選択し、 [アップロード] を選択します。 先のスクリーンショットをご覧ください。 前のセクションで保存したファイルを選択します。 ファイルをアップロードした後、ls コマンドと cat コマンドを使用して、ファイルが正常にアップロードされたことを確認できます。

  4. Cloud Shell で次のコマンドを実行します。 PowerShell コードまたは CLI コードを表示するタブを選択します。

    テンプレートをデプロイするときは、storageAccountType パラメーターに、新しく追加する値を指定します (Standard_RAGRS など)。 元のクイックスタート テンプレートを使用した場合、Standard_RAGRS という値は許可されないため、デプロイに失敗します。

    echo "Enter a project name that is used to generate resource group name:" &&
    read projectName &&
    echo "Enter the location (i.e. centralus):" &&
    read location &&
    resourceGroupName="${projectName}rg" &&
    az group create --name $resourceGroupName --location "$location" &&
    az deployment group create --resource-group $resourceGroupName --template-file "$HOME/azuredeploy.json" --parameters storageAccountType='Standard_RAGRS'
    

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

Azure リソースが不要になったら、リソース グループを削除して、デプロイしたリソースをクリーンアップします。

  1. Azure portal で、左側のメニューから [リソース グループ] を選択します。
  2. [名前でフィルター] フィールドに、リソース グループ名を入力します。
  3. リソース グループ名を選択します。 リソース グループ内の合計 6 つのリソースが表示されます。
  4. トップ メニューから [リソース グループの削除] を選択します。

次のステップ

このチュートリアルでは、テンプレート参照を使用して既存のテンプレートをカスタマイズする方法について説明しました。 複数のストレージ アカウント インスタンスを作成する方法については、以下を参照してください。