إنشاء بيانات اصطناعية مخصصة DevTest Labs
توضح هذه المقالة كيفية إنشاء ملفات بيانات اصطناعية مخصصة لأجهزة Azure DevTest Labs الظاهرية (VMs). تحدد بيانات DevTest Labs الاصطناعية الإجراءات التي يجب اتخاذها لتوفير جهاز ظاهري. تتكون الأداة من ملف تعريف البيانات الاصطناعية وملفات البرنامج النصي الأخرى التي تقوم بتخزينها في مجلد في مستودع Git.
- للحصول على معلومات حول إضافة مستودعات البيانات الاصطناعية إلى المختبرات، راجع إضافة مستودع بيانات اصطناعية إلى مختبرك.
- للحصول على معلومات حول إضافة البيانات الاصطناعية التي تقوم بإنشائها إلى الأجهزة الظاهرية، راجع إضافة بيانات اصطناعية إلى أجهزة DevTest Labs الظاهرية.
- للحصول على معلومات حول تحديد البيانات الاصطناعية الإلزامية التي ستتم إضافتها إلى جميع الأجهزة الظاهرية للمختبر، راجع تحديد البيانات الاصطناعية الإلزامية لأجهزة DevTest Labs الظاهرية.
ملفات تعريف البيانات الاصطناعية
ملفات تعريف البيانات الاصطناعية هي تعبيرات 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.