نشر أجهزة Azure Spot الظاهرية باستخدام Azure CLI

ينطبق على: ✔️ أجهزة Linux الظاهرية ✔️ مجموعات مقياس مرنة

يتيح لك استخدام أجهزة Azure Spot الظاهرية الاستفادة من سعتنا غير المستخدمة مع توفير كبير في التكاليف. في أي وقت تحتاج فيه Azure إلى استعادة السعة، تقوم البنية الأساسية ل Azure بإخلاء أجهزة Azure Spot الظاهرية. ولذلك، تعتبر أجهزة Azure Spot الظاهرية رائعة لأحمال العمل التي يمكنها معالجة حالات التوقف عن العمل مثل مهام معالجة الدفعات وبيئات التطوير/الاختبار وأحمال العمل الكبيرة للحساب وغير ذلك المزيد.

يتغير تسعير Azure Spot Virtual Machines، استنادًا إلى المنطقة وSKU. لمزيدٍ من المعلومات، راجع تسعير الجهاز الظاهري لنظامي التشغيل Linux و Windows.

لديك خيار لتعيين الحد الأقصى للسعر الذي ترغب في دفعه، لكل ساعة، للجهاز الظاهري. يمكن تعيين الحد الأقصى لسعر جهاز Azure Spot الظاهري بالدولار الأمريكي (USD)، باستخدام ما يصل إلى 5 منازل عشرية. على سبيل المثال، القيمة 0.98765 هي الحد الأقصى للسعر البالغ 0.98765 دولار أمريكي في الساعة. إذا قمت بتعيين السعر الأقصى ليكون -1، يتم إخلاء الجهاز الظاهري بناء على السعر. سعر الجهاز الظاهري هو السعر الحالي لجهاز Azure Spot الظاهري أو سعر الجهاز الظاهري القياسي، وهو أقل من أي وقت مضى، طالما أن هناك سعة وحصة متاحة. لمزيد من المعلومات عن تعيين الحد الأقصى للسعر، راجع أجهزة Azure Spot الظاهرية - التسعير.

عملية إنشاء جهاز Azure Spot الظاهري باستخدام Azure CLI هي نفسها كما هو مفصل في مقالة البدء السريع. ما عليك سوى إضافة المعلمة '--priority Spot'، وتعيين --eviction-policy إما إلى Deallocate (الافتراضي) أو Delete، وتوفير الحد الأقصى للسعر أو -1.

تثبيت Azure CLI

لإنشاء أجهزة Azure Spot الظاهرية، يتعين عليك تشغيل الإصدار 2.0.74 من Azure CLI أو إصدار أحدث. قم بتشغيل az --version للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.

قم بتسجيل الدخول إلى Azure باستخدام az login.

az login

إنشاء جهاز Azure Spot الظاهري

يوضح هذا المثال كيفية نشر جهاز Linux Azure Spot الظاهري الذي لم يتم إخلائه بناء على السعر. تم تعيين سياسة الإخلاء على إلغاء تخصيص الجهاز الظاهري، بحيث يمكن إعادة تشغيله في وقتٍ لاحق. إذا كنت تريد حذف الجهاز الظاهري والقرص الأساسي عند استرداد الجهاز الظاهري، فقم بتعيين --eviction-policy إلى Delete.

az group create -n mySpotGroup -l eastus
az vm create \
    --resource-group mySpotGroup \
    --name myVM \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys \
    --priority Spot \
    --max-price -1 \
	--eviction-policy Deallocate

بعد إنشاء الجهاز الظاهري، يمكنك الاستعلام لمعرفة الحد الأقصى لسعر الفواتير لجميع الأجهزة الظاهرية في مجموعة الموارد.

az vm list \
   -g mySpotGroup \
   --query '[].{Name:name, MaxPrice:billingProfile.maxPrice}' \
   --output table

محاكاة عملية الإخلاء

يمكنك محاكاة إخلاء جهاز Azure Spot الظاهري باستخدام REST أو PowerShell أو CLI، لاختبار مدى استجابة تطبيقك للإخلاء المفاجئ.

في معظم الحالات، تريد استخدام الأجهزة الظاهرية لواجهة برمجة تطبيقات REST - محاكاة الإخلاء للمساعدة في الاختبار التلقائي للتطبيقات. بالنسبة إلى REST، تعني Response Code: 204 أن محاكاة الإخلاء كانت ناجحة. يمكنك الجمع بين عمليات الإخلاء المحاكية وخدمة الأحداث المجدولة، لأتمتة كيفية استجابة تطبيقك عند إخلاء الجهاز الظاهري.

لمشاهدة الأحداث المجدولة أثناء العمل، شاهد Azure Friday - استخدام أحداث Azure المجدولة للتحضير لصيانة الجهاز الظاهري.

الاختبار السريع

للحصول على اختبار سريع لإظهار كيفية عمل الإخلاء المحاكي، دعنا نستعرض الاستعلام عن خدمة الحدث المجدول لمعرفة كيف يبدو عند محاكاة إخلاء باستخدام Azure CLI.

يتم تمكين خدمة الأحداث المجدولة لخدمتك في المرة الأولى التي تقدم فيها طلباً للأحداث.

الاتصال بالجهاز الظاهري الخاص بك عن بُعد، ثم افتح موجه الأوامر.

من موجه الأوامر على الجهاز الظاهري الخاص بك، اكتب:

curl -H Metadata:true http://169.254.169.254/metadata/scheduledevents?api-version=2019-08-01

قد تستغرق هذه الاستجابة الأولى ما يصل إلى دقيقتين. من الآن فصاعداً، يتعين عليهم عرض الإخراج على الفور تقريباً.

من جهاز كمبيوتر مثبت عليه Azure CLI (مثل جهازك المحلي)، قم بمحاكاة عملية الاسترداد باستخدام az vm simulate-eviction. استبدل اسم مجموعة الموارد واسم الجهاز الظاهري بأسمائك.

az vm simulate-eviction --resource-group mySpotRG --name mySpot

يتم Status: Succeeded إخراج الاستجابة إذا تم إجراء الطلب بنجاح.

ارجع بسرعة إلى اتصالك عن بُعد بجهاز Spot الظاهري واستعلم عن نقطة نهاية الأحداث المجدولة مرةً أخرى. كرر الأمر التالي حتى تحصل على إخراج يحتوي على مزيدٍ من المعلومات:

curl -H Metadata:true http://169.254.169.254/metadata/scheduledevents?api-version=2019-08-01

عندما تحصل خدمة الأحداث المجدولة على إعلام الإخلاء، تحصل على استجابة تبدو مشابهة للإخراج التالي:

{"DocumentIncarnation":1,"Events":[{"EventId":"A123BC45-1234-5678-AB90-ABCDEF123456","EventStatus":"Scheduled","EventType":"Preempt","ResourceType":"VirtualMachine","Resources":["myspotvm"],"NotBefore":"Tue, 16 Mar 2021 00:58:46 GMT","Description":"","EventSource":"Platform"}]}

يمكنك أن ترى ذلك"EventType":"Preempt"، والمورد هو مورد الجهاز الظاهري "Resources":["myspotvm"].

يمكنك أيضا رؤية شرط إخلاء الجهاز الظاهري عن طريق التحقق من "NotBefore" - لن يتم إخلاء الجهاز الظاهري قبل الوقت المحدد، بحيث تكون النافذة الخاصة بك لتطبيقك لإغلاقه بأمان.

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

يمكنك أيضاً إنشاء جهاز Azure Spot الظاهري باستخدام Azure PowerShell أو المدخل أو نموذج.

استعلم عن معلومات التسعير الحالية باستخدام واجهة برمجة تطبيقات أسعار التجزئة في Azure للحصول على معلومات حول جهاز Azure Spot الظاهري. meterName يحتوي كل من و skuName على Spot.

إذا واجهت خطأ، فراجع رموز الخطأ.