このチュートリアルでは、 パラメーター ファイル を使用して、デプロイ時に渡す値を格納する方法について説明します。 前のチュートリアルでは、デプロイ コマンドでインライン パラメーターを使用しました。 この方法は Azure Resource Manager テンプレート (ARM テンプレート) をテストするために機能しましたが、デプロイを自動化する場合は、環境に一連の値を渡す方が簡単です。 パラメーター ファイルを使用すると、特定の環境のパラメーター値をパッケージ化しやすくなります。 このチュートリアルでは、開発環境と運用環境用のパラメーター ファイルを作成します。 この命令の完了には 12 分 かかります。
[前提条件]
タグに関するチュートリアルを完了することをお勧めしますが、必須ではありません。
Visual Studio Code と Azure PowerShell または Azure CLI が必要です。 詳細については、 テンプレート ツールを参照してください。
テンプレートを確認する
テンプレートには、デプロイ時に指定できる多くのパラメーターがあります。 前のチュートリアルの最後に、テンプレートには次の JSON ファイルがありました。
{
"$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"
]
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
},
"appServicePlanName": {
"type": "string",
"defaultValue": "exampleplan"
},
"webAppName": {
"type": "string",
"metadata": {
"description": "Base name of the resource such as web app name and app service plan "
},
"minLength": 2
},
"linuxFxVersion": {
"type": "string",
"defaultValue": "php|7.0",
"metadata": {
"description": "The Runtime stack of current web app"
}
},
"resourceTags": {
"type": "object",
"defaultValue": {
"Environment": "Dev",
"Project": "Tutorial"
}
}
},
"variables": {
"uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]",
"webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2025-06-01",
"name": "[variables('uniqueStorageName')]",
"location": "[parameters('location')]",
"tags": "[parameters('resourceTags')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
},
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2025-03-01",
"name": "[parameters('appServicePlanName')]",
"location": "[parameters('location')]",
"tags": "[parameters('resourceTags')]",
"sku": {
"name": "B1",
"tier": "Basic",
"size": "B1",
"family": "B",
"capacity": 1
},
"kind": "linux",
"properties": {
"perSiteScaling": false,
"reserved": true,
"targetWorkerCount": 0,
"targetWorkerSizeId": 0
}
},
{
"type": "Microsoft.Web/sites",
"apiVersion": "2025-03-01",
"name": "[variables('webAppPortalName')]",
"location": "[parameters('location')]",
"dependsOn": [
"[parameters('appServicePlanName')]"
],
"tags": "[parameters('resourceTags')]",
"kind": "app",
"properties": {
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]",
"siteConfig": {
"linuxFxVersion": "[parameters('linuxFxVersion')]"
}
}
}
],
"outputs": {
"storageEndpoint": {
"type": "object",
"value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
}
}
}
このテンプレートは適切に機能しますが、テンプレートに渡すパラメーターを簡単に管理する必要があります。
パラメーター ファイルを追加する
パラメーター ファイルは、テンプレートに似た構造の JSON ファイルです。 このファイルでは、デプロイ時に渡すパラメーター値を指定します。
パラメーター ファイル内で、テンプレート内のパラメーターの値を指定します。 パラメーター ファイル内の各パラメーターの名前は、テンプレート内のパラメーターの名前と一致する必要があります。 名前の大文字と小文字は区別されませんが、値が一致していることを簡単に確認するには、テンプレートとの間で大文字と小文字を一致させることをお勧めします。
すべてのパラメーターに値を指定する必要はありません。 指定されていないパラメーターに既定値がある場合、その値はデプロイ時に使用されます。 パラメーターに既定値が設定されておらず、パラメーター ファイルで指定されていない場合は、デプロイ時に値を指定するように求められます。
テンプレート内のパラメーター名と一致しないパラメーター名をパラメーター ファイルに指定することはできません。 不明なパラメーターを指定するとエラーが発生します。
Visual Studio Code で、次の内容を含む新しいファイルを作成します。 azuredeploy.parameters.dev.json という名前 でファイルを保存します。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"value": "devstore"
},
"storageSKU": {
"value": "Standard_LRS"
},
"appServicePlanName": {
"value": "devplan"
},
"webAppName": {
"value": "devapp"
},
"resourceTags": {
"value": {
"Environment": "Dev",
"Project": "Tutorial"
}
}
}
}
このファイルは、開発環境のパラメーター ファイルです。 ストレージ アカウント にStandard_LRS を使用し、 リソースに開発 プレフィックスを付け、 Environment タグを Dev に設定していることに注意してください。
ここでも、次の内容の新しいファイルを作成します。 azuredeploy.parameters.prod.json という名前 でファイルを保存します。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"value": "contosodata"
},
"storageSKU": {
"value": "Standard_GRS"
},
"appServicePlanName": {
"value": "contosoplan"
},
"webAppName": {
"value": "contosowebapp"
},
"resourceTags": {
"value": {
"Environment": "Production",
"Project": "Tutorial"
}
}
}
}
このファイルは、運用環境のパラメーター ファイルです。 ストレージ アカウント にStandard_GRS を使用し、 リソースに contoso プレフィックスを付け、 Environment タグを Production に設定していることに注意してください。 実際の運用環境では、無料以外の SKU でアプリ サービスを使用することもできますが、このチュートリアルではその SKU を使用します。
テンプレートのデプロイ
Azure CLI または Azure PowerShell を使用してテンプレートをデプロイします。
テンプレートの最後のテストとして、開発環境用と運用環境用の 2 つの新しいリソース グループを作成しましょう。
テンプレート変数とパラメーター変数の場合は、 {path-to-the-template-file}、 {path-to-azuredeploy.parameters.dev.json}、 {path-to-azuredeploy.parameters.prod.json}、および中かっこ {} 、テンプレートとパラメーター ファイルのパスに置き換えます。
まず、開発環境にデプロイしましょう。
$templateFile = "{path-to-the-template-file}"
$parameterFile="{path-to-azuredeploy.parameters.dev.json}"
New-AzResourceGroup `
-Name myResourceGroupDev `
-Location "East US"
New-AzResourceGroupDeployment `
-Name devenvironment `
-ResourceGroupName myResourceGroupDev `
-TemplateFile $templateFile `
-TemplateParameterFile $parameterFile
次に、運用環境にデプロイします。
$parameterFile="{path-to-azuredeploy.parameters.prod.json}"
New-AzResourceGroup `
-Name myResourceGroupProd `
-Location "West US"
New-AzResourceGroupDeployment `
-Name prodenvironment `
-ResourceGroupName myResourceGroupProd `
-TemplateFile $templateFile `
-TemplateParameterFile $parameterFile
注
デプロイが失敗した場合は、 verbose スイッチを使用して、作成しているリソースに関する情報を取得します。 デバッグの詳細を取得するには、 debug スイッチを使用します。
デプロイを検証する
デプロイを確認するには、Azure portal からリソース グループを確認します。
- Azure portal にサインインします。
- 左側のメニューから、[ リソース グループ] を選択します。
- このチュートリアルでは、デプロイする 2 つの新しいリソース グループが表示されます。
- いずれかのリソース グループを選択し、デプロイされたリソースを表示します。 これらは、その環境のパラメーター ファイルで指定した値と一致していることに注意してください。
リソースをクリーンアップする
Azure portal で、左側のメニューから [リソース グループ ] を選択します。
チェック ボックスの横にあるハイパーリンクされたリソース グループ名を選択します。 このシリーズを完了すると、myResourceGroup、myResourceGroupDev、myResourceGroupProd の 3 つのリソース グループを削除できます。
上部のメニューから [ リソース グループの削除 ] アイコンを選択します。
注意事項
リソース グループを削除すると、元に戻すことができません。
表示されるポップアップ ウィンドウにリソース グループ名を入力し、[削除] を選択 します。
次のステップ
おめでとうございます。 これで、Azure へのテンプレートのデプロイの概要が完了しました。 フィードバック セクションにコメントや提案がある場合は、お知らせください。
次のチュートリアル シリーズでは、テンプレートのデプロイについて詳しく説明します。