Gli account di archiviazione di Azure sono un elemento fondamentale per le soluzioni di archiviazione dei dati nell’ecosistema Azure, supportando vari carichi di lavoro, dalla memorizzazione dei backup SQL alla distribuzione di file multimediali. Automatizzare attività come l’eliminazione di blob obsoleti o ridondanti dai contenitori di archiviazione può ottimizzare i costi di archiviazione e garantire efficienza.
Questo guida ti guiderà nell’utilizzo di PowerShell per eliminare in modo sicuro ed efficace i blob da un account di archiviazione Azure. Che tu stia gestendo backup SQL, registri delle applicazioni o altri dati non strutturati, questo processo può essere applicato a una vasta gamma di scenari in cui la pulizia è un requisito di routine.
Nuovo negli Account di Archiviazione?
Uno dei servizi principali all’interno di Microsoft Azure è il servizio degli account di archiviazione. Molti servizi utilizzano gli account di archiviazione per memorizzare dati, come i dischi delle macchine virtuali, i registri di diagnostica (specialmente i registri delle applicazioni), i backup SQL e altri. Puoi anche utilizzare il servizio degli account di archiviazione Azure per memorizzare i tuoi dati, come blob o dati binari.
Secondo MSDN, l’archiviazione blob di Azure consente di memorizzare grandi quantità di dati oggetto non strutturati. Puoi utilizzare l’archiviazione blob per raccogliere o esporre dati multimediali, contenuti o dati delle applicazioni agli utenti. Poiché tutti i dati blob sono memorizzati all’interno di contenitori, devi creare un contenitore di archiviazione prima di poter iniziare a caricare dati.
Passo dopo Passo
Passo 1: Ottieni gli Input Preliminari
In questo esempio, eliminerò un database SQL (backed up o importato nello storage) memorizzato in formato bacpac
nel container SQL.
## prerequisite Parameters
$resourceGroupName="rg-dgtl-strg-01"
$storageAccountName="sadgtlautomation01"
$storageContainerName="sql"
$blobName = "core_2022110824.bacpac"
Passaggio 2: Connettiti alla tua sottoscrizione di Azure
Utilizzando il comando az login
con un service principal è un modo sicuro ed efficiente per autenticarsi e connettersi alla tua sottoscrizione di Azure per compiti di automazione e script. In scenari in cui è necessario automatizzare le attività di gestione di Azure o eseguire script in modo non interattivo, è possibile autenticarsi utilizzando un service principal. Un service principal è un’identità creata per la tua applicazione o script per accedere in modo sicuro alle risorse di 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"
Passaggio 3: Verifica se il contenitore esiste nell’account di archiviazione
Quando si lavora con Azure Storage, potresti dover verificare se un contenitore esiste in un account di archiviazione o crearlo se non esiste. È possibile utilizzare il cmdlet Get-AzStorageContainer
per verificare l’esistenza di un contenitore.
## 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
Passaggio 4: Assicurati che il contenitore esista prima di eliminare il blob
Dobbiamo utilizzare il cmdlet Remove-AzStorageBlob
per eliminare un blob dal contenitore di Azure Storage.
## 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"
}
Ecco il codice completo:
## 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
Ecco l’output:
Conclusione
L’automazione dell’eliminazione dei blob negli account di archiviazione di Azure utilizzando PowerShell è un approccio pratico per mantenere un sistema di archiviazione efficiente e privo di ingombri. Seguendo i passaggi indicati, è possibile integrare questo processo senza intoppi nei propri flussi di lavoro, risparmiando tempo e riducendo gli sforzi manuali.
Questo metodo non è limitato solo ai file di backup SQL. Può essere esteso anche alla gestione di altri tipi di dati archiviati in Azure Storage, come log delle applicazioni, file diagnostici o contenuti multimediali. Assicurando l’esistenza di contenitori e sfruttando i robusti cmdlet di PowerShell, puoi gestire con fiducia le tue risorse Azure in modo automatizzato e senza errori.
Source:
https://dzone.com/articles/how-to-automate-blob-deletion-azure-storage-powershell