Azure にリソースをデプロイすると、デプロイの詳細がデプロイの履歴 (デプロイが発生するスコープ) に記録されます。 各スコープ ( リソース グループ、 サブスクリプション、 管理グループ、 テナント) は、その履歴に最大 800 個のデプロイを格納できます。 この制限に達すると、Azure は 最も古いデプロイを自動的に削除 して、新しいデプロイ用の領域を作成します。 この自動クリーンアップ プロセスは 、2020 年 8 月 6 日に実装されました。
注
履歴からデプロイを削除しても、デプロイされたリソースには影響が出ません。
自動デプロイ履歴の削除の概要
デプロイが 700 件を超えると、履歴からデプロイが削除されます。 履歴が 600 件に減るまで、Azure Resource Manager によってデプロイが削除されます。 常に、最も古いデプロイが先に削除されます。
重要
スコープが既に 800 の制限に達している場合、次のデプロイはエラーで失敗します。 自動削除プロセスがすぐに開始されます。 少し待つと、 デプロイを再試行できます。
デプロイに加え、what-if 操作の実行時またはデプロイの検証時にも削除を始動させることができます。
履歴に含まれるものと同じ名前をデプロイに付けると、履歴のその場所をリセットすることになります。 そのデプロイは履歴の中で最も新しい場所に移動します。 エラー後、そのデプロイまでロールバックした場合もデプロイの場所がリセットされます。
自動削除に必要なアクセス許可
削除は、テンプレートをデプロイしたユーザーの ID で要求されます。 デプロイを削除するには、ユーザーは、 [Microsoft.Resources/deployments/delete] アクションへのアクセス権を持っている必要があります。 ユーザーが必要なアクセス許可を持っていない場合、デプロイは履歴から削除されません。
現在のユーザーが必要なアクセス許可を持っていない場合は、次のデプロイ時に自動的に削除が試行されます。
リソース ロックの処理
リソース グループまたはサブスクリプションに 対して CanNotDelete ロック がある場合、そのスコープのデプロイを自動的に削除することはできません。 デプロイ履歴の自動クリーンアップを有効にするには、ロックを削除する必要があります。
リソース グループのロックを削除するには、次のコマンドを実行します。
$lockId = (Get-AzResourceLock -ResourceGroupName lockedRG).LockId
Remove-AzResourceLock -LockId $lockId
リソース グループのロックを削除するには、次のコマンドを実行します。
自動削除のオプトアウト
自動削除を無効にして、デプロイ履歴を手動で管理できます。 このオプションは、800 デプロイの制限が適用されたままであり、それを超えるとデプロイエラーが発生する可能性があるため、慎重に使用してください。
重要
オプトアウトは、サブスクリプション レベルの Microsoft.Resources/DisableDeploymentGrooming
機能フラグによって制御されるため、サブスクリプション スコープでのみ使用できます。 特定のリソース グループだけをオプトアウトすることはできません。 テナントまたは管理グループのスコープの場合は、 サポート チケット を開いて自動削除を無効にします。
サブスクリプション スコープで自動削除を無効にするには (その中のすべてのリソース グループに影響を与える):
PowerShell の場合、Register-AzProviderFeature を使用します。
Register-AzProviderFeature -ProviderNamespace Microsoft.Resources -FeatureName DisableDeploymentGrooming
サブスクリプションの現状を確認するには、次を使用します。
Get-AzProviderFeature -ProviderNamespace Microsoft.Resources -FeatureName DisableDeploymentGrooming
自動削除を再び有効にするには、Azure REST API または Azure CLI を使用します。
次のステップ
- デプロイ履歴を表示する方法については、「Azure Resource Manager でのデプロイ履歴の表示」を参照してください。