こんにちは、Aireです。
Azureを利用する場合、ARMテンプレートを使用するとあらかじめ定義しておいた情報を基にAzureリソースの迅速なデプロイが可能です。
本記事ではARMテンプレートの使い方として、ARMテンプレートを作成してからAzureにデプロイするまでの手順を紹介します。
- ARMテンプレートの構成要素を理解できる
- ARMテンプレートのデプロイ方法を理解できる
- 簡単なARMテンプレート(”Hello World!”メッセージのみ出力)を作成できる
- ARMテンプレートをAzureにデプロイできる
- ARMテンプレートをAzureにデプロイした結果を確認できる
ARMテンプレートとは
Azure Resource Manager(ARM)テンプレートは、Azureリソースのデプロイ手順を記述したJSON形式のテンプレートファイルです。作成したARMテンプレートは繰り返し使用できるため、同じ設定の仮想マシンを繰り返しデプロイしたり、複数のリソースを一括デプロイすることが可能です。
ARMテンプレートファイルの構成要素
ここではARMテンプレートの構成要素を記載します。必須の構成要素と任意の構成要素の2種類があります。
- schema(必須)
-
ARMテンプレートで使用するJSONスキーマ(テンプレートの記述ルール)のバージョンを定義します。
- contentVersion(必須)
-
ARMテンプレートのバージョン(e.g., 1.0.0.0)を定義します。このバージョン番号はユーザが自由に指定可能です。
- apiProfile(任意)
-
リソースのAPIバージョンを定義します。
- parameters(任意)
-
リソースのデプロイ時に指定するパラメータを定義します。パラメータは、値の種類を制限するといったことも可能です。(数字のみ可とするなど)
- functions(任意)
-
ARMテンプレート内で使用する関数を定義します。
- variables(任意)
-
ARMテンプレート内で使用する変数を定義します。
- resources(必須)
-
リソースグループまたはサブスクリプションで、デプロイまたは更新する必要がある項目を定義します。parametersセクションのパラメータの値やvariablesセクションの変数を使用可能です。本セクションで値を直接指定することも可能です。
- outputs(任意)
-
デプロイの最後に返される値を定義します。デプロイログに任意のメッセージを追加することが可能です。
ARMテンプレートのデプロイ方法
ARMテンプレートをAzureにデプロイする方法としては以下があります。
- 1. ローカルテンプレート(Local Template)をデプロイする
-
ローカルコンピュータ上で作成したARMテンプレートをAzureにデプロイする方法です。
- 2. メインテンプレート(Main Template)とリンク済みテンプレート(Linked Template)をデプロイする
-
メインとなるARMテンプレート(Main Template)と、そこからリンクを介して参照される独立したテンプレートファイル(Linked Template)をAzureにデプロイする方法です。本デプロイ方法により、複雑なソリューションを複数の関連するARMテンプレートに分割した状態で、メインテンプレートからそれらをデプロイできます。
リンク済みテンプレートはローカルファイルに保存できず、ローカルネットワーク上でしか利用できないファイルに保存することもできません。HTTPまたはHTTPSを含むリンク済みテンプレートのURI値を指定するか、relativePathプロパティを使用して、親テンプレートに対して相対的な場所にリモートのリンク済みテンプレートを配置できます。手段の一つとして、メインテンプレートとリンク済みテンプレートをBlobコンテナに格納する方法があります。
- 3. 継続的デプロイパイプラインでデプロイする
-
Azure Pipelinesを利用してARMテンプレートを継続的にビルドおよびデプロイする方法です。Azure Pipelinesは、Azure DevOpsが提供する機能の一つであり、継続的インテグレーションおよびデリバリー(CI/CD)サービスと呼ばれます。コードのテストやビルドを実行した後、Gitプロバイダ(GitHubなど)と連携し、主要クラウドにデプロイすることが可能です。
ARMテンプレートのデプロイ手順
本章では前述のデプロイ方法の具体的な手順を紹介します。今回はデプロイ時に”Hello World!”メッセージを出力するARMテンプレートを作成しAzureにデプロイしてみます。
事前準備(共通)
はじめに共通手順として、ARMテンプレートの作成やデプロイに使用するエディタツールやCLIツールをインストールします。
- ローカルコンピュータにVisual Studio Codeをインストール(テンプレート作成時に使用)
- Visual Studio CodeにARM Tools拡張機能をインストール(テンプレート作成時に使用)
- ローカルコンピュータにAzure PowerShellまたはAzure CLIをインストール(テンプレートデプロイ時に使用)
ローカルコンピュータにVisual Studio Codeをインストール
Visual Studio CodeにARM Toolsをインストールして使用すると、ARMテンプレートの作成をスムーズに行えます。
Visual Studio Codeを以下からダウンロードし、ローカルコンピュータにインストールします。
Visual Studio CodeにARM Tools拡張機能をインストール
Visual Studio Codeをインストール後、Visual Studio Codeの[拡張機能]メニューからARM Toolsをインストールします。
以下のサイトにアクセスし、ARM Toolsをインストールすることも可能です。
ローカルコンピュータにAzure PowerShellまたはAzure CLIをインストール
ARMテンプレートのデプロイに使用するCLIツールとして、Azure PowerShellまたはAzure CLIをインストールします。以下のMicrosoftの公式サイトを参考にしてください。Azure PortalからARMテンプレートをデプロイする場合は本手順は不要です。
ローカルテンプレートのデプロイ手順
ローカルテンプレートをデプロイする手順は以下の通りです。
- Visual Studio CodeでARMテンプレート(ローカルテンプレート)を作成
- Azureにサインイン
- (任意)既定のサブスクリプションを設定
- (任意)リソースグループを作成
- ARMテンプレートをAzureにデプロイ
Visual Studio CodeでARMテンプレート(ローカルテンプレート)を作成
新規にテンプレートファイル(ここではsample.jsonとしています)を作成後、”arm”と入力しResource Group Templateを選択します。
以下のように空のARMテンプレートが作成されます。
outputsセクションに以下のように入力します。プロパティ名(ここではoutput1としています)は任意の文字列を指定可能です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": {}, "functions": [], "variables": {}, "resources": [], "outputs": { "output1": { "type": "string", "value": "Hello World!" } } } |
Azureにサインイン
CLIツールでARMテンプレートをデプロイする場合は、Visual Studio Code上でターミナルを開くかローカルコンピュータにインストール済みのターミナルを起動し、以下のコマンドを実行します。Azure Portal上でデプロイする場合は、https://portal.azure.com/からAzure Portalにサインインします。
1 2 |
pwsh # PowerShellに切り替える Connect-AzAccount # Azureアカウントに接続する |
(任意)既定のサブスクリプションを設定
サブスクリプションが複数ある場合、必要に応じて使用するサブスクリプションを指定します。(Azure Portalからの操作の説明は省略します)
1 2 3 |
Get-AzSubscription # サブスクリプションIDを確認 $context = Get-AzSubscription -SubscriptionId <サブスクリプションID> # サブスクリプション情報を格納 Set-AzContext $context # 既定のサブスクリプションを設定 |
(任意)リソースグループを作成
ARMテンプレートをデプロイするリソースグループを作成します。既存のリソースグループを使用する場合は本手順は不要です。(Azure Portalからの操作の説明は省略します)
1 2 3 4 |
# リソースグループを作成 New-AzResourceGroup ` -Name "TestRG" ` -Location "japaneast" |
ARMテンプレートをAzureにデプロイ
ARMテンプレートをAzureにデプロイします。以下の実行例では、デプロイ名に日時情報を含めることで、デプロイ名が一意になるようにしています。
1 2 3 4 5 6 7 8 9 10 11 |
# 変数に値を設定 $resourceGroupName = “TestRG” # リソースグループ名 $templateFile = “sample.json" # ARMテンプレートのパス $now = Get-Date -Format "yyyy-MM-dd_hhmmss" # 日時(yyyy年MM月dd日 hh時mm分ss秒) $deploymentName = “sampletemplate-“+”$now" # デプロイ名 # ローカルテンプレートをデプロイ New-AzResourceGroupDeployment ` -ResourceGroupName $resourceGroupName ` -Name $deploymentName ` -TemplateFile $templateFile |
ARMテンプレートのデプロイ後、Azure Portal上でリソースグループの[設定]セクションから[デプロイ]を選択すると、デプロイ情報が確認できます。
デプロイ名をクリックすると、ARMテンプレートのデプロイ結果が確認できます。
出力欄を確認すると、”Hello World!”というメッセージが確認できます。
メインテンプレートとリンク済みテンプレートのデプロイ手順
メインテンプレートとリンク済みテンプレートをデプロイする手順は以下の通りです。
- Visual Studio CodeでARMテンプレート(メインテンプレートとリンク済みテンプレート)を作成
- Azureにサインイン
- (任意)既定のサブスクリプションを設定
- (任意)リソースグループを作成
- (任意)ストレージアカウントとコンテナを作成
- ARMテンプレートをBlobコンテナにアップロード
- ARMテンプレートをAzureにデプロイ
Visual Studio CodeでARMテンプレート(メインテンプレートとリンク済みテンプレート)を作成
はじめにリンク済みテンプレートファイル(ここではlinkedTemplate.jsonとしています)を作成します。新規ファイルを作成後、”arm”と入力しResource Group Templateを選択します。
以下のように空のARMテンプレートが作成されます。
outputsセクションに以下のように入力します。outputsセクションのプロパティ名(ここではmessageとしています)は任意の文字列を指定可能です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": {}, "functions": [], "variables": {}, "resources": [], "outputs": { "message": { "type": "string", "value": "Hello World!" } } } |
次にメインテンプレートファイル(ここではmainTemplate.jsonとしています)を作成します。
新規ファイルを作成後、リンク済みテンプレートと同じように空のARMテンプレートを作成し、resourcesセクションとoutputsセクションに以下のように入力します。outputsセクションのプロパティ名(ここではmessageFromLinkedTemplateとしています)は任意の文字列を指定可能です。なお、ハイライト行はリンク済みテンプレートの呼び出し方法を示しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": {}, "functions": [], "variables": {}, "resources": [ { "type": "Microsoft.Resources/deployments", "apiVersion": "2021-04-01", "name": "linkedTemplate", "properties": { "mode": "Incremental", "templateLink": { "relativePath": "linkedTemplate.json" } } } ], "outputs": { "messageFromLinkedTemplate": { "type": "string", "value": "[reference('LinkedTemplate').outputs.message.value]" } } } |
Azureにサインイン
CLIツールでARMテンプレートをデプロイする場合は、Visual Studio Code上でターミナルを開くかローカルコンピュータにインストール済みのターミナルを起動し、以下のコマンドを実行します。Azure PortalでARMテンプレートをデプロイする場合は、https://portal.azure.com/からAzure Portalにサインインします。
1 2 |
pwsh # PowerShellに切り替える Connect-AzAccount # Azureアカウントに接続する |
(任意)既定のサブスクリプションを設定
サブスクリプションが複数ある場合、必要に応じて使用するサブスクリプションを指定します。(Azure Portalからの操作の説明は省略します)
1 2 3 |
Get-AzSubscription # サブスクリプションIDを確認 $context = Get-AzSubscription -SubscriptionId <サブスクリプションID> # サブスクリプション情報を格納 Set-AzContext $context # 既定のサブスクリプションを設定 |
(任意)リソースグループを作成
ARMテンプレートをデプロイするリソースグループとストレージアカウント用のリソースグループを作成します。既存のリソースグループを使用する場合は本手順は不要です。(Azure Portalからの操作の説明は省略します)
1 2 3 4 5 6 7 8 9 |
# ARMテンプレートをデプロイするリソースグループを作成 New-AzResourceGroup ` -Name "TestRG" ` -Location "japaneast" # ストレージアカウント用のリソースグループを作成 New-AzResourceGroup ` -Name "StorageAccountRG" ` -Location "japaneast" |
(任意)ストレージアカウントとコンテナを作成
ARMテンプレートを格納するためのストレージアカウントとコンテナを作成します。既存のリソースを使用する場合は本手順は不要です。(Azure Portalからの操作の説明は省略します)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# 変数に値を格納 $resourceGroupName = "StorageAccountRG" # ストレージアカウント用のリソースグループ名 $storageAccountName = "storageaccount4templates" # ストレージアカウント名 $sku = "Standard_LRS" # SKU $containerName = "armtemplates" # コンテナ名 # ストレージアカウントを作成 $storageAccount = New-AzStorageAccount ` -ResourceGroupName $resourceGroupName ` -Name $storageAccountName ` -Location "japaneast" ` -SkuName $sku $context = $storageAccount.Context # ストレージアカウントのコンテキストを格納 # コンテナを作成(パブリックアクセスレベルとして"コンテナ"を指定する場合) New-AzStorageContainer -Name $containerName -Context $context -Permission Container # コンテナを作成(パブリックアクセスレベルとして"プライベート"を指定する場合) New-AzStorageContainer -Name $containerName -Context $context -Permission Off |
ARMテンプレートをBlobコンテナにアップロード
メインテンプレートとリンク済みテンプレートをコンテナにアップロードします。(Azure Portalからの操作の説明は省略します)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# 変数に値を格納 Get-AzADUser # Azure ADの名前(Display Name)を一覧表示 $objectId = (Get-AzADUser -DisplayName '<Display Name>').Id # ロールを割り当てるAzure ADユーザのオブジェクトIDを取得 $storageAccountName = "storageaccount4templates" # ストレージアカウント名 $containerName = "armtemplates" # コンテナ名 $context = New-AzStorageContext -StorageAccountName $storageAccountName # ストレージアカウントのコンテキスト $mainTemplateName = "mainTemplate.json" # メインテンプレート名 $linkedTemplateName = "linkedTemplate.json" # リンク済みテンプレート名 # スコープ(コンテナ)を指定し、ストレージBlobデータの共同作成者ロールをユーザに割り当て # (スコープの指定は必須ではないが推奨。ロールが割り当てられるまでに時間がかかる場合あり) New-AzRoleAssignment -ObjectID $objectId ` -RoleDefinitionName "Storage Blob Data Contributor" ` -Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>/blobServices/default/containers/<container-name>" # メインテンプレートをアップロード Set-AzStorageBlobContent -Container $containerName ` -File $mainTemplateName -Blob $mainTemplateName ` -Context $context # リンク済みテンプレートをアップロード Set-AzStorageBlobContent -Container $containerName ` -File $linkedTemplateName -Blob $linkedTemplateName ` -Context $context |
ARMテンプレートをAzureにデプロイ
メインテンプレートをAzureにデプロイします。以下の実行例では、デプロイ名に日時情報を含めることで、デプロイ名が一意になるようにしています。
- コンテナのパブリックアクセスレベルが”コンテナ”の場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# 変数に値を格納 $storageAccountName = "storageaccount4templates" # テンプレートが格納されたストレージアカウント名 $containerName = "armtemplates" # テンプレートが格納されたコンテナ名 $context = New-AzStorageContext -StorageAccountName $storageAccountName # ストレージアカウントのコンテキスト $mainTemplateName = "mainTemplate.json" # メインテンプレート名 $mainTemplateUri = $context.BlobEndPoint + "$containerName/$mainTemplateName" # メインテンプレートのURI $resourceGroupName = “TestRG” # テンプレートをデプロイするリソースグループ名 $now = Get-Date -Format "yyyy-MM-dd_hhmmss" # 日時(yyyy年MM月dd日 hh時mm分ss秒) $deploymentName = "sampletemplate-"+"$now" # デプロイ名 # メインテンプレートをデプロイ New-AzResourceGroupDeployment ` -ResourceGroupName $resourceGroupName ` -Name $deploymentName ` -TemplateUri $mainTemplateUri |
- コンテナのパブリックアクセスレベルが”プライベート”の場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# 変数に値を格納 $resourceGroupName1 = "StorageAccountRG" # ストレージアカウント用のリソースグループ $storageAccountName = "storageaccount4templates" # テンプレートが格納されたストレージアカウント名 $containerName = "armtemplates" # テンプレートが格納されたコンテナ名 # ストレージアカウントのコンテキストを取得 # アクセスキーを使用する場合 $key = (Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName1 -Name $storageAccountName).Value[0] $context = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $key # ログイン資格情報を使用する場合 $context = New-AzStorageContext -StorageAccountName $storageAccountName -UseConnectedAccount # BlobのSASトークン(権限:読み取り、有効期限:2時間)を作成 $sasToken = New-AzStorageContainerSASToken ` -Context $context ` -Container $containerName ` -Permission r ` -ExpiryTime (Get-Date).AddHours(2.0) $newSas = $sasToken.substring(1) # 変数に値を格納 $mainTemplateName = "mainTemplate.json" # メインテンプレート名 $mainTemplateUri = $context.BlobEndPoint + "$containerName/$mainTemplateName" # メインテンプレートのURI $resourceGroupName2 = "TestRG" # テンプレートをデプロイするリソースグループ名 $now = Get-Date -Format "yyyy-MM-dd_hhmmss" # 日時(yyyy年MM月dd日 hh時mm分ss秒) $deploymentName = "sampletemplate-"+"$now" # デプロイ名 # メインテンプレートをデプロイ New-AzResourceGroupDeployment ` -ResourceGroupName $resourceGroupName2 ` -Name $deploymentName ` -TemplateUri $mainTemplateUri ` -QueryString $newSas |
ARMテンプレートのデプロイ後、Azure Portal上でリソースグループの[設定]セクションから[デプロイ]を選択すると、デプロイ情報が確認できます。
デプロイ名をクリックすると、ARMテンプレートのデプロイ結果が確認できます。
出力欄を確認すると、”Hello World!”というメッセージが確認できます。
継続的デプロイパイプラインを用いたデプロイ手順
Azure Pipelinesを使用してテンプレートをデプロイする手順は以下の通りです。
- GitHubリポジトリ(リモートリポジトリ)を作成
- リモートリポジトリをローカルに複製
- DevOpsプロジェクトを作成
- パイプラインを作成し、ARMテンプレートをAzureにデプロイ
GitHubリポジトリ(リモートリポジトリ)を作成
https://github.comにアクセスし、GitHubにサインインします。アカウントがなければ作成してください。
リポジトリの作成画面に移動し、リポジトリを作成します。リポジトリ名は”ArmPipeline-repo”としておきます。リポジトリの公開ですが、パブリックとプライベートのどちらも選択可能です。
作成完了後、リポジトリのURL(https://github.com/<アカウント名>/<リポジトリ名>)を残しておきます。
リモートリポジトリをローカルに複製
以下のコマンドを実行し、リモートリポジトリをローカル環境に複製します。Gitコマンドを使用するため、事前にGitをインストールしてください。
1 2 3 4 5 6 7 8 9 10 11 |
# Gitフォルダを作成し移動 mkdir GitHub cd GitHub # リモートリポジトリを複製し、下位フォルダに移動 git clone "https://github.com/<アカウント名>/<リポジトリ名>" cd <リポジトリ名> # HelloWorldフォルダを作成し移動 mkdir HelloWorld cd HelloWorld |
上記コマンドの実行後、HelloWorldフォルダにARMテンプレートファイル(ここではsample.jsonとしています)を格納します。ファイルの中身は以下とします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": {}, "functions": [], "variables": {}, "resources": [], "outputs": { "output1": { "type": "string", "value": "Hello World!" } } } |
GitコマンドでARMテンプレートファイル(sample.json)をリモートリポジトリにプッシュします。
1 2 3 4 |
# ARMテンプレートをリモートリポジトリにプッシュする git add . git commit -m "Add a sample template." git push origin main |
プッシュ後、GitHubサイト上でsample.jsonを開き、[Raw]をクリックします。その後、表示されたページのURL(https://raw.githubusercontent.com/〜/sample.json)をコピーしておきます。
DevOpsプロジェクトを作成
https://aex.dev.azure.com/からAzure DevOpsにサインインし、新しい組織を作成します。
DevOpsプロジェクトを作成します。
DevOpsプロジェクトをAzureにデプロイするための”サービス接続”を作成します。
[Project settings]を選択します。
[Pipelines]の[Service connections]に移動し、[Create service connection]を選択します。
[Azure Resource Manager]を選択し、[Next]を選択します。
[Service principal (automatic)]を選択し、[Next]を選択します。
以下の項目について選択または入力し、[Save]を選択します。
- [Scope level]:[Subscription]を選択します。
- [Subscription]:使用しているサブスクリプションを選択します。
- [Resource Group]:空白のままにします。
- [Service connection name]:サービス接続名を入力します。
- [Grant access permission to all pipelines]:チェックを入れます。
パイプラインを作成し、ARMテンプレートをAzureにデプロイ
ARMテンプレートをAzureにデプロイするためのパイプラインを作成します。
[Pipelines]を選択し、[Create Pipeline]を選択します。
[Connect]タブで[GitHub]を選択します。
[Authorize AzurePipelines]を選択します。要求された場合はGitHubアカウントのパスワードを入力します。
[Select]タブで作成したリポジトリを選択します。
作成したリポジトリが選択されていることを確認し、[Approve & Install]を選択します。
[Configure]タブで [Starter pipeline]を選択します。
azure-pipelines.ymlファイルが表示されます。既存のスクリプト(下図の赤枠内)を削除後、最終行にカーソルを移動した状態で[Show assistant]を選択します。
タスク欄から[ARM template deployment]を選択します。
Azure Details欄では以下のように選択または入力します。
- [Deployment scope]:[Resource Group]を選択します。
- [Azure Resource Manager connection]:作成したサービス接続名(本記事ではArmPipeline-con)を選択します。
- [Subscription]:サブスクリプションを選択します。
- [Action]:[Create or update resource group]を選択します。
- [Resource group]:新しいリソースグループの名前(本記事ではArmPipelineRG)を入力します。
- [Location]:リソースグループのリージョン(本記事ではJapan East)を選択します。
Template欄では以下のように選択または入力します。
- [Template location]:[URL of the file]を選択します。
- [Template link]:前述の手順でコピーしておいたURL(https://raw.githubusercontent.com/〜/sample.json)を入力します。
- [Template parameters link]:空欄のままにしておきます。
- [Override template parameters]:空欄のままにしておきます。
- [Deployment mode]:[Incremental]を選択します。
Advanced欄では以下のように選択または入力します。
- [Deployment name]:デプロイ名(本記事ではDeployPipelineTemplate)を入力します。
- [Deployment outputs]:空欄のままにしておきます。
[Add]を選択後、azure-pipelines.ymlファイルに設定が追加されたことを確認して[Save and run]を選択すると、以下のように実行結果が表示されます。
パイプラインを実行した後、Azure Portal上でリソースグループの[設定]セクションから[デプロイ]を選択すると、以下のようにデプロイ情報を確認できます。
デプロイ名をクリックすると、ARMテンプレートのデプロイ結果が確認できます。
出力欄を確認すると、”Hello World!”というメッセージが確認できます。
初めてパイプラインを実行すると以下のエラーメッセージが表示されます。
[error]No hosted parallelism has been purchased or granted. To request a free parallelism grant, please fill out the following form https://aka.ms/azpipelines-parallelism-request
既定では、Azure DevOpsで作成した新しい組織は同時実行パイプラインが許可されておらず、マイクロソフトにパイプラインの許可を要求する必要があります。エラーメッセージ内のhttps://aka.ms/azpipelines-parallelism-requestにアクセスし、いくつかの質問に回答すると、リクエストが提出されて数日以内に返信が届きます。(私がリクエストを提出した場合は、2営業日でリクエストが受領されたメッセージが届きました)
詳細は公式サイトのChanges to Azure Pipelines free grantsを参照してください。
ARMテンプレートを更新&再デプロイ
ARMテンプレートを更新し、リモートリポジトリに変更をプッシュすると、パイプラインが自動的にリソースを更新します。ここでは、デプロイ時のメッセージを更新してみます。
ローカルリポジトリにあるARMテンプレートファイル(ここではsample.json)を開き、outputsセクションを更新します。(メッセージの内容を適当に変更しています)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": {}, "functions": [], "variables": {}, "resources": [], "outputs": { "output1": { "type": "string", "value": "Hello Space!" } } } |
GitコマンドでARMテンプレートファイル(sample.json)の変更をリモートリポジトリにプッシュします。
1 2 3 4 5 6 |
# ローカルリポジトリとリモートリポジトリを同期し、 # ARMテンプレートの変更をリモートリポジトリにプッシュする git pull origin main git add . git commit -m "Update the deployment message." git push origin main |
再度Azure Portal上でリソースグループの[設定]セクションから[デプロイ]を選択すると、デプロイ時のメッセージが更新されていることを確認できます。
おわりに
本記事では簡単なARMテンプレートを作成してAzureにデプロイするところまでを行いました。次回は実際にAzure VMなどのAzureリソースをARMテンプレートからデプロイしてみたいと思います。
それでは、また。