Azure-Speicherkonten sind ein Eckpfeiler für Datenspeicherlösungen im Azure-Ökosystem und unterstützen verschiedene Arbeitslasten, von der Speicherung von SQL-Backups bis hin zur Bereitstellung von Mediendateien. Die Automatisierung von Aufgaben wie das Löschen veralteter oder redundanter Blobs aus Speicherkontainern kann die Speicherkosten optimieren und die Effizienz sicherstellen.
Diese Anleitung führt Sie durch die Verwendung von PowerShell, um Blobs sicher und effektiv aus einem Azure-Speicherkonto zu löschen. Egal, ob Sie SQL-Backups, Anwendungsprotokolle oder andere unstrukturierte Daten verwalten, dieser Prozess kann auf eine Vielzahl von Szenarien angewendet werden, in denen eine Bereinigung eine routinemäßige Anforderung ist.
Neu im Speicherkonto?
Einer der Kernservices von Microsoft Azure ist der Speicherkontodienst. Viele Dienste nutzen Speicherkonten zur Datenspeicherung, wie z.B. virtuelle Maschinenlaufwerke, Diagnoselogs (insbesondere Anwendungsprotokolle), SQL-Backups und andere. Sie können den Azure-Speicherkontodienst auch verwenden, um Ihre eigenen Daten, wie Blobs oder Binärdaten, zu speichern.
Laut MSDN ermöglicht Azure Blob Storage die Speicherung großer Mengen unstrukturierter Objektdaten. Sie können Blob Storage nutzen, um Mediendaten, Inhalte oder Anwendungsdaten für Benutzer zu sammeln oder bereitzustellen. Da alle Blob-Daten in Containern gespeichert werden, müssen Sie einen Speicherkontainer erstellen, bevor Sie mit dem Hochladen von Daten beginnen können.
Schritt-für-Schritt
Schritt 1: Holen Sie sich die erforderlichen Eingaben
In diesem Beispiel werde ich eine SQL-Datenbank (gesichert oder im Speicher importiert) im bacpac
-Format im SQL-Container löschen.
## prerequisite Parameters
$resourceGroupName="rg-dgtl-strg-01"
$storageAccountName="sadgtlautomation01"
$storageContainerName="sql"
$blobName = "core_2022110824.bacpac"
Schritt 2: Verbindung mit Ihrem Azure-Abonnement herstellen
Die Verwendung des Befehls az login
mit einem Dienstprinzipal ist eine sichere und effiziente Möglichkeit, sich für Automatisierungsaufgaben und Skripte mit Ihrem Azure-Abonnement zu authentifizieren und zu verbinden. In Szenarien, in denen Sie Azure-Verwaltungsaufgaben automatisieren müssen oder Skripte auf nicht-interaktive Weise ausführen möchten, können Sie sich mit einem Dienstprinzipal authentifizieren. Ein Dienstprinzipal ist eine Identität, die für Ihre Anwendung oder Ihr Skript erstellt wurde, um sicher auf Azure-Ressourcen zuzugreifen.
## Connect to your Azure subscription
az login --service-principal -u "210f8f7c-049c-e480-96b5-642d6362f464" -p "c82BQ~MTCrPr3Daz95Nks6LrWF32jXBAtXACccAV" --tenant "cf8ba223-a403-342b-ba39-c21f78831637"
Schritt 3: Überprüfen, ob der Container im Speicherkonto vorhanden ist
Bei der Arbeit mit Azure Storage müssen Sie möglicherweise überprüfen, ob ein Container in einem Speicherkonto vorhanden ist oder ihn erstellen, wenn er nicht existiert. Sie können das Cmdlet Get-AzStorageContainer
verwenden, um auf die Existenz eines Containers zu überprüfen.
## 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
Schritt 4: Stellen Sie sicher, dass der Container vorhanden ist, bevor Sie den Blob löschen
Wir müssen das Cmdlet Remove-AzStorageBlob
verwenden, um einen Blob aus dem Azure Storage-Container zu löschen.
## 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"
}
Hier ist der vollständige Code:
## 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
Hier ist die Ausgabe:
Fazit
Die Automatisierung der Blob-Löschung in Azure-Speicherkonten mithilfe von PowerShell ist ein praktischer Ansatz zur Aufrechterhaltung eines aufgeräumten und effizienten Speichersystems. Durch Befolgen der beschriebenen Schritte können Sie diesen Prozess nahtlos in Ihre Workflows integrieren, Zeit sparen und manuelle Aufwände reduzieren.
Diese Methode ist nicht nur auf SQL-Backupdateien beschränkt. Sie kann auch auf die Verwaltung anderer Arten von Daten angewendet werden, die in Azure Storage gespeichert sind, wie z.B. Anwendungsprotokolle, Diagnosedateien oder Mediainhalte. Durch die Sicherstellung der Existenz von Containern und die Nutzung der leistungsstarken Cmdlets von PowerShell können Sie Ihre Azure-Ressourcen auf automatisierte, fehlerfreie Weise verwalten.
Source:
https://dzone.com/articles/how-to-automate-blob-deletion-azure-storage-powershell