Azure-opslagaccounts zijn een hoeksteen voor gegevensopslagoplossingen in het Azure-ecosysteem, die verschillende workloads ondersteunen, van het opslaan van SQL-back-ups tot het serveren van mediabestanden. Het automatiseren van taken zoals het verwijderen van verouderde of overbodige blobs uit opslagcontainers kan opslagkosten optimaliseren en efficiëntie garanderen.
Deze handleiding leidt je door het gebruik van PowerShell om op een veilige en effectieve manier blobs te verwijderen uit een Azure-opslagaccount. Of je nu SQL-back-ups, toepassingslogs of andere ongestructureerde gegevens beheert, dit proces kan worden toegepast op een breed scala van scenario’s waar opruimen een routinematige vereiste is.
Nieuw bij Storage Account?
Een van de kernservices binnen Microsoft Azure is de opslagaccountservice. Veel services maken gebruik van opslagaccounts voor het opslaan van gegevens, zoals virtuele machine schijven, diagnostische logs (vooral toepassingslogs), SQL-back-ups en anderen. Je kunt ook de Azure-opslagaccountservice gebruiken om je eigen gegevens op te slaan, zoals blobs of binaire gegevens.
Volgens MSDN stelt Azure blob-opslag je in staat om grote hoeveelheden ongestructureerde objectgegevens op te slaan. Je kunt blob-opslag gebruiken om media, inhoud of toepassingsgegevens te verzamelen of bloot te stellen aan gebruikers. Omdat alle blobgegevens worden opgeslagen binnen containers, moet je een opslagcontainer maken voordat je gegevens kunt gaan uploaden.
Stapsgewijze handleiding
Stap 1: Verkrijg de vereiste invoer
In dit voorbeeld zal ik een SQL-database (die is geback-upt of geïmporteerd naar opslag) in bacpac
-indeling verwijderen uit de SQL-container.
## prerequisite Parameters
$resourceGroupName="rg-dgtl-strg-01"
$storageAccountName="sadgtlautomation01"
$storageContainerName="sql"
$blobName = "core_2022110824.bacpac"
Stap 2: Maak verbinding met uw Azure-abonnement
Het gebruik van het az login
-commando met een serviceprincipe is een veilige en efficiënte manier om te verifiëren en verbinding te maken met uw Azure-abonnement voor geautomatiseerde taken en scripts. In situaties waar u Azure-beheertaken wilt automatiseren of scripts wilt uitvoeren op een niet-interactieve manier, kunt u verifiëren met behulp van een serviceprincipe. Een serviceprincipe is een identiteit die is aangemaakt voor uw toepassing of script om veilige toegang te krijgen tot Azure-resources.
## Connect to your Azure subscription
az login --service-principal -u "210f8f7c-049c-e480-96b5-642d6362f464" -p "c82BQ~MTCrPr3Daz95Nks6LrWF32jXBAtXACccAV" --tenant "cf8ba223-a403-342b-ba39-c21f78831637"
Stap 3: Controleer of de Container bestaat in de opslagaccount
Als u werkt met Azure-opslag, moet u verifiëren of een container bestaat in een opslagaccount of deze maken als deze er niet is. U kunt de Get-AzStorageContainer
-cmdlet gebruiken om te controleren of een container bestaat.
## 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
Stap 4: Zorg ervoor dat de Container bestaat voordat u de Blob verwijdert
We moeten de Remove-AzStorageBlob
-cmdlet gebruiken om een blob uit de Azure-opslagcontainer te verwijderen.
## 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 is de volledige 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 is de uitvoer:
Conclusie
Het automatiseren van het verwijderen van blobs in Azure-opslagaccounts met behulp van PowerShell is een praktische aanpak voor het onderhouden van een opgeruimd en efficiënt opslagsysteem. Door de hierboven beschreven stappen te volgen, kunt u dit proces naadloos integreren in uw workflows, waardoor u tijd bespaart en handmatige inspanningen vermindert.
Deze methode is niet alleen beperkt tot SQL-back-upbestanden. Het kan ook worden uitgebreid naar het beheren van andere soorten gegevens die zijn opgeslagen in Azure Storage, zoals toepassingslogs, diagnostische bestanden of mediabestanden. Door te zorgen voor het bestaan van containers en gebruik te maken van de robuuste cmdlets van PowerShell, kunt u op een zelfverzekerde manier uw Azure-resources beheren op een geautomatiseerde, foutloze manier.
Source:
https://dzone.com/articles/how-to-automate-blob-deletion-azure-storage-powershell