تصدير/نسخ قرص مُدار إلى حساب تخزين باستخدام Azure CLI

يقوم هذا البرنامج النصي بتصدير VHD الأساسي لأحد الأقراص المُدارة إلى حساب تخزين في نفس المنطقة أو منطقة مختلفة. وهو ينشئ أولاً عنوان SAS URI للقرص المُدار ثم يستخدمه لنسخ VHD إلى أحد حسابات التخزين. استخدم هذا البرنامج النصي لنسخ الأقراص المُدارة إلى منطقة أخرى للتوسع الإقليمي. إذا كنت ترغب في نشر ملف VHD لقرص مُدار في Azure Marketplace، يمكنك استخدام هذا البرنامج النصي لنسخ ملف VHD إلى حساب تخزين ثم إنشاء عنوان SAS URI لملف VHD المنسوخ لنشره في Marketplace.

إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.

المتطلبات الأساسية

نموذج البرنامج النصي

إطلاق Azure Cloud Shell

Azure Cloud Shell هو shell تفاعلية مجانية التي يمكنك استخدامها لتشغيل الخطوات في هذه المقالة. يحتوي على أدوات Azure الشائعة المثبتة مسبقًا والمهيئة للاستخدام مع حسابك.

لفتح Cloud Shell، ما عليك سوى تحديد جربه من الزاوية اليمنى العليا من مجموعة التعليمات البرمجية. يمكنك أيضًا تشغيل Cloud Shell في علامة تبويب مستعرض منفصلة بالانتقال إلى https://shell.azure.com.

عند فتح Cloud Shell، تحقق من تحديد Bash لبيئتك. ستستخدم الجلسات اللاحقة Azure CLI في بيئة Bash، حدد نسخ لنسخ كتل التعليمات البرمجية، وألصقها في Cloud Shell، واضغط على Enter لتشغيلها.

تسجيل الدخول إلى Azure

يُصادق Cloud Shell تلقائياً بموجب الحساب الأولي الذي سُجل الدخول به. استخدم البرنامج النصي التالي لتسجيل الدخول باستخدام اشتراك مختلف، واستبدال subscriptionId بمعرف اشتراك Azure الخاص بك.

إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.

subscription="subscriptionId" # Set Azure subscription ID here

az account set -s $subscription # ...or use 'az login'

لمزيد من المعلومات، راجع تعيين الاشتراك النشط أو تسجيل الدخول بشكل تفاعلي.

تشغيل البرنامج النصي

#Provide the subscription Id where managed disk is created
subscriptionId="<subscriptionId>"

#Provide the name of your resource group where managed disk is created
resourceGroupName=myResourceGroupName

#Provide the managed disk name 
diskName=myDiskName

#Provide Shared Access Signature (SAS) expiry duration in seconds e.g. 3600.
#Know more about SAS here: https://docs.microsoft.com/azure/storage/storage-dotnet-shared-access-signature-part-1
sasExpiryDuration=3600

#Provide storage account name where you want to copy the underlying VHD file of the managed disk. 
storageAccountName=mystorageaccountname

#Name of the storage container where the downloaded VHD will be stored
storageContainerName=mystoragecontainername

#Provide the key of the storage account where you want to copy the VHD 
storageAccountKey=mystorageaccountkey

#Provide the name of the destination VHD file to which the VHD of the managed disk will be copied.
destinationVHDFileName=myvhdfilename.vhd

az account set --subscription $subscriptionId

sas=$(az disk grant-access --resource-group $resourceGroupName --name $diskName --duration-in-seconds $sasExpiryDuration --query [accessSas] -o tsv)

az storage blob copy start --destination-blob $destinationVHDFileName --destination-container $storageContainerName --account-name $storageAccountName --account-key $storageAccountKey --source-uri $sas

تنظيف الموارد

قم بتشغيل الأمر التالي لإزالة مجموعة الموارد، VM، وجميع الموارد ذات الصلة.

az group delete --name myResourceGroupName

نموذج مرجع

يستخدم هذا البرنامج النصي الأوامر التالية لإنشاء عنوان SAS URI لقرص مُدار وينسخ VHD الأساسي إلى حساب تخزين باستخدام عنوان SAS URI. يرتبط كل أمر في الجدول بأمر وثائق معينة.

الأمر ملاحظات
az disk grant-access ينشئ SAS للقراءة فقط والذي يتم استخدامه لنسخ ملف VHD الأساسي إلى حساب تخزين أو تنزيله إلى موقع محلي
az storage blob copy start نسخ كائن ثنائي كبير الحجم بشكل غير متزامن من أحد حسابات التخزين إلى آخر

الخطوات التالية

إنشاء قرص مُدار من ملف VHD

إنشاء جهاز ظاهري من قرص مُدار

لمزيد من المعلومات عن Azure CLI، راجع وثائق Azure CLI.

يمكن العثور على نماذج إضافية من برنامج CLI النصي للأجهزة الظاهرية والأقراص المُدارة الموجودة في وثائق Azure Linux VM.