Azure を使っていると、たまに設定ミス等でリソースが削除できない状態に陥ることがあります。
そんな時は、ひとまず以下を試してみると消せる場合があるのでご参考までにどうぞ。(必ず消せるとは限りません)
1. Azure PowerShell で正しい値に設定しなおす
誤った設定を流し込んで、リソースの状態が「失敗」や「Provisioning State: Failed」 になっている場合、Azure PowerShell 等で正しい構成情報で上書きすることで解消できることが多々あります。
一度 Azure PowerShell で既存の設定を Get して、誤ったパラメーターを修正したのち、再度 Set してみましょう。
# 誤った設定をして、「失敗」状態になった例
# Azure PowerShell で設定を修正する例 (ExpressRoute の接続リソースの例)
# 既存の設定を取得 $Connection = Get-AzureRmVirtualNetworkGatewayConnection -Name shuda1120 -ResourceGroupName shudaExR # 誤った設定箇所を修正 $Connection.Peer.Id = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/ExR/providers/Microsoft.Network/expressRouteCircuits/MyCircuit" # 修正後の設定で上書き Set-AzureRmVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $Connection
2. Resource Explorer で正しい値に設定しなおす
Azure PowerShell と同じような話ですが、Resource Explorer (https://resources.azure.com) でも JSON の書き換えが出来たりします。
左のメニューから対象のサブスクリプション内のリソースを辿っていって、対象のリソースの [Edit] から書き換えて [PUT] しましょう。
# Resource Explorer から修正する例
3. JSON テンプレートの完全デプロイを試す
Azure は、JSON テンプレートからリソースをデプロイできますが、増分 (差分) モードと完全モードがあるのをご存知でしょうか。
- Azure Resource Manager のデプロイ モード
https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/deployment-modes
完全デプロイをすると、対象のリソース グループ内を JSON テンプレートの内容で完全に上書きすることができます。
つまり、既存のリソースは削除されるので、それを利用して無理やり消すという小技が使える場合があります。
(不用意に使うと、他のリソースが消えるので十分注意しましょう)
なお、完全デプロイで消せるリソースについては、以下でまとまっているようです。
- 完全モード デプロイでの Azure リソースの削除
https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/complete-mode-deletion
4. サポートに依頼する
パッと思いつくのは以上 3 点なので、ダメそうであればサポートに依頼しましょう。
ただし、サポートの中の人もお客様環境を直接操作したりできる権限は基本的に持っていないので (というか、持っていたら色々マズい)
修正が完了するにはエスカレーション等で少なくとも数日はかかります。気長に待ちましょう。