デプロイ スタックを削除する

完了

新しい預金アプリケーションのスプリント 3 の終わりに近付いています。 デプロイ スタックからリソースをデタッチして削除する方法については最近学習しました。 次のスプリントを計画する上で、デプロイ スタックを削除する方法と、それがマネージド リソースとアンマネージド リソースに対して何を意味するかについて学習する必要があります。

このユニットでは、デプロイ スタックの削除について学習します。

Note

このユニットのコマンドは、概念を説明するために示されています。 コマンドはまだ実行しないでください。 ここで学習した内容をすぐに練習します。

デプロイ スタックを削除する

デプロイ スタックは、スタックが管理するリソースへの一連のポインターとして機能するネイティブ Azure リソースです。 これらのリソースは、マネージド リソースとも呼ばれ、Bicep ファイル、ARM JSON テンプレート、またはテンプレート スペック内で定義されます。

デプロイ スタックが不要になったら、それを削除できます。 しかし、デプロイ スタックを削除する理由は何でしょうか? あなたは一時的な環境で作業していて、デプロイ スタックを使用して、1 つのコマンドで環境のデプロイと破棄を行っているのかもしれません。 あなたはアプリケーションの新しいバージョンをデプロイしていて、以前のバージョンを削除する必要があるのかもしれません。

イントロ モジュールで説明したように、デプロイ スタックの利点の 1 つは、信頼性の高いリソースのクリーンアップです。 デプロイ スタックでは、スタック内のリソース間の依存関係を理解しなくても、1 つの API 呼び出しを通じてスタックとそのマネージド リソースのすべてを削除できます。 この 1 回の削除操作は信頼できる方法でリソースを削除し、削除の速度を向上させます。 スタック内のリソースは、それがどこに存在していようとも削除されます。これはそれが複数のリソース グループやサブスクリプションにまたがって存在している場合でも同様です。

スタックが削除されると、そのスタックのリソースはどうなりますか? デプロイ スタックの作成と更新コマンドと同様に、action on unmanage パラメーターの値によってスタックのリソースがどうなるかが決まります。 このパラメーターの値は、デプロイ スタックを作成、変更、または削除するときに設定できます。 3 つの操作すべてに、非管理時のアクションパラメーターの動作を設定する機能があります。 最後に設定した値が優先されることに注意してください。

預金アプリケーションについて考えましょう。 前のユニットでは、Bicep ファイルからいくつかのリソースを削除した後、変更後の Bicep ファイルを使用するようにデプロイ スタックを更新しました。 このアクションの結果として、リソースのいくつかが削除されました。 ここでは、スタック全体を削除します。これにより、スタックが管理するリソースのすべてが削除されます。

通常、デプロイ スタックを削除する際には、action on unmanage パラメーターを delete all に設定し、これによってリソースが削除されます。 ただし、リソースを削除せずにスタックを削除したい場合もあります。 デプロイ スタックが提供する機能はもう必要なくても、リソースは残す必要があるかもしれません。 あるいは、あるスタックから別のスタックにリソースを移動しているのかもしれません。 リソースをデタッチするために、action on unmanage パラメーターを detach all に設定し直します。

Note

リソース グループ スコープのデプロイ スタックを使用する場合、action on unmanage パラメーターの delete all という値は、デタッチされたリソースやスタックが含まれるリソース グループを削除しません。 デタッチされたリソースとリソース グループを削除したい場合は、それらを手動で削除する必要があります。

Azure CLI を使用してデプロイ スタックを削除するには、az stack group delete コマンドを使用します。

az stack group delete \
    --name stack-deposits \
    --resource-group rg-depositsApplication \
    --action-on-unmanage deleteAll

Azure PowerShell を使用してデプロイ スタックを削除するには、Remove-AzResourceGroupDeploymentStack コマンドを使用します。

Remove-AzResourceGroupDeploymentStack `
    -Name stack-deposits `
    -ResourceGroupName rg-depositsApplication `
    -ActionOnUnmanage -DeleteAll