חשבונות אחסון של Azure הם יסוד לפתרונות אחסון נתונים בסביבת Azure, תומכים בעומסי עבודה שונים, מאחסון הגיבויים של SQL ועד לשרת קבצי מדיה. אוטומציה של משימות כגון מחיקת בלובים מיושנים או מיותרים מתוך תופסני אחסון יכולה לייעל עלויות אחסון ולוודא יעילות.
מדריך זה יראה לך כיצד להשתמש PowerShell למחיקת בלובים מחשבון אחסון של Azure בצורה בטוחה ויעילה. בין שאתה ניהול גיבויי SQL, לוגיי יישום או נתונים לא מובנים אחרים, תהליך זה יכול להיות מיושם במגוון רחב של תרחישים שבהם ניקוי הוא דרישה קבועה.
חדש בחשבון אחסון?
אחד השירותים היסודיים ב-Microsoft Azure הוא שירות חשבון האחסון. רבים מהשירותים משתמשים בחשבונות אחסון לאחסון נתונים, כגון דיסקי מכונות וירטואליות, יומני האבחון (במיוחד לוגייי יישום), גיבויי SQL ואחרים. ניתן גם להשתמש בשירות חשבון האחסון של Azure לאחסון נתונים משלך, כגון בלובים או נתונים בינאריים.
כפי שנכתב ב-MSDN, אחסון בלובי Azure מאפשר לך לאחסן כמויות גדולות של נתוני עצם לא מובנים. ניתן להשתמש באחסון בלובי כדי לאגוד או לחשוף מדיה, תוכן או נתוני יישום למשתמשים. מאחר וכל נתוני הבלובים מאוחסנים בתוך תופסנים, עליך ליצור תופסן אחסון לפני שתוכל להתחיל להעלות נתונים.
שלב אחר שלב
שלב 1: קבל את הקלטים הנדרשים מראש
בדוגמה זו, אני אמחק מסד נתונים SQL (מגובה או מיובא לאחסון) המאוחסן בתבנית bacpac
במיכל SQL.
## prerequisite Parameters
$resourceGroupName="rg-dgtl-strg-01"
$storageAccountName="sadgtlautomation01"
$storageContainerName="sql"
$blobName = "core_2022110824.bacpac"
שלב 2: התחברות למינוי Azure שלך
בשימוש בפקודת az login
עם פרינסיפל שירות הוא דרך מאובטחת ויעילה לאימות והתחברות למינוי Azure שלך למשימות אוטומציה וסקריפטים. בתרחישים בהם עליך לאוטומציה משימות ניהול של Azure או להפעיל סקריפטים בדרך לא אינטראקטיבית, תוכל לאמת באמצעות פרינסיפל שירות. פרינסיפל שירות הוא זהות שנוצרה עבור היישום או הסקריפט שלך לגישה בצורה מאובטחת למשאבי 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"
שלב 3: בדוק האם המיכל קיים בחשבון האחסון
כאשר אתה עובד עם אחסון Azure, ייתכן שתצטרך לוודא אם מיכל קיים בחשבון אחסון או ליצור אותו אם לא. תוכל להשתמש בפקודת Get-AzStorageContainer
כדי לבדוק אם המיכל קיים.
## 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
שלב 4: הבטיח שהמיכל קיים לפני מחיקת ה-Blob
עלינו להשתמש בפקודת Remove-AzStorageBlob
כדי למחוק Blob ממיכל האחסון של 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"
}
זהו הקוד המלא:
## 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
זהו הפלט:
מסקנה
האוטומציה של מחיקת blob בחשבונות אחסון של Azure באמצעות PowerShell היא גישה מעשית לשמירה על מערכת אחסון נקייה ויעילה. על ידי עקירת השלבים המצוינים, תוכל לשבץ בצורה חלקה את התהליך הזה בתהליכי העבודה שלך, ובכך לחסוך זמן ולהפחית מאמצים ידניים.
שיטה זו אינה מוגבלת רק לקבצי גיבוי SQL. ניתן גם להרחיב אותה לניהול סוגים אחרים של נתונים המאוחסנים ב-Azure Storage, כגון יומני יישום, קבצי אבחון או תוכן מדיה. על ידי הבטחת קיומם של קונטיינרים וניצול הפקודות החזקות של PowerShell, תוכלו לנהל את המשאבים שלכם ב-Azure בביטחון ובאופן אוטומטי וללא שגיאות.
Source:
https://dzone.com/articles/how-to-automate-blob-deletion-azure-storage-powershell