演習 - Azure Resource Manager のタグとパラメーター ファイルを使用する
この演習では、Microsoft Azure リソースの整理と追跡に役立つタグを追加します。 また、Azure Resource Manager (ARM) テンプレートのパラメーター ファイルを使用して、デプロイごとに異なるパラメーター構成を許可することもできます。
この演習では、Azure Resource Manager Tools for Visual Studio Code を使用します。 この拡張機能を Visual Studio Code にインストールしてください。
リソース デプロイ環境とプロジェクトを追跡するタグを作成する
最初に、テンプレートでリソース タグとして使用するパラメーターを作成します。
Visual Studio Code の azuredeploy.json ファイルで、
storageSKU
パラメーターの右中かっこの後にカーソルを置きます。 コンマを追加し、Enter キーを押します。「par」と入力します。 関連するスニペットの一覧が表示されます。
arm-param を選択します。 このアクションにより、テンプレートにジェネリック パラメーターが追加されます。 次のコードのようになります。
"parameter1": { "type": "string", "metadata": { "description": "description" }
parameter1
を resourceTags に変更し、"type":
の値を object に変更します。 パラメーターには、string、secureString、int、bool、object、secureObject、array の各データ型を使用できます。 これらのパラメーター型の構文例へのリンクが、このモジュールのまとめにあります。defaultValue: という属性を追加し、値を {"Environment": "Dev", "Project": "Tutorial"} に設定します。
パラメーター ブロックは次のコードのようになります。
"parameters": { "storagePrefix": { "type": "string", "minLength": 3, "maxLength": 11 }, "storageSKU": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS" ] }, "resourceTags": { "type": "object", "defaultValue": { "Environment": "Dev", "Project": "Tutorial" } } },
このパラメーターを使用して、ストレージ アカウント リソースにタグを付けます。 リソースの定義で
tags:
属性を変更します。"tags": "[parameters('resourceTags')]",
ファイルは次のファイルのようになります。
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "storagePrefix": { "type": "string", "minLength": 3, "maxLength": 11 }, "storageSKU": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS" ] }, "resourceTags": { "type": "object", "defaultValue": { "Environment": "Dev", "Project": "Tutorial" } } }, "functions": [], "variables": { "uniqueStorageName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]" }, "resources": [{ "name": "[variables('uniqueStorageName')]", "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2019-06-01", "tags": "[parameters('resourceTags')]", "location": "[resourceGroup().location]", "kind": "StorageV2", "sku": { "name": "[parameters('storageSKU')]" } }], "outputs": {} }
ファイルを保存します。
更新したタグが含まれる ARM テンプレートをデプロイする
更新した ARM テンプレートを Azure にデプロイします。 前に使用したのと同じ
storagePrefix
を使用してください。templateFile="azuredeploy.json" today=$(date +"%d-%b-%Y") DeploymentName="updateTags-"$today az deployment group create \ --name $DeploymentName \ --template-file $templateFile \ --parameters storagePrefix={your-Prefix} storageSKU=Standard_LRS
更新した ARM テンプレートを Azure にデプロイします。 前に使用したのと同じ
storagePrefix
を使用してください。$templateFile = "azuredeploy.json" $today=Get-Date -Format "MM-dd-yyyy" $deploymentName="updateTags-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -storagePrefix {your storagePrefix} ` -storageSKU Standard_LRS
新しいタグがデプロイに含まれていることを確認します
Azure で
[サンドボックス リソース グループ名] リソース グループを選択し、デプロイしたストレージ アカウントを選択します。Environment : Dev と Project :Tutorial タグが表示されます。
パラメーター ファイルを使用する
現時点では、このテンプレートをデプロイするたびに、3 つのパラメーターを設定することができます。 テンプレートの各ユーザーは、自分のパラメーター値を保持するファイルを作成できます。 ここでは、自分のテンプレートで使用するパラメーター ファイルを作成します。
Visual Studio Code で、別のファイルを作成します。 それを azuredeploy.parameters.dev.json と呼びます。
このファイルに、開発環境用のテンプレートに入力するテンプレート パラメーターの値を追加します。 タグ値を変更して、デプロイで変更が行われていることを確認します。 たとえば、
projectName
を Learn に変更します。{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "storagePrefix": { "value": "{unique-prefix}" }, "storageSKU": { "value": "Standard_LRS" }, "resourceTags": { "value": { "Environment": "Dev", "Project": "Learn" } } } }
{unique-prefix}
は必ずご自分の一意のプレフィックスに置き換えてください。ファイルを保存します。
パラメーター ファイルを使用してテンプレートをデプロイする
このセクションでは、使用するパラメーター ファイルを指定して ARM テンプレートをデプロイします。
Visual Studio Code ターミナルで次の Azure CLI コマンドを実行します。
templateFile="azuredeploy.json" devParameterFile="azuredeploy.parameters.dev.json" today=$(date +"%d-%b-%Y") DeploymentName="addParameterFile-"$today az deployment group create \ --name $DeploymentName \ --template-file $templateFile \ --parameters $devParameterFile
Azure を調べて、デプロイが成功したことと、タグの値が変更されたことを確認します。
課題として、運用環境用のパラメーター ファイルを作成します。 コマンドを実行して運用環境にデプロイするときに、パラメーター ファイルのパスを変更します。
Visual Studio Code ターミナルで次の Azure PowerShell コマンドを実行します。
$templateFile = "azuredeploy.json" $parameterFile="azuredeploy.parameters.dev.json" $today=Get-Date -Format "MM-dd-yyyy" $deploymentName="addParameterFile-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -TemplateParameterFile $parameterFile
Azure を調べて、デプロイが成功したことと、タグの値が変更されたことを確認します。
課題として、運用環境用のパラメーター ファイルを作成します。 コマンドを実行して運用環境にデプロイするときに、パラメーター ファイルのパスを変更します。