إنشاء بيانات اصطناعية مخصصة DevTest Labs

توضح هذه المقالة كيفية إنشاء ملفات بيانات اصطناعية مخصصة لأجهزة Azure DevTest Labs الظاهرية (VMs). تحدد بيانات DevTest Labs الاصطناعية الإجراءات التي يجب اتخاذها لتوفير جهاز ظاهري. تتكون الأداة من ملف تعريف البيانات الاصطناعية وملفات البرنامج النصي الأخرى التي تقوم بتخزينها في مجلد في مستودع Git.

ملفات تعريف البيانات الاصطناعية

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

يوضح المثال التالي الأقسام التي تشكل البنية الأساسية لملف تعريف artifactfile.json :

  {
    "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json",
    "title": "",
    "description": "",
    "iconUri": "",
    "targetOsType": "",
    "parameters": {
      "<parameterName>": {
        "type": "",
        "displayName": "",
        "description": ""
      }
    },
    "runCommand": {
      "commandToExecute": ""
    }
  }
اسم العنصر الوصف
$schema موقع ملف مخطط JSON. يمكن أن يساعدك ملف مخطط JSON في اختبار صلاحية ملف التعريف.
title اسم البيانات الاصطناعية المراد عرضها في المختبر. مطلوب.
description وصف البيانات الاصطناعية المراد عرضها في المختبر. مطلوب.
iconUri عنوان URI لرمز البيانات الاصطناعية المراد عرضه في المختبر.
targetOsType نظام تشغيل الجهاز الظاهري لتثبيت البيانات الاصطناعية عليه. القيم المعتمدة: Windows، Linux. مطلوب.
parameters قيم لتخصيص البيانات الاصطناعية عند التثبيت على الجهاز الظاهري.
runCommand أمر تثبيت البيانات الاصطناعية للتنفيذ على الجهاز الظاهري. مطلوب.

معلمات البيانات الاصطناعية

في قسم المعلمات في ملف التعريف، حدد القيم التي يمكن للمستخدم إدخالها عند تثبيت أداة. يمكنك الرجوع إلى هذه القيم في أمر تثبيت البيانات الاصطناعية.

لتعريف المعلمات، استخدم البنية التالية:

  "parameters": {
    "<parameterName>": {
      "type": "<type-of-parameter-value>",
      "displayName": "<display-name-of-parameter>",
      "description": "<description-of-parameter>"
    }
  }
اسم العنصر الوصف
type نوع قيمة المعلمة. مطلوب.
displayName اسم المعلمة المراد عرضها لمستخدم المختبر. مطلوب.
description وصف المعلمة المراد عرضها لمستخدم المختبر. مطلوب.

أنواع قيمة المعلمات المسموح بها هي:

النوع الوصف
string أي سلسلة JSON صالحة
int أي عدد صحيح JSON صالح
bool أي قيمة منطقية صالحة لـ JSON
array أي صفيف JSON صالح

البيانات السرية كسلاسل آمنة

للإعلان عن الأسرار كمعلمات سلسلة آمنة مع أحرف مخفية في واجهة المستخدم، استخدم بناء الجملة التالي في parameters قسم من ملف artifactfile.json :


    "securestringParam": {
      "type": "securestring",
      "displayName": "Secure String Parameter",
      "description": "Any text string is allowed, including spaces, and will be presented in UI as masked characters.",
      "allowEmpty": false
    },

يأخذ أمر تثبيت البيانات الاصطناعية لتشغيل البرنامج النصي PowerShell السلسلة الآمنة التي تم إنشاؤها باستخدام الأمر ConvertTo-SecureString.

  "runCommand": {
    "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./artifact.ps1 -StringParam ''', parameters('stringParam'), ''' -SecureStringParam (ConvertTo-SecureString ''', parameters('securestringParam'), ''' -AsPlainText -Force) -IntParam ', parameters('intParam'), ' -BoolParam:$', parameters('boolParam'), ' -FileContentsParam ''', parameters('fileContentsParam'), ''' -ExtraLogLines ', parameters('extraLogLines'), ' -ForceFail:$', parameters('forceFail'), '\"')]"
  }

لا تسجل الأسرار إلى وحدة التحكم، لأن البرنامج النصي يلتقط الإخراج لتصحيح أخطاء المستخدم.

تعبيرات ووظائف البيانات الاصطناعية

يمكنك استخدام التعبيرات والدالات لإنشاء أمر تثبيت البيانات الاصطناعية. يتم تقييم التعبيرات عند تثبيت البيانات الاصطناعية. يمكن أن تظهر التعبيرات في أي مكان في قيمة سلسلة JSON، وتعيد دائمًا قيمة JSON أخرى. إحاطة التعبيرات بأقواس، [ ]. إذا كنت بحاجة إلى استخدام سلسلة حرفية تبدأ بقوس، فاستخدم قوسين [[.

عادة ما تستخدم التعبيرات مع الوظائف لإنشاء قيمة. يتم تنسيق استدعاءات الوظيفة كـ functionName(arg1, arg2, arg3).

تتضمن الوظائف الشائعة ما يلي:

الوظيفة الوصف
parameters(parameterName) إرجاع قيمة معلمة لتوفيرها عند تشغيل أمر البيانات الاصطناعية.
concat(arg1, arg2, arg3, ...) تجمع بين قيم سلسلة متعددة. يمكن أن تأخذ هذه الوظيفة وسيطات مختلفة.

يستخدم المثال التالي التعبيرات والوظائف لإنشاء قيمة:

  runCommand": {
      "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./startChocolatey.ps1'
  , ' -RawPackagesList ', parameters('packages')
  , ' -Username ', parameters('installUsername')
  , ' -Password ', parameters('installPassword'))]"
  }

إنشاء أداة مخصصة

لإنشاء أداة مخصصة:

  • تثبيت محرر JSON للعمل مع ملفات تعريف البيانات الاصطناعية. يتوفر Visual Studio Code لأنظمة Windows و Linux و macOS.

  • ابدأ بنموذج ملف تعريف artifactfile.json.

    يحتوي مستودع البيانات الاصطناعية DevTest Labs العام على مكتبة غنية من البيانات الاصطناعية التي يمكنك استخدامها. يمكنك تنزيل ملف تعريف البيانات الاصطناعية وتخصيصه لإنشاء البيانات الاصطناعية الخاصة بك.

    تستخدم هذه المقالة ملف تعريف artifactfile.jsonartifact.ps1 برنامج PowerShell النصي في https://github.com/Azure/azure-devtestlab/tree/master/Artifacts/windows-test-paramtypes.

  • استخدم IntelliSense لمشاهدة العناصر الصالحة وخيارات القيمة التي يمكنك استخدامها لإنشاء ملف تعريف البيانات الاصطناعية. على سبيل المثال، عند تحرير العنصر targetOsType، يعرض IntelliSense لك الخيارين Windows أو Linux.

  • تخزين البيانات الاصطناعية الخاصة بك في مستودعات Git الاصطناعية العامة أو الخاصة.

    • قم بتخزين كل ملف تعريف artifactfile.json في دليل منفصل يسمى نفس اسم البيانات الاصطناعية.
    • تخزين البرامج النصية التي يشير إليها أمر التثبيت في نفس الدليل مثل ملف تعريف البيانات الاصطناعية.

    تُظهر لقطة الشاشة التالية مثالاً لمجلد البيانات الاصطناعية:

    لقطة شاشة تعرض مثالاً لمجلد البيانات الاصطناعية.

  • لتخزين البيانات الاصطناعية المخصصة في مستودع البيانات الاصطناعية DevTest Labs العام، افتح طلب سحب مقابل المستودع.

  • لإضافة مستودع البيانات الاصطناعية الخاص بك إلى مختبر، راجع إضافة مستودع بيانات اصطناعية إلى مختبرك في مختبرات DevTest.

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