クイックスタート: Visual Studio Code を使用して ARM テンプレートを作成する

Visual Studio Code 用の Azure Resource Manager ツールでは、言語サポート、リソース スニペット、およびリソース オートコンプリートが提供されます。 これらのツールは、Azure Resource Manager テンプレート (ARM テンプレート) の作成と検証に役立つため、ARM テンプレートの作成と構成に推奨される方法です。 このクイックスタートでは、拡張機能を使用して ARM テンプレートを一から作成します。 操作では、ARM テンプレート スニペット、検証、入力候補、パラメーター ファイルのサポートなどの拡張機能を使用します。

このクイック スタートでは、Visual Studio Code 拡張機能を使用して ARM テンプレートをビルドすることに重点を置いています。 構文に重点を置いたチュートリアルについては、「チュートリアル: 初めての ARM テンプレートを作成してデプロイする」を参照してください。

このクイックスタートを完了するには、Azure Resource Manager ツールの拡張機能がインストールされている Visual Studio Code が必要です。 また、Azure CLIAzure PowerShell モジュールのどちらかがインストールされて認証されている必要があります。

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

ヒント

ARM テンプレートと同じ機能を備え、構文も使いやすいため、Bicep をお勧めします。 詳しくは、「クイックスタート: Visual Studio Code を使用して Bicep ファイルを作成する」をご覧ください。

Note

Visual Studio Code 用 Azure Resource Manager Tools 拡張機能の現在のリリースでは、languageVersion 2.0 で行われた拡張機能は認識されません。

ARM テンプレートを使用する

"azuredeploy. json" という名前の新しいファイルを Visual Studio Code で作成して開きます。 コード エディターに「arm」と入力します。これにより、ARM テンプレートをスキャフォールディングするための Azure Resource Manager スニペットが開始されます。

arm! を選択して、Azure リソース グループのデプロイの対象となるテンプレートを作成します。

Screenshot showing Azure Resource Manager scaffolding snippets.

このスニペットは、ARM テンプレートの基本的な構成要素を作成します。

Screenshot showing a fully scaffolded ARM template.

Visual Studio Code 言語モードが JSON から Azure Resource Manager テンプレートに変更されたことに注目してください。 この拡張機能には、テンプレート固有の検証、入力候補、その他の言語サービスを提供する ARM テンプレート固有の言語サーバーが含まれています。

Screenshot showing Azure Resource Manager as the Visual Studio Code language mode.

Azure リソースを追加する

この拡張機能には、多くの Azure リソースのスニペットが含まれています。 これらのスニペットを使用して、テンプレートのデプロイにリソースを簡単に追加できます。

テンプレートの resources ブロックにカーソルを置き、「storage」と入力し、"arm-storage" スニペットを選択します。

Screenshot showing a resource being added to the ARM template.

このアクションにより、ストレージ リソースがテンプレートに追加されます。

Screenshot showing an Azure Storage resource in an ARM template.

Tab キーを使用して、ストレージ アカウントの構成可能なプロパティを切り替えることができます。

Screenshot showing how the tab key can be used to navigate through resource configuration.

入力候補と検証

拡張機能の最も強力な機能の 1 つが、Azure スキーマとの統合です。 Azure スキーマは、検証とリソース対応の入力候補機能を備えた拡張機能を提供します。 ストレージ アカウントを変更して、検証と入力候補が動作することを確認してみましょう。

最初に、ストレージ アカウントの種類を、megaStorage などの無効な値に更新します。 このアクションでは、megaStorage が有効な値ではないことを示す警告が生成されます。

Screenshot showing an invalid storage configuration.

入力候補機能を使用するには、megaStorage を削除し、二重引用符内にカーソルを置き、ctrl + space を押します。 このアクションでは、有効な値の入力候補一覧が表示されます。

Screenshot showing extension auto-completion.

テンプレート パラメーターを追加する

ここでは、ストレージ アカウント名を指定するためのパラメーターを作成して使用します。

parameters ブロックにカーソルを置き、キャリッジ リターンを追加して「"」と入力し、new-parameter スニペットを選択します。 このアクションにより、ジェネリック パラメーターがテンプレートに追加されます。

Screenshot showing a parameter being added to the ARM template.

パラメーターの名前を storageAccountName に、説明を Storage Account Name に更新します。

Screenshot showing the completed parameter in an ARM template.

Azure ストレージ アカウント名の長さは 3 文字以上、24 文字以内です。 minLengthmaxLength の両方をパラメーターに追加し、適切な値を指定します。

Screenshot showing minLength and maxLength being added to an ARM template parameter.

次に、ストレージ リソースで、パラメーターを使用するように name プロパティを更新します。 これを行うには、現在の名前を削除します。 二重引用符と左角かっこ [ を入力します。これにより、ARM テンプレート関数の一覧が生成されます。 一覧から "parameters" を選択します。

Screenshot showing auto-completion when using parameters in ARM template resources.

丸かっこ内に一重引用符 ' 入力すると、テンプレートに定義されているすべてのパラメーターの一覧が生成されます。この例では "storageAccountName" です。 パラメーターを選択します。

Screenshot showing completed parameter in an ARM template resource.

パラメーター ファイルを作成する

ARM テンプレート パラメーター ファイルを使用すると、環境固有のパラメーター値を格納し、デプロイ時にその値をグループとして渡すことができます。 たとえば、テスト環境に固有の値を持つパラメーター ファイルの他に、運用環境用のパラメーター ファイルも持つことができます。

この拡張機能を使用すると、既存のテンプレートからパラメーター ファイルを簡単に作成できます。 これを行うには、コード エディターでテンプレートを右クリックし、Select/Create Parameter File を選択します。

Screenshot showing the right-click process for creating a parameter file from an ARM template.

New>All Parameters を選択し、パラメーター ファイルの名前と場所を選択します。

このアクションにより、新しいパラメーター ファイルが作成され、作成元のテンプレートにマップされます。 テンプレートを選択しているときに、Visual Studio Code ステータス バーで現在のテンプレートまたはパラメーターのファイル マッピングを表示および変更できます。

Screenshot showing the template/parameter file mapping in the Visual Studio Code status bar.

パラメーター ファイルがテンプレートにマップされたので、拡張機能がテンプレートとパラメーター ファイルの両方を同時に検証します。 この検証を実際に確認するには、パラメーター ファイルの storageAccountName パラメーターに 2 文字の値を追加し、ファイルを保存します。

Screenshot showing an invalidated template due to parameter file issue.

ARM テンプレートに戻ると、値がパラメーターの条件を満たしていないことを示すエラーに気付きます。

Screenshot showing a valid ARM template.

値を適切なものに更新し、ファイルを保存して、テンプレートに戻ります。 パラメーターのエラーが解決されたことを確認してください。

テンプレートのデプロイ

ctrl + ` キーの組み合わせを使用して Visual Studio Code の統合ターミナルを開き、Azure CLI または Azure PowerShell のどちらかのモジュールを使用してテンプレートをデプロイします。

az group create --name arm-vscode --location eastus

az deployment group create --resource-group arm-vscode --template-file azuredeploy.json --parameters azuredeploy.parameters.json

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

Azure リソースが不要になったら、Azure CLI か Azure PowerShell のどちらかのモジュールを使用してクイックスタート リソース グループを削除します。

az group delete --name arm-vscode

次のステップ