チュートリアル:初めての ARM テンプレートを作成してデプロイする
このチュートリアルでは、Azure Resource Manager テンプレート (ARM テンプレート) について取り上げます。 スターター テンプレートを作成して Azure にデプロイする方法を紹介します。 テンプレートの構造と、テンプレートを操作するために必要なツールについて説明します。 このチュートリアルの所要時間は 12 分ですが、実際の時間は、インストールする必要のあるツールの数によって変化します。
これは、シリーズの最初のチュートリアルです。 シリーズを進めながら、ARM テンプレートの核となる部分がすべてわかるまで、開始時のテンプレートを段階的に変更していきます。 それらの要素は、はるかに複雑なテンプレートの構成要素となります。 シリーズの最後には、独自のテンプレートを作成したり、テンプレートを使ってデプロイを自動化したりする自信が持てるようになればさいわいです。
テンプレートを使用する利点と、テンプレートを使用してデプロイを自動化すべき理由については、ARM テンプレートの概要に関する記事をご覧ください。 Learn モジュールのガイド付きセットを使用して ARM テンプレートを学習するには、「JSON ARM テンプレートを使用して Azure にリソースをデプロイして管理する」を参照してください。
Microsoft Azure サブスクリプションを現在お持ちでない場合は、開始する前に無料アカウントを作成してください。
ヒント
はじめて ARM テンプレートを扱う方は、代わりに Bicep を学ぶことも検討してください。 Bicep は ARM テンプレートと同様の機能を持つ新しい言語ですが、構文は ARM テンプレートよりも使いやすくなっています。 Bicep の学習を始めるには「クイックスタート: Visual Studio Code を使用して Bicep ファイルを作成する」をご覧ください。
ツールを入手する
まず、テンプレートを作成してデプロイするために必要なツールがあることを確認していきましょう。 これらのツールをローカル コンピューターにインストールする
エディター
テンプレートは JavaScript Object Notation (JSON) ファイルです。 テンプレートを作成するには、適切な JSON エディターが必要です。 Visual Studio Code と Azure Resource Manager Tools 拡張機能をお勧めします。 これらのツールをインストールする必要がある場合は、「クイックスタート: Visual Studio Code を使用して ARM テンプレートを作成する」を参照してください。
コマンド ライン デプロイ
テンプレートをデプロイするには、Azure PowerShell または Azure Command-Line Interface (CLI) も必要です。 Azure CLI を使用する場合は、バージョン 2.37.0 以降が必要です。 インストール手順については、以下を参照してください。
- Azure PowerShell をインストールするには
- Windows での Azure CLI のインストール
- Linux での Azure CLI のインストール
- macOS での Azure CLI のインストール
Azure PowerShell または Azure CLI をインストールした後で、初回サインインを行います。 ヘルプ情報については、PowerShell でのサインインまたは Azure CLI でのサインインに関するセクションを参照してください。
重要
Azure CLI を使用している場合、バージョン 2.37.0 以降であることを確認してください。 Azure PowerShell を使用している場合、バージョン 7.2.4 以降であることを確認してください。 以前のバージョンを使用している場合、このチュートリアルで示されるコマンドが機能しません。 インストールされているバージョンを確認するには、az --version
を使用します。
テンプレートについて学習を始める準備が整いました。
最初のテンプレートを作成する
ARM processor Tools 拡張機能がインストールされた Visual Studio Code を開きます。
[ファイル] メニューから [新しいファイル] を選択して新しいファイルを作成します。
[ファイル] メニューから [名前を付けて保存] を選択します。
ファイルに azuredeploy という名前を付け、json ファイル拡張子を選択します。 完全なファイル名は azuredeploy.json になります。
ご利用のワークステーションにファイルを保存します。 後でテンプレートをデプロイするときにパスを指定するため、覚えやすいパスを選択してください。
次の JSON をコピーして、ファイルに貼り付けます。
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "resources": [] }
Visual Studio Code 環境は次のようになります。
このテンプレートではリソースをデプロイしません。 間違いが生じる可能性をできるだけ抑えつつ、テンプレートをデプロイする手順に慣れることができるよう、最初は空のテンプレートを扱います。
JSON ファイルには、次の要素が含まれています。
-
$schema
: JSON スキーマ ファイルの場所を指定します。 スキーマ ファイルには、テンプレート内で使用できるプロパティが記述されます。 たとえば、このスキーマでは、テンプレートの有効なプロパティとしてresources
を定義します。 スキーマの日付が 2019-04-01 になっていますが気にしないでください。 このスキーマ バージョンは最新であり、最新の機能がすべて含まれています。 スキーマの導入以来、破壊的変更が生じていないため、スキーマの日付は変更されていません。 -
contentVersion
: テンプレートのバージョンを指定します (1.0.0.0 など)。 この要素には任意の値を指定できます。 この値を使用して、テンプレートの重要な変更を文書化します。 テンプレートを使用してリソースをデプロイする場合は、この値を使用して、適切なテンプレートを使用していることを確認できます。 -
resources
: デプロイまたは更新するリソースが格納されます。 現在は空ですが、後からリソースを追加できます。
-
ファイルを保存します。
お疲れさまでした。初めてのテンプレートが完成しました。
Azure へのサインイン
Azure PowerShell または Azure CLI を使用して作業を開始するには、自分の Azure の資格情報を使用してサインインします。
次のコード セクションのタブを選択し、Azure PowerShell または Azure CLI を選択してください。 この記事の CLI の例は、Bash シェルを対象として記述されています。
Connect-AzAccount
複数の Azure サブスクリプションがある場合は、使用するサブスクリプションを選択します。
SubscriptionName
をサブスクリプション名に置き換えます。 サブスクリプション名の代わりに、サブスクリプション ID を使用することもできます。
Set-AzContext SubscriptionName
リソース グループの作成
テンプレートをデプロイするときは、リソースを格納するリソース グループを指定します。 デプロイ コマンドを実行する前に、Bash Azure CLI または Azure PowerShell を使用してリソース グループを作成します。
Note
Azure CLI のサンプルは、bash シェル用に記述されています。 Windows PowerShell またはコマンド プロンプトでこのサンプルを実行するには、バック スラッシュを削除し、次のような 1 行としてコマンドを書き込む必要があります。
New-AzResourceGroup `
-Name myResourceGroup `
-Location "Central US"
テンプレートのデプロイ
テンプレートをデプロイするには、Azure CLI または Azure PowerShell を使用します。 作成済みのリソース グループを使用します。 デプロイ履歴で識別しやすいよう、デプロイには名前を付けてください。 また、便宜上、テンプレート ファイルのパスを格納する変数も作成します。 この変数を使用すれば、デプロイするたびにパスを再入力しなくても済むため、デプロイ コマンドが実行しやすくなります。
{provide-the-path-to-the-template-file}
と中かっこ {}
をテンプレート ファイルのパスに置き換えます。
$templateFile = "{provide-the-path-to-the-template-file}"
New-AzResourceGroupDeployment `
-Name blanktemplate `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile
デプロイ コマンドから結果が返されます。 デプロイが成功したかどうかは、ProvisioningState
を見て確認します。
Note
デプロイに失敗した場合は、verbose
スイッチを使用して、作成しているリソースに関する情報を取得します。 デバッグの詳細については、debug
スイッチを使用してください。
デプロイの確認
Azure portal からリソース グループを探すことでデプロイを確認できます。
Azure portal にサインインします。
左側のメニューから [リソース グループ] を選択します。
myResourceGroup の左側にあるチェック ボックスをオンにし、myResourceGroup を選択します。
前の手順で作成したリソース グループを選択します。 既定の名前は myResourceGroup です。 空のテンプレートをデプロイしたため、リソース グループにはまだリソースがありません。
概要の中央にある [要点] セクションでは、[デプロイ] の横にデプロイ状態が表示されています。 [1 Succeeded](1 成功) を選択します。
リソース グループのデプロイの履歴が表示されます。 [blanktemplate] の左側にあるチェック ボックスをオンにし、[blanktemplate] を選択します。
デプロイの概要が表示されます。 この場合は、リソースがデプロイされていないので、表示される情報は多くありません。 後でこのシリーズの中で、デプロイ履歴の概要を確認する際に役立ちます。 左側では、デプロイ時に使用された入力、出力、テンプレートを確認できます。
リソースをクリーンアップする
次のチュートリアルに移動する場合は、リソース グループを削除する必要はありません。
ここで終了する場合は、リソース グループを削除してかまいません。
Azure portal で、左側のメニューから [リソース グループ] を選択します。
[任意のフィールドのフィルター...] テキスト フィールドにリソース グループ名を入力します。
myResourceGroup の横にあるチェック ボックスをオンにし、[myResourceGroup] またはご自分のリソース グループ名を選びます。
トップ メニューから [リソース グループの削除] を選択します。
次のステップ
Azure にデプロイする簡単なテンプレートを作成しました。 次のチュートリアルでは、ストレージアカウントをテンプレートに追加し、それをリソースグループに展開する方法を学習できます。