デプロイ ボタンを使用してリモート テンプレートをデプロイする

この記事では、[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"/>

画像は次のように表示されます。

[Azure へのデプロイ] ボタンのスクリーンショット。

テンプレートをデプロイするための URL を作成する

このセクションでは、GitHub および Azure ストレージ アカウントに格納されているテンプレートの URL を取得する方法と、URL の形式を設定する方法について説明します。

GitHub に格納されているテンプレート

テンプレートの URL を作成するには、GitHub リポジトリ内のテンプレートへの未加工の URLから始めます。 未加工の URL を表示するには [Raw](未フォーマット) を選択します。

GitHub で [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)

テンプレートのデプロイ

完全なソリューションをテストするには、次のボタンを選択します。

リンク付きの [Azure へのデプロイ] ボタンのスクリーンショット。

ポータルには、パラメーター値を簡単に指定できるペインが表示されます。 パラメーターには、テンプレートの既定値があらかじめ入力されています。 テンプレートで定義されているキャメル ケースのパラメーター名 storageAccountType は、ポータルに表示されるときにスペースで区切られた文字列に変換されます。

パラメータ値の設定ウィンドウが表示された Azure portal のスクリーンショット。

次のステップ