デプロイ ボタンを使用してリモート テンプレートをデプロイする
この記事では、[Deploy to Azure](Azure にデプロイ) ボタンを使って、GitHub リポジトリまたは Azure ストレージ アカウントからリモート ARM JSON テンプレートをデプロイする方法について説明します。 このボタンは、GitHub リポジトリ内の README.md ファイルに直接追加できます。 または、リポジトリを参照する Web ページにボタンを追加することもできます。 この方法では、リモート Bicep ファイルのデプロイはサポートされていません。
デプロイ スコープは、テンプレート スキーマによって決定されます。 詳細については、次を参照してください。
必要なアクセス許可
Bicep ファイルまたは ARM テンプレートをデプロイするには、デプロイしているリソースに対する書き込みアクセス権が必要であり、また、Microsoft.Resources/デプロイ リソース タイプにあらゆる操作を実行するアクセス権かの゛必要です。 たとえば、仮想マシンをデプロイするには、Microsoft.Compute/virtualMachines/write
および Microsoft.Resources/deployments/*
アクセス許可が必要です。 What-If 操作のアクセス許可要件も同じです。
ロールとアクセス許可の一覧については、Azure の組み込みロールに関するページを参照してください。
一般的なイメージを使用する
Web ページまたはリポジトリにボタンを追加するには、次の画像を使用します。
![Deploy to Azure](https://aka.ms/deploytoazurebutton)
<img src="https://aka.ms/deploytoazurebutton"/>
画像は次のように表示されます。
テンプレートをデプロイするための URL を作成する
このセクションでは、GitHub および Azure ストレージ アカウントに格納されているテンプレートの URL を取得する方法と、URL の形式を設定する方法について説明します。
GitHub に格納されているテンプレート
テンプレートの URL を作成するには、GitHub リポジトリ内のテンプレートへの未加工の URLから始めます。 未加工の URL を表示するには [Raw](未フォーマット) を選択します。
URL の形式は、次のようになります。
https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json
Note
テンプレートをデプロイするか、プライベート GitHub リポジトリに格納されているリンクされたテンプレートを参照するには、「カスタムのセキュリティ保護された Azure Portal オファリングの作成」に記載されているカスタム ソリューションを参照してください。 Azure Key Vault から GitHub トークンを取得する Azure 関数を作成できます。
GitHub リポジトリの代わりに Azure Repos と共に Git を使用する場合でも、 [Deploy to Azure](Azure にデプロイ) ボタンを使用できます。 リポジトリがパブリックであることを確認します。 テンプレートを取得するには Items 操作を使用します。 要求は次の形式にする必要があります。
https://dev.azure.com/{organization-name}/{project-name}/_apis/git/repositories/{repository-name}/items?scopePath={url-encoded-path}&api-version=6.0
Azure ストレージ アカウントに格納されているテンプレート
パブリック コンテナーに格納されているテンプレートの URL の形式は次のとおりです。
https://{storage-account-name}.blob.core.windows.net/{container-name}/{template-file-name}
次に例を示します。
https://demostorage0215.blob.core.windows.net/democontainer/azuredeploy.json
SAS トークンを使ってテンプレートをセキュリティ保護できます。 詳しくは、「SAS トークンを使用してプライベート ARM テンプレートをデプロイする方法」をご覧ください。 次の URL は、SAS トークンの例です。
https://demostorage0215.blob.core.windows.net/privatecontainer/azuredeploy.json?sv=2019-07-07&sr=b&sig=rnI8%2FvKoCHmvmP7XvfspfyzdHjtN4GPsSqB8qMI9FAo%3D&se=2022-02-16T17%3A47%3A46Z&sp=r
URL の形式を設定する
URL を取得したら、URL でエンコードされた値に URL を変換する必要があります。 オンライン エンコーダーを使用するか、コマンドを実行できます。 次の PowerShell の例は、値を URL エンコードする方法を示しています。
$url = "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json"
[uri]::EscapeDataString($url)
サンプル URL は、URL エンコードされると次のようになります。
https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2Fquickstarts%2Fmicrosoft.storage%2Fstorage-account-create%2Fazuredeploy.json
各リンクは、同じベース URL で始まります。
https://portal.azure.com/#create/Microsoft.Template/uri/
URL エンコードされたテンプレート リンクをベース URL の末尾に追加します。
https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2Fquickstarts%2Fmicrosoft.storage%2Fstorage-account-create%2Fazuredeploy.json
リンクの完全な URL が表示されます。
[Deploy to Azure] (Azure にデプロイ) ボタンを作成する
最後に、リンクと画像を一緒に配置します。
GitHub リポジトリまたは Web ページの README.md ファイルに Markdown を使用してボタンを追加するには、次のように使用します。
[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2Fquickstarts%2Fmicrosoft.storage%2Fstorage-account-create%2Fazuredeploy.json)
HTML の場合は、次を使用します。
<a href="https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fazure-quickstart-templates%2Fmaster%2Fquickstarts%2Fmicrosoft.storage%2Fstorage-account-create%2Fazuredeploy.json" target="_blank">
<img src="https://aka.ms/deploytoazurebutton"/>
</a>
Git で Azure リポジトリを使用する場合、ボタンは次の形式になります。
[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fdev.azure.com%2Forgname%2Fprojectname%2F_apis%2Fgit%2Frepositories%2Freponame%2Fitems%3FscopePath%3D%2freponame%2fazuredeploy.json%26api-version%3D6.0)
テンプレートのデプロイ
完全なソリューションをテストするには、次のボタンを選択します。
ポータルには、パラメーター値を簡単に指定できるペインが表示されます。 パラメーターには、テンプレートの既定値があらかじめ入力されています。 テンプレートで定義されているキャメル ケースのパラメーター名 storageAccountType は、ポータルに表示されるときにスペースで区切られた文字列に変換されます。
次のステップ
- テンプレートの詳細については、「ARM テンプレートの構造と構文について」を参照してください。