デプロイが失敗した場合は、デプロイ履歴から以前に成功したデプロイを自動的に再デプロイできます。 この機能は、インフラストラクチャのデプロイに対して既知の良好な状態、つまり安定した状態がある場合に、その状態に戻すために便利です。 以前の特定のデプロイまたは最後に成功したデプロイを指定できます。
重要
この機能は、以前のデプロイを再デプロイすることで、失敗したデプロイをロールバックします。 この結果は、失敗したデプロイを元に戻すことで期待されるものとは異なる場合があります。 以前のデプロイの再デプロイ方法を理解していることを確認します。
再デプロイに関する考慮事項
この機能を使用する前に、再デプロイの処理方法に関する以下の詳細を検討してください。
- 前のデプロイは、前のデプロイ中に増分モードを使用した場合でも、完全モードを使用して実行されます。 完全モードで再デプロイすると、以前のデプロイで増分が使用されたときに予期しない結果が発生する可能性があります。 完全モードは、前のデプロイに含まれていないすべてのリソースが削除されることを意味します。 リソース グループに存在するすべてのリソースとその状態を表す以前のデプロイを指定します。 詳細については、「 デプロイ モード」を参照してください。
- 再デプロイは、以前に同じパラメーターを使用して実行されたのとまったく同じように実行されます。 パラメーターを変更することはできません。
- 再デプロイはリソースにのみ影響し、データの変更は影響を受けません。
- この機能は、リソース グループのデプロイでのみ使用できます。 サブスクリプション、管理グループ、またはテナント レベルのデプロイはサポートされていません。 サブスクリプション レベルのデプロイの詳細については、「サブスクリプション レベルでのリソース グループとリソースの作成」を参照してください。
- このオプションは、ルート レベルのデプロイでのみ使用できます。 入れ子になったテンプレートからのデプロイは、再デプロイに使用できません。
このオプションを使用するには、デプロイ履歴に一意の名前が必要です。 特定のデプロイを識別できるのは、一意の名前のみです。 一意の名前がない場合、失敗したデプロイによって履歴内の正常なデプロイが上書きされる可能性があります。
デプロイ履歴に存在しない以前のデプロイを指定すると、ロールバックによってエラーが返されます。
PowerShell
最後に成功したデプロイを再デプロイするには、フラグとして -RollbackToLastDeployment
パラメーターを追加します。
New-AzResourceGroupDeployment -Name ExampleDeployment02 `
-ResourceGroupName $resourceGroupName `
-TemplateFile c:\MyTemplates\azuredeploy.json `
-RollbackToLastDeployment
特定のデプロイを再デプロイするには、 -RollBackDeploymentName
パラメーターを使用し、デプロイの名前を指定します。 指定したデプロイが成功している必要があります。
New-AzResourceGroupDeployment -Name ExampleDeployment02 `
-ResourceGroupName $resourceGroupName `
-TemplateFile c:\MyTemplates\azuredeploy.json `
-RollBackDeploymentName ExampleDeployment01
Azure CLI(Azure コマンドライン インターフェイス)
最後に成功したデプロイを再デプロイするには、フラグとして --rollback-on-error
パラメーターを追加します。
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--template-file storage.json \
--parameters storageAccountType=Standard_GRS \
--rollback-on-error
特定のデプロイを再デプロイするには、 --rollback-on-error
パラメーターを使用し、デプロイの名前を指定します。 指定したデプロイが成功している必要があります。
az deployment group create \
--name ExampleDeployment02 \
--resource-group ExampleGroup \
--template-file storage.json \
--parameters storageAccountType=Standard_GRS \
--rollback-on-error ExampleDeployment01
REST API
現在のデプロイが失敗した場合に最後に成功したデプロイを再デプロイするには、次を使用します。
{
"properties": {
"templateLink": {
"uri": "http://mystorageaccount.blob.core.windows.net/templates/template.json",
"contentVersion": "1.0.0.0"
},
"mode": "Incremental",
"parametersLink": {
"uri": "http://mystorageaccount.blob.core.windows.net/templates/parameters.json",
"contentVersion": "1.0.0.0"
},
"onErrorDeployment": {
"type": "LastSuccessful",
}
}
}
現在のデプロイが失敗した場合に特定のデプロイを再デプロイするには、次を使用します。
{
"properties": {
"templateLink": {
"uri": "http://mystorageaccount.blob.core.windows.net/templates/template.json",
"contentVersion": "1.0.0.0"
},
"mode": "Incremental",
"parametersLink": {
"uri": "http://mystorageaccount.blob.core.windows.net/templates/parameters.json",
"contentVersion": "1.0.0.0"
},
"onErrorDeployment": {
"type": "SpecificDeployment",
"deploymentName": "<deploymentname>"
}
}
}
指定したデプロイが成功している必要があります。
次のステップ
- 完全モードと増分モードを理解するには、 Azure Resource Manager のデプロイ モードに関するページを参照してください。
- テンプレートでパラメーターを定義する方法については、「 Azure Resource Manager テンプレートの構造と構文について」を参照してください。