PowerShellを使用してAzure StorageでBlobの自動削除をする方法

Azureストレージアカウントは、Azureエコシステムにおけるデータストレージソリューションの基盤であり、SQLバックアップの保存からメディアファイルの提供まで、さまざまなワークロードをサポートしています。ストレージコンテナから古くなったり冗長なBlobを削除するなどのタスクを自動化することで、ストレージコストを最適化し、効率性を確保できます。

このガイドでは、PowerShellを使用して、AzureストレージアカウントからBlobを安全かつ効果的に削除する方法を説明します。SQLバックアップ、アプリケーションログ、その他の非構造化データを管理している場合でも、このプロセスは、クリーンアップが日常的な要件であるさまざまなシナリオに適用できます。

ストレージアカウントに不慣れですか?

Microsoft Azureのコアサービスの1つが、ストレージアカウントサービスです。多くのサービスは、仮想マシンディスク、診断ログ(特にアプリケーションログ)、SQLバックアップなど、データを保存するためにストレージアカウントを利用しています。また、Azureストレージアカウントサービスを使用して、Blobやバイナリデータなど、自分のデータを保存することもできます。

MSDNによると、Azure Blobストレージは、大量の非構造化オブジェクトデータを保存することを可能にします。Blobストレージを使用して、メディア、コンテンツ、またはアプリケーションデータをユーザーに提供したり、収集したりすることができます。すべてのBlobデータはコンテナ内に保存されるため、データをアップロードする前にストレージコンテナを作成する必要があります。

ステップバイステップ

ステップ1: 必要な入力を取得する

この例では、SQLコンテナ内に保存されたbacpac形式のSQLデータベース(バックアップまたはストレージにインポートされたもの)を削除します。

PowerShell

 

ステップ2: Azureサブスクリプションに接続する

サービスプリンシパルを使用してaz loginコマンドを実行することは、オートメーションタスクやスクリプトのためにAzureサブスクリプションに認証し接続するための安全で効率的な方法です。Azure管理タスクを自動化したり、非対話的にスクリプトを実行したりする必要があるシナリオでは、サービスプリンシパルを使用して認証できます。サービスプリンシパルは、Azureリソースに安全にアクセスするためにアプリケーションやスクリプトのために作成されたアイデンティティです。

PowerShell

 

ステップ3: ストレージアカウントにコンテナが存在するか確認する

Azureストレージを使用する際には、ストレージアカウントにコンテナが存在するか確認するか、存在しない場合は作成する必要があります。Get-AzStorageContainerコマンドレットを使用して、コンテナの存在を確認できます。

PowerShell

 

ステップ4: Blobを削除する前にコンテナが存在することを確認する

AzureストレージコンテナからBlobを削除するために、Remove-AzStorageBlobコマンドレットを使用する必要があります。

PowerShell

 

こちらが完全なコードです:

PowerShell

 

こちらが出力です:

結論

PowerShellを使用してAzureストレージアカウント内のBlob削除を自動化することは、整理された効率的なストレージシステムを維持するための実用的なアプローチです。示された手順に従うことで、このプロセスをワークフローにシームレスに統合し、時間を節約し手動作業を減らすことができます。

この方法はSQLバックアップファイルに限定されているわけではありません。アプリケーションログ、診断ファイル、またはメディアコンテンツなど、Azure Storageに保存されている他の種類のデータを管理するために拡張することもできます。コンテナの存在を確認し、PowerShellの強力なコマンドレットを活用することで、Azureリソースを自動化された、エラーのない方法で自信を持って管理することができます。

Source:
https://dzone.com/articles/how-to-automate-blob-deletion-azure-storage-powershell