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

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

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

يختلف تسعير أجهزة Azure Spot الظاهرية، بناءً على المنطقة ووحدة 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 للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع Install the 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

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

من جهاز كمبيوتر مثبت عليه 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.

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