Les comptes de stockage Azure sont un pilier des solutions de stockage de données dans l’écosystème Azure, prenant en charge diverses charges de travail, de la sauvegarde SQL au stockage de fichiers multimédias. L’automatisation de tâches telles que la suppression de blobs obsolètes ou redondants des conteneurs de stockage peut optimiser les coûts de stockage et garantir l’efficacité.
Ce guide vous guidera dans l’utilisation de PowerShell pour supprimer en toute sécurité et efficacement des blobs d’un compte de stockage Azure. Que vous gériez des sauvegardes SQL, des journaux d’application ou d’autres données non structurées, ce processus peut être appliqué à un large éventail de scénarios où le nettoyage est une exigence courante.
Nouveau sur le compte de stockage?
L’un des services principaux au sein de Microsoft Azure est le service de compte de stockage. De nombreux services utilisent des comptes de stockage pour stocker des données, telles que les disques de machines virtuelles, les journaux de diagnostics (en particulier les journaux d’application), les sauvegardes SQL, et d’autres. Vous pouvez également utiliser le service de compte de stockage Azure pour stocker vos propres données, telles que des blobs ou des données binaires.
Selon MSDN, le stockage de blobs Azure vous permet de stocker de grandes quantités de données d’objet non structurées. Vous pouvez utiliser le stockage de blobs pour rassembler ou exposer des médias, du contenu ou des données d’application aux utilisateurs. Comme toutes les données de blob sont stockées dans des conteneurs, vous devez créer un conteneur de stockage avant de pouvoir commencer à télécharger des données.
Étapes par étapes
Étape 1: Obtenir les entrées préalables nécessaires
Dans cet exemple, je vais supprimer une base de données SQL (sauvegardée ou importée dans le stockage) stockée au format bacpac
dans un conteneur SQL.
## prerequisite Parameters
$resourceGroupName="rg-dgtl-strg-01"
$storageAccountName="sadgtlautomation01"
$storageContainerName="sql"
$blobName = "core_2022110824.bacpac"
Étape 2 : Connectez-vous à votre abonnement Azure
En utilisant la commande az login
avec un principal de service, vous pouvez vous authentifier de manière sécurisée et efficace et vous connecter à votre abonnement Azure pour des tâches d’automatisation et des scripts. Dans les scénarios où vous avez besoin d’automatiser des tâches de gestion Azure ou d’exécuter des scripts de manière non interactive, vous pouvez vous authentifier en utilisant un principal de service. Un principal de service est une identité créée pour votre application ou script afin d’accéder de manière sécurisée aux ressources Azure.
## Connect to your Azure subscription
az login --service-principal -u "210f8f7c-049c-e480-96b5-642d6362f464" -p "c82BQ~MTCrPr3Daz95Nks6LrWF32jXBAtXACccAV" --tenant "cf8ba223-a403-342b-ba39-c21f78831637"
Étape 3 : Vérifiez si le conteneur existe dans le compte de stockage
Lorsque vous travaillez avec le stockage Azure, vous pouvez avoir besoin de vérifier si un conteneur existe dans un compte de stockage ou le créer s’il n’existe pas. Vous pouvez utiliser la commande Get-AzStorageContainer
pour vérifier l’existence d’un conteneur.
## Get the storage account to check container exist or need to be create
$storageAccount = Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName
## Get the storage account context
$context = $storageAccount.Context
Étape 4 : Assurez-vous que le conteneur existe avant de supprimer le blob
Nous devons utiliser la commande Remove-AzStorageBlob
pour supprimer un blob du conteneur de stockage Azure.
## Check if the storage container exists
if(Get-AzStorageContainer -Name $storageContainerName -Context $context -ErrorAction SilentlyContinue)
{
Write-Host -ForegroundColor Green $storageContainerName ", the requested container exit,started deleting blob"
## Create a new Azure Storage container
Remove-AzStorageBlob -Container $storageContainerName -Context $context -Blob $blobName
Write-Host -ForegroundColor Green $blobName deleted
}
else
{
Write-Host -ForegroundColor Magenta $storageContainerName "the requested container does not exist"
}
Voici le code complet :
## Delete a Blob from an Azure Storage
## Input Parameters
$resourceGroupName="rg-dgtl-strg-01"
$storageAccountName="sadgtlautomation01"
$storageContainerName="sql"
$blobName = "core_2022110824.bacpac"
## Connect to your Azure subscription
az login --service-principal -u "210f8f7c-049c-e480-96b5-642d6362f464" -p "c82BQ~MTCrPr3Daz95Nks6LrWF32jXBAtXACccAV" --tenant "cf8ba223-a403-342b-ba39-c21f78831637"
## Function to create the storage container
Function DeleteblogfromStorageContainer
{
## Get the storage account to check container exist or need to be create
$storageAccount = Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName
## Get the storage account context
$context = $storageAccount.Context
## Check if the storage container exists
if(Get-AzStorageContainer -Name $storageContainerName -Context $context -ErrorAction SilentlyContinue)
{
Write-Host -ForegroundColor Green $storageContainerName ", the requested container exit,started deleting blob"
## Remove the blob in Azure Storage container
Remove-AzStorageBlob -Container $storageContainerName -Context $context -Blob $blobName
Write-Host -ForegroundColor Green $blobName deleted
}
else
{
Write-Host -ForegroundColor Magenta $storageContainerName "the requested container does not exist"
}
}
#Call the Function
DeleteblogfromStorageContainer
Voici la sortie :
Conclusion
Automatiser la suppression de blobs dans les comptes de stockage Azure à l’aide de PowerShell est une approche pratique pour maintenir un système de stockage efficace et sans encombrement. En suivant les étapes décrites, vous pouvez intégrer ce processus de manière transparente dans vos flux de travail, ce qui vous fera gagner du temps et réduira les efforts manuels.
Cette méthode n’est pas seulement limitée aux fichiers de sauvegarde SQL. Elle peut également être étendue à la gestion d’autres types de données stockées dans Azure Storage, tels que les journaux d’application, les fichiers de diagnostic ou le contenu multimédia. En assurant l’existence des conteneurs et en tirant parti des cmdlets robustes de PowerShell, vous pouvez gérer en toute confiance vos ressources Azure de manière automatisée et sans erreurs.
Source:
https://dzone.com/articles/how-to-automate-blob-deletion-azure-storage-powershell