حسابات تخزين Azure هي أساس حلول تخزين البيانات في نظام السحابة Azure، وتدعم مجموعة متنوعة من الأعباء العملية، بدءًا من تخزين نسخ احتياطية لقواعد البيانات SQL إلى تقديم ملفات الوسائط. يمكن تحسين تكاليف التخزين وضمان الكفاءة من خلال تلقين المهام مثل حذف البلوبس القديمة أو الزائدة من حاويات التخزين بشكل تلقائي.
سيقوم هذا الدليل بإرشادك خلال استخدام PowerShell لحذف البلوبس بشكل آمن وفعال من حساب تخزين Azure. سواء كنت تدير نسخ احتياطية لقواعد البيانات SQL أو سجلات التطبيقات أو بيانات غير منظمة أخرى، يمكن تطبيق هذه العملية على مجموعة واسعة من السيناريوهات حيث يكون التنظيف متطلبًا روتينيًا.
جديد في حساب التخزين؟
أحد الخدمات الأساسية داخل مايكروسوفت 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، قد تحتاج إلى التحقق مما إذا كانت الحاوية موجودة في حساب تخزين أو إنشاؤها إذا لم تكن موجودة. يمكنك استخدام cmdlet 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: التأكد من وجود الحاوية قبل حذف البلوب
علينا استخدام cmdlet Remove-AzStorageBlob
لحذف بلوب من حاوية التخزين في 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
هنا الناتج:
الاستنتاج
يعد تتميز بحذف البلوب تلقائيًا في حسابات تخزين Azure باستخدام PowerShell نهجًا عمليًا للحفاظ على نظام تخزين خالي من الفوضى وفعال. من خلال اتباع الخطوات المحددة، يمكنك دمج هذه العملية بسهولة في سير العمل الخاص بك، مما يوفر الوقت ويقلل من الجهود اليدوية.
هذه الطريقة لا تقتصر فقط على ملفات النسخ الاحتياطي لـ SQL. يمكن أيضًا توسيعها لإدارة أنواع أخرى من البيانات المخزنة في تخزين Azure، مثل سجلات التطبيقات، وملفات التشخيص، أو محتوى الوسائط. من خلال ضمان وجود الحاويات واستغلال أوامر PowerShell القوية، يمكنك إدارة موارد Azure الخاصة بك بثقة بطريقة آلية وخالية من الأخطاء.
Source:
https://dzone.com/articles/how-to-automate-blob-deletion-azure-storage-powershell