إنشاء تجربة فوضى تستخدم الاستهداف الديناميكي لتحديد المضيفين

يمكنك استخدام الاستهداف الديناميكي في تجربة الفوضى لاختيار مجموعة من الأهداف لتشغيل تجربة ضدها. في هذه المقالة، نعرض لك كيفية استهداف مجموعات مقياس الجهاز الظاهري ديناميكيا لإيقاف التشغيل استنادا إلى منطقة التوفر. يمكن أن يساعدك تشغيل هذه التجربة في اختبار تجاوز الفشل إلى مثيل Azure Virtual Machine Scale Sets في منطقة مختلفة إذا كان هناك انقطاع.

يمكنك استخدام هذه الخطوات نفسها لإعداد تجربة وتشغيلها لأي خطأ يدعم الاستهداف الديناميكي. حاليا، يدعم إيقاف تشغيل مجموعة مقياس الجهاز الظاهري فقط الاستهداف الديناميكي.

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

افتح Azure Cloud Shell

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

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

إذا كنت ترغب في تثبيت واستخدام CLI محليا، يتطلب هذا البرنامج التعليمي الإصدار 2.0.30 من Azure CLI أو أحدث. قم بتشغيل az --version للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.

إشعار

تستخدم هذه الإرشادات محطة Bash الطرفية في Cloud Shell. قد لا تعمل بعض الأوامر كما هو موضح إذا كنت تقوم بتشغيل CLI محليا أو في محطة PowerShell الطرفية.

تمكين Chaos Studio على مثيل مجموعات مقياس الجهاز الظاهري

لا يمكن ل Azure Chaos Studio إدخال أخطاء ضد مورد ما لم تتم إضافة هذا المورد إلى Chaos Studio أولا. لإضافة مورد إلى Chaos Studio، قم بإنشاء هدف وقدرات على المورد.

تحتوي مجموعات مقياس الجهاز الظاهري على نوع هدف واحد فقط (Microsoft-VirtualMachineScaleSet) وقدرة واحدة (shutdown). قد تحتوي الموارد الأخرى على نوعين مستهدفين كحد أقصى. نوع هدف واحد هو للأخطاء المباشرة للخدمة. نوع هدف آخر هو للأخطاء المستندة إلى العامل. قد يكون للموارد الأخرى أيضا العديد من القدرات الأخرى.

  1. إنشاء هدف لمورد مجموعة مقياس الجهاز الظاهري. استبدل $RESOURCE_ID بمعرف المورد لمجموعة مقياس الجهاز الظاهري التي تضيفها:

    az rest --method put --url "https://management.azure.com/$RESOURCE_ID/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachineScaleSet?api-version=2023-11-01" --body "{\"properties\":{}}"
    
  2. إنشاء القدرات على هدف مجموعة مقياس الجهاز الظاهري. استبدل $RESOURCE_ID بمعرف المورد للمورد الذي تضيفه. VirtualMachineScaleSet حدد الهدف والقدرةShutdown-2.0.

    az rest --method put --url "https://management.azure.com/$RESOURCE_ID/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachineScaleSet/capabilities/Shutdown-2.0?api-version=2023-11-01" --body "{\"properties\":{}}"
    

لقد أضفت الآن مجموعة مقياس الجهاز الظاهري بنجاح إلى Chaos Studio.

إنشاء تجربة

الآن يمكنك إنشاء تجربتك. تحدد تجربة الفوضى الإجراءات التي تريد اتخاذها ضد الموارد المستهدفة. يتم تنظيم الإجراءات وتشغيلها في خطوات متتالية. تحدد تجربة الفوضى أيضا الإجراءات التي تريد اتخاذها ضد الفروع، والتي تعمل بالتوازي.

  1. قم بصياغة تجربتك JSON بدءا من نموذج مجموعات مقياس الجهاز الظاهري التالية Shutdown 2.0 JSON. قم بتعديل JSON ليتوافق مع التجربة التي تريد تشغيلها باستخدام Create Experiment API ومكتبة الخطأ. في هذا الوقت، لا يتوفر الاستهداف الديناميكي إلا مع خطأ مجموعات مقياس الجهاز الظاهري إيقاف التشغيل 2.0 ويمكنه التصفية فقط على مناطق التوفر.

    • filter استخدم العنصر لتكوين قائمة مناطق توفر Azure لتصفية الأهداف حسبها. إذا لم توفر filter، يقوم الخطأ بإيقاف تشغيل جميع المثيلات في مجموعة مقياس الجهاز الظاهري.
    • تستهدف التجربة جميع مثيلات مجموعات مقياس الجهاز الظاهري في المناطق المحددة.
     {
        "location": "westus2",
        "identity": {
            "type": "SystemAssigned"
        },
        "properties": {
            "selectors": [
                {
                    "type": "List",
                    "id": "Selector1",
                    "targets": [
                        {
                            "id": "/subscriptions/581d4e64-0ad7-495b-bff4-347a5944a2e1/resourceGroups/rg-demo/providers/Microsoft.Compute/virtualMachineScaleSets/vmss-demo/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachineScaleSet",
                            "type": "ChaosTarget"
                        }
                    ],
                    "filter": {
                        "type": "Simple",
                        "parameters": {
                            "zones": [
                                "1"
                            ]
                        }
                    }
                }
            ],
            "steps": [
                {
                    "name": "Step1",
                    "branches": [
                        {
                            "name": "Branch1",
                            "actions": [
                                {
                                    "name": "urn:csci:microsoft:virtualMachineScaleSet:shutdown/2.0",
                                    "type": "continuous",
                                    "selectorId": "Selector1",
                                    "duration": "PT2M",
                                    "parameters": [
                                        {
                                            "key": "abruptShutdown",
                                            "value": "false"
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    }
    
  2. إنشاء التجربة باستخدام Azure CLI. استبدل $SUBSCRIPTION_IDو $RESOURCE_GROUPو $EXPERIMENT_NAME بخصائص تجربتك. تأكد من حفظ وتحميل تجربتك JSON. قم بالتحديث experiment.json باستخدام اسم ملف JSON الخاص بك.

    az rest --method put --uri https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Chaos/experiments/$EXPERIMENT_NAME?api-version=2023-11-01 --body @experiment.json
    

    تنشئ كل تجربة هوية مدارة معينة من قبل النظام. لاحظ المعرف الأساسي لهذه الهوية في الاستجابة للخطوة التالية.

منح إذن التجربة لمجموعات مقياس الجهاز الظاهري

عند إنشاء تجربة فوضى، ينشئ Chaos Studio هوية مدارة معينة من قبل النظام تنفذ أخطاء ضد الموارد المستهدفة. يجب منح هذه الهوية الأذونات المناسبة للمورد الهدف لتشغيل التجربة بنجاح.

امنح التجربة حق الوصول إلى مواردك باستخدام الأمر التالي. استبدل $EXPERIMENT_PRINCIPAL_ID بالمعرف الأساسي من الخطوة السابقة. استبدل $RESOURCE_ID بمعرف المورد للمورد الهدف. قم بتغيير الدور إلى الدور المضمن المناسب لنوع المورد هذا. قم بتشغيل هذا الأمر لكل مورد مستهدف في تجربتك.

az role assignment create --role "Virtual Machine Contributor" --assignee-object-id $EXPERIMENT_PRINCIPAL_ID --scope $RESOURCE_ID

تشغيل تجربتك

أنت الآن جاهز لتشغيل تجربتك. لمشاهدة التأثير، تحقق من المدخل لمعرفة ما إذا تم إيقاف تشغيل أهداف مجموعات مقياس الجهاز الظاهري. إذا تم إيقاف تشغيلها، فتحقق لمعرفة أن الخدمات التي تعمل على مجموعات مقياس الجهاز الظاهري لا تزال تعمل كما هو متوقع.

  1. ابدأ التجربة باستخدام Azure CLI. استبدل $SUBSCRIPTION_IDو $RESOURCE_GROUPو $EXPERIMENT_NAME بخصائص تجربتك.

    az rest --method post --uri https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Chaos/experiments/$EXPERIMENT_NAME/start?api-version=2023-11-01
    
  2. تتضمن الاستجابة عنوان URL للحالة الذي يمكنك استخدامه للاستعلام عن حالة التجربة أثناء تشغيل التجربة.

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

الآن بعد أن قمت بتشغيل تجربة إيقاف تشغيل مجموعة مقياس الجهاز الظاهري المستهدفة ديناميكيا، فأنت جاهز ل: