إدارة نماذج Azure Digital Twins
توضح هذه المقالة كيفية إدارة الطرز في مثيل Azure Digital Twins. تتضمن عمليات الإدارة تحميل النماذج والتحقق منها واسترجاعها وحذفها.
المتطلبات الأساسية
للعمل مع Azure Digital Twins في هذه الوحدة، تحتاج أولاً إلى إعداد نمذجة Digital Twins. تحتاج أيضاً إلى الأذونات المطلوبة لاستخدامه. إذا كانت لديك بالفعل نمذجة لـ Azure Digital Twins تم إعدادها، فيمكنك استخدامه بدلاً من ذلك.
وإلا، فاتبع الإرشادات الموجودة في إعداد نمذجة ومصادقة. تحتوي الإرشادات على معلومات لمساعدتك في التحقق من إكمال كل خطوة بنجاح.
بعد إعداد النمذجة الخاصة بك، دون ملاحظة للقيم التالية. ستحتاج إلى هذه القيم للوصول لاحقاً إلى هذه النمذجة:
- اسم مضيفالنمذجة. يمكنك العثور على اسم المضيف في بوابة Azure.
- اشتراك Azure الذي استخدمته لإنشاء النمذجة. سيُفعل إما بالاسم وإما بالمعرف. يمكنك العثور على الاشتراك في صفحة نظرة عامة حول النمذجة الخاصة بك في بوابة Azure.
واجهات المطور
توضح هذه المقالة كيفية إكمال عمليات الإدارة المختلفة باستخدام .NET (C#) SDK. يمكنك أيضا صياغة استدعاءات الإدارة نفسها باستخدام مجموعات SDK باللغات الأخرى الموضحة في واجهات برمجة تطبيقات Azure Digital Twins ومجموعات SDK.
تتضمن واجهات المطورين الأخرى التي يمكن استخدامها لإكمال هذه العمليات ما يلي:
عرض البيانات بشكل بياني
Azure Digital Twins Explorer هو أداة مرئية لاستكشاف البيانات الموجودة في الرسم البياني لتوائم Azure الرقمية. يمكنك استخدام المستكشف لعرض النماذج والتوائم والعلاقات والاستعلام عنها وتحريرها.
للقراءة حول أداة Azure Digital Twins Explorer، راجع Azure Digital Twins Explorer. للحصول على خطوات مفصلة حول كيفية استخدام ميزاته، راجع استخدام Azure Digital Twins Explorer.
إليك الشكل الذي يبدو عليه التصور:
إنشاء نماذج
تتم كتابة نماذج Azure Digital Twins في DTDL، ويتم حفظها كملفات .json. هناك أيضا امتداد DTDL متاح ل Visual Studio Code ، والذي يوفر التحقق من صحة بناء الجملة وميزات أخرى لتسهيل كتابة مستندات DTDL.
فكر في مثال يريد فيه المستشفى تمثيل غرفه رقميا. تحتوي كل غرفة على موزع صابون ذكي لمراقبة غسل اليدين ، وأجهزة استشعار لمراقبة حركة المرور عبر الغرفة.
الخطوة الأولى نحو الحل هي إنشاء نماذج لتمثيل جوانب المستشفى. يمكن وصف غرفة المريض في هذا السيناريو على النحو التالي:
{
"@id": "dtmi:com:contoso:PatientRoom;1",
"@type": "Interface",
"@context": "dtmi:dtdl:context;2",
"displayName": "Patient Room",
"contents": [
{
"@type": "Property",
"name": "visitorCount",
"schema": "double"
},
{
"@type": "Property",
"name": "handWashCount",
"schema": "double"
},
{
"@type": "Property",
"name": "handWashPercentage",
"schema": "double"
},
{
"@type": "Relationship",
"name": "hasDevices"
}
]
}
ملاحظة
هذا هو نص عينة لملف .json حيث يتم تعريف نموذج وحفظه ، ليتم تحميله كجزء من مشروع عميل. من ناحية أخرى ، تأخذ مكالمة REST API مجموعة من تعريفات النماذج مثل التعريف أعلاه (الذي تم تعيينه إلى ملف IEnumerable<string> .NET SDK). لذلك لاستخدام هذا النموذج في واجهة برمجة تطبيقات REST مباشرة ، قم بإحاطته بأقواس.
يحدد هذا النموذج اسما ومعرفا فريدا لغرفة المريض ، وخصائص لتمثيل عدد الزوار وحالة غسل اليدين. سيتم تحديث هذه العدادات من مستشعرات الحركة وموزعات الصابون الذكية ، وسيتم استخدامها معا لحساب handwash percentage العقار. يحدد النموذج أيضا علاقة hasDevices، والتي سيتم استخدامها لتوصيل أي توائم رقمية بناء على نموذج الغرفة هذا بالأجهزة الفعلية.
باتباع هذه الطريقة ، يمكنك الاستمرار في تحديد نماذج لأجنحة المستشفى أو مناطقه أو المستشفى نفسه.
ملاحظة
هناك بعض ميزات DTDL التي لا يدعمها Azure Digital Twins حاليا، بما في ذلك السمة writable الموجودة على الخصائص والعلاقات، وللعلاقات minMultiplicitymaxMultiplicity . لمزيد من المعلومات، راجع تفاصيل تنفيذ Azure Digital Twins DTDL.
التحقق من صحة بناء الجملة
تلميح
بعد إنشاء نموذج، يوصى بالتحقق من صحة نماذجك في وضع عدم الاتصال قبل تحميلها إلى مثيل Azure Digital Twins.
هناك نموذج DTDL Validator لا أدري اللغة للتحقق من صحة مستندات النموذج للتأكد من صحة DTDL قبل تحميله إلى المثيل الخاص بك.
تم بناء نموذج مدقق DTDL على مكتبة محلل .NET DTDL ، والتي تتوفر على NuGet كمكتبة من جانب العميل: Microsoft.Azure.DigitalTwins.Parser. يمكنك أيضًا استخدام المكتبة مباشرةً لتصميم حل التحقق الخاص بك.
الإصدار 4.0.8 من مكتبة المحلل اللغوي هو الإصدار الموصى به حاليا للتوافق مع Azure Digital Twins.
يمكنك معرفة المزيد حول نموذج المدقق ومكتبة المحلل اللغوي، بما في ذلك أمثلة الاستخدام، في تحليل النماذج والتحقق من صحتها.
نماذج التحميل
بمجرد إنشاء النماذج، يمكنك تحميلها إلى مثيل Azure Digital Twins.
عندما تكون جاهزا لتحميل نموذج، يمكنك استخدام مقتطف التعليمات البرمجية التالي ل .NET SDK:
// 'client' is an instance of DigitalTwinsClient
// Read model file into string (not part of SDK)
// fileName is the name of the JSON model file
string dtdl = File.ReadAllText(fileName);
await client.CreateModelsAsync(new[] { dtdl });
يمكنك أيضا تحميل نماذج متعددة في معاملة واحدة.
إذا كنت تستخدم SDK، فيمكنك تحميل ملفات نماذج متعددة باستخدام الطريقة التالية CreateModels :
var dtdlFiles = Directory.EnumerateFiles(sourceDirectory, "*.json");
var dtdlModels = new List<string>();
foreach (string fileName in dtdlFiles)
{
// Read model file into string (not part of SDK)
string dtdl = File.ReadAllText(fileName);
dtdlModels.Add(dtdl);
}
await client.CreateModelsAsync(dtdlModels);
إذا كنت تستخدم واجهات برمجة تطبيقات REST أو Azure CLI، فيمكنك أيضا تحميل نماذج متعددة عن طريق وضع تعريفات نماذج متعددة في ملف JSON واحد ليتم تحميله معا. في هذه الحالة، يجب وضع النماذج في صفيف JSON داخل الملف، كما هو الحال في المثال التالي:
[
{
"@id": "dtmi:com:contoso:Planet;1",
"@type": "Interface",
"@context": "dtmi:dtdl:context;2"
},
{
"@id": "dtmi:com:contoso:Moon;1",
"@type": "Interface",
"@context": "dtmi:dtdl:context;2"
}
]
عند التحميل، يتم التحقق من صحة ملفات النماذج بواسطة الخدمة.
استرداد النماذج
يمكنك سرد النماذج المخزنة على مثيل Azure Digital Twins واستردادها.
تتضمن خياراتك ما يلي:
- استرداد نموذج واحد
- استرداد جميع الموديلات
- استرداد بيانات التعريف والتبعيات للنماذج
فيما يلي بعض الأمثلة على المكالمات:
// 'client' is a valid DigitalTwinsClient object
// Get a single model, metadata and data
Response<DigitalTwinsModelData> md1 = await client.GetModelAsync("<model-Id>");
DigitalTwinsModelData model1 = md1.Value;
// Get a list of the metadata of all available models; print their IDs
AsyncPageable<DigitalTwinsModelData> md2 = client.GetModelsAsync();
await foreach (DigitalTwinsModelData md in md2)
{
Console.WriteLine($"Type ID: {md.Id}");
}
// Get models and metadata for a model ID, including all dependencies (models that it inherits from, components it references)
AsyncPageable<DigitalTwinsModelData> md3 = client.GetModelsAsync(new GetModelsOptions { IncludeModelDefinition = true });
تستدعي SDK استرداد جميع النماذج بإرجاع DigitalTwinsModelData الكائنات. DigitalTwinsModelData يحتوي على بيانات تعريف حول النموذج المخزن في مثيل Azure Digital Twins، مثل الاسم وDTMI وتاريخ إنشاء النموذج. يتضمن الكائن DigitalTwinsModelData أيضا اختياريا النموذج نفسه. وهذا يعني أنه ، اعتمادا على المعلمات ، يمكنك استخدام استدعاء الاسترداد إما لاسترداد بيانات التعريف فقط (وهو أمر مفيد في السيناريوهات التي تريد فيها عرض قائمة واجهة مستخدم للأدوات المتاحة ، على سبيل المثال) ، أو النموذج بأكمله.
لا تقوم المكالمة RetrieveModelWithDependencies بإرجاع الطراز المطلوب فحسب ، بل تقوم أيضا بإرجاع جميع الطرز التي يعتمد عليها الطراز المطلوب.
لا يتم إرجاع النماذج بالضرورة في نموذج المستند الذي تم تحميلها فيه بالضبط. يضمن Azure Digital Twins فقط أن نموذج الإرجاع سيكون معادلا دلاليا.
تحديث النماذج
يصف هذا القسم الاعتبارات والاستراتيجيات لتحديث نماذجك.
قبل التحديث: فكر في سياق الحل بأكمله
قبل إجراء تحديثات على نماذجك، يوصى بالتفكير بشكل كلي في الحل بأكمله وتأثير تغييرات النموذج التي أنت على وشك إجرائها. غالبا ما تكون الطرز في حل Azure Digital Twins مترابطة، لذلك من المهم أن تكون على دراية بالتغييرات المتتالية حيث يتطلب تحديث نموذج واحد تحديث عدة نماذج أخرى. سيؤثر تحديث النماذج على التوائم التي تستخدم النماذج، ويمكن أن يؤثر أيضا على إدخال التعليمات البرمجية ومعالجتها وتطبيقات العميل والتقارير الآلية.
فيما يلي بعض التوصيات لمساعدتك في إدارة انتقالات النموذج بسلاسة:
- بدلا من التفكير في النماذج ككيانات منفصلة ، فكر في تطوير مجموعة النماذج بأكملها عند الاقتضاء للحفاظ على تحديث النماذج وعلاقاتها معا.
- تعامل مع النماذج مثل شفرة المصدر وقم بإدارتها في التحكم في المصدر. قم بتطبيق نفس الصرامة والاهتمام على النماذج وتغييرات النماذج التي تطبقها على التعليمات البرمجية الأخرى في الحل الخاص بك.
عندما تكون مستعدا لمتابعة عملية تحديث النماذج، يصف بقية هذا القسم الاستراتيجيات التي يمكنك استخدامها لتنفيذ التحديثات.
استراتيجيات تحديث النماذج
بمجرد تحميل نموذج إلى مثيل Azure Digital Twins، تصبح واجهة النموذج غير قابلة للتغيير، مما يعني أنه لا يوجد "تحرير" تقليدي للنماذج. لا يسمح Azure Digital Twins أيضا بإعادة تحميل نفس الطراز بالضبط أثناء وجود نموذج مطابق بالفعل في المثيل.
بدلا من ذلك، إذا كنت تريد إجراء تغييرات على نموذج، مثل التحديث displayName أو descriptionإضافة الخصائص وإزالتها، فستحتاج إلى استبدال النموذج الأصلي.
هناك استراتيجيتان للاختيار من بينهما عند استبدال نموذج:
- الاستراتيجية 1: Upload إصدار طراز جديد: Upload النموذج ، برقم إصدار جديد ، وقم بتحديث توأمك لاستخدام هذا النموذج الجديد. سيوجد كل من الإصدارين الجديد والقديم من النموذج في المثيل الخاص بك حتى تقوم بحذف أحدهما.
- استخدم هذه الاستراتيجية عندما تريد تحديث بعض التوائم التي تستخدم النموذج فقط، أو عندما تريد التأكد من أن التوائم يظلون متوافقين مع نماذجهم وقابلين للكتابة خلال انتقال النموذج.
- الاستراتيجية 2: حذف النموذج القديم وإعادة تحميله: حذف النموذج الأصلي وتحميل النموذج الجديد بنفس الاسم والمعرف (قيمة DTMI) في مكانه. يستبدل النموذج القديم تماما بالنموذج الجديد.
- استخدم هذه الاستراتيجية عندما تريد تحديث جميع التوائم التي تستخدم هذا النموذج في وقت واحد ، بالإضافة إلى جميع التعليمات البرمجية التي تتفاعل مع النماذج. إذا كان تحديث النموذج الخاص بك يحتوي على تغيير فاصل مع تحديث النموذج ، فسيكون التوائم غير متوافقين مع نماذجهم لفترة قصيرة أثناء نقلهم من النموذج القديم إلى النموذج الجديد ، مما يعني أنهم لن يتمكنوا من أخذ أي تحديثات حتى يتم تحميل النموذج الجديد ويتوافق التوائم معه.
ملاحظة
لا ينصح بإجراء تغييرات جذرية على نماذجك خارج نطاق التطوير.
تابع إلى الأقسام التالية لقراءة المزيد حول كل خيار من خيارات الاستراتيجية بالتفصيل.
الاستراتيجية 1: Upload إصدار نموذجي جديد
يتضمن هذا الخيار إنشاء إصدار جديد من النموذج وتحميله إلى المثيل الخاص بك.
لا تقوم هذه العملية بالكتابة فوق الإصدارات السابقة من النموذج، لذلك ستتعايش إصدارات متعددة من النموذج في المثيل الخاص بك حتى تقوم بإزالتها. نظرا لأن إصدار النموذج الجديد وإصدار النموذج القديم يتعايشان ، يمكن للتوائم استخدام الإصدار الجديد من النموذج أو الإصدار القديم ، مما يعني أن تحميل إصدار جديد من النموذج لا يؤثر تلقائيا على التوائم الحالية. سيبقى التوائم الحالية كحالات لإصدار الطراز القديم ، ويمكنك تحديث هذه التوائم إلى إصدار الطراز الجديد عن طريق تصحيحها.
لاستخدام هذه الاستراتيجية، اتبع الخطوات أدناه.
1. إنشاء وتحميل إصدار نموذج جديد
لإنشاء نسخة جديدة من نموذج موجود، ابدأ بـ DTDL للنموذج الأصلي. تحديث الحقول التي تريد تغييرها أو إضافتها أو إزالتها.
بعد ذلك، ضع علامة على هذا النموذج كإصدار أحدث من النموذج عن طريق تحديث id حقل النموذج. يمثل القسم الأخير من معرف النموذج ، بعد ;، رقم الطراز. للإشارة إلى أن هذا النموذج أصبح الآن إصدارا أكثر تحديثا، قم بزيادة الرقم الموجود في نهاية id القيمة إلى أي رقم أكبر من رقم الإصدار الحالي.
على سبيل المثال، إذا كان معرف الطراز السابق يبدو هكذا:
"@id": "dtmi:com:contoso:PatientRoom;1",
قد يبدو الإصدار 2 من هذا النموذج كما يلي:
"@id": "dtmi:com:contoso:PatientRoom;2",
ثم قم بتحميل الإصدار الجديد من النموذج إلى المثيل الخاص بك.
سيكون هذا الإصدار من النموذج متاحًا في مثلك لاستخدامه في التوائم الرقمية. لا يقوم بالكتابة فوق الإصدارات السابقة من النموذج ، لذلك تتعايش الآن إصدارات متعددة من النموذج في المثيل الخاص بك.
2. تحديث عناصر الرسم البياني حسب الحاجة
بعد ذلك، قم بتحديث التوائم والعلاقات في المثيل الخاص بك لاستخدام إصدار النموذج الجديد بدلا من القديم.
يمكنك استخدام الإرشادات التالية لتحديث التوائم وتحديث العلاقات. ستبدو عملية التصحيح لتحديث نموذج التوأم كما يلي:
[
{
"op": "replace",
"path": "/$metadata/$model",
"value": "dtmi:example:foo;1"
}
]
هام
عند تحديث التوائم ، استخدم نفس التصحيح لتحديث كل من معرف النموذج (إلى إصدار الطراز الجديد) وأي حقول يجب تغييرها على التوأم لجعلها متوافقة مع النموذج الجديد.
قد تحتاج أيضا إلى تحديث العلاقات والنماذج الأخرى في المثيل الخاص بك التي تشير إلى هذا النموذج، لجعلها تشير إلى إصدار النموذج الجديد. ستحتاج إلى إجراء عملية تحديث نموذج أخرى لتحقيق هذا الغرض ، لذا ارجع إلى بداية هذا القسم وكرر العملية لأي طرز أخرى تحتاج إلى تحديث.
3. (اختياري) إيقاف التشغيل أو حذف إصدار الطراز القديم
إذا كنت لن تستخدم إصدار الطراز القديم بعد الآن ، فيمكنك إيقاف تشغيل الطراز القديم. يسمح هذا الإجراء للنموذج بالبقاء موجودا في المثيل ، ولكن لا يمكن استخدامه لإنشاء توائم رقمية جديدة.
يمكنك أيضا حذف النموذج القديم تماما إذا كنت لا تريده في المثيل بعد الآن.
تحتوي الأقسام المرتبطة أعلاه على أمثلة للتعليمات البرمجية والاعتبارات الخاصة بإيقاف تشغيل النماذج وحذفها.
الاستراتيجية 2: حذف النموذج القديم وإعادة تحميله
بدلا من زيادة إصدار نموذج، يمكنك حذف نموذج بالكامل وإعادة تحميل نموذج تم تحريره إلى المثيل.
لا يتذكر Azure Digital Twins أنه تم تحميل النموذج القديم على الإطلاق، لذلك سيكون هذا الإجراء مثل تحميل نموذج جديد تماما. سيتم تبديل التوائم في الرسم البياني التي تستخدم النموذج تلقائيا إلى التعريف الجديد بمجرد توفره. اعتمادا على كيفية اختلاف التعريف الجديد عن التعريف القديم ، قد يكون لهذين التوائم خصائص وعلاقات تتطابق مع التعريف المحذوف وغير صالحة مع التعريف الجديد ، لذلك قد تحتاج إلى تصحيحها للتأكد من بقائها صالحة.
لاستخدام هذه الاستراتيجية، اتبع الخطوات أدناه.
1. حذف النموذج القديم
نظرا لأن Azure Digital Twins لا يسمح بطرازين لهما نفس المعرف، ابدأ بحذف النموذج الأصلي من المثيل الخاص بك.
ملاحظة
إذا كان لديك نماذج أخرى تعتمد على هذا النموذج (من خلال التوريث أو المكونات)، فستحتاج إلى إزالة هذه المراجع قبل أن تتمكن من حذف النموذج. يمكنك تحديث هذه النماذج التابعة أولا لإزالة المراجع مؤقتا، أو حذف النماذج التابعة وإعادة تحميلها في خطوة لاحقة.
استخدم الإرشادات التالية لحذف الطراز الأصلي. سيترك هذا الإجراء توأمك الذين كانوا يستخدمون هذا النموذج مؤقتا "يتامى" ، لأنهم يستخدمون الآن نموذجا لم يعد موجودا. سيتم إصلاح هذه الحالة في الخطوة التالية عند إعادة تحميل النموذج المحدث.
2. إنشاء وتحميل نموذج جديد
ابدأ ب DTDL للنموذج الأصلي. تحديث الحقول التي تريد تغييرها أو إضافتها أو إزالتها.
بعد ذلك ، قم بتحميل النموذج إلى المثيل ، كما لو كان نموذجا جديدا يتم تحميله لأول مرة.
3. تحديث عناصر الرسم البياني حسب الحاجة
الآن بعد أن تم تحميل النموذج الجديد الخاص بك بدلا من النموذج القديم ، سيبدأ التوأمان في الرسم البياني تلقائيا في استخدام تعريف النموذج الجديد بمجرد انتهاء صلاحية التخزين المؤقت في مثيلك وإعادة تعيينه. قد تستغرق هذه العملية من 10 إلى 15 دقيقة أو أكثر، اعتمادا على حجم الرسم البياني الخاص بك. بعد ذلك، يجب أن تكون الخصائص الجديدة والمتغيرة على النموذج الخاص بك قابلة للوصول، ولن يمكن الوصول إلى الخصائص التي تمت إزالتها بعد الآن.
ملاحظة
إذا قمت بإزالة نماذج تابعة أخرى في وقت سابق لحذف النموذج الأصلي، فأعد تحميلها الآن بعد إعادة تعيين ذاكرة التخزين المؤقت. إذا قمت بتحديث النماذج التابعة لإزالة المراجع إلى النموذج الأصلي مؤقتا، فيمكنك تحديثها مرة أخرى لإعادة المرجع.
بعد ذلك، قم بتحديث التوائم والعلاقات في المثيل الخاص بك بحيث تتطابق خصائصها مع الخصائص المحددة بواسطة النموذج الجديد. قبل اكتمال هذه الخطوة، لا يزال من الممكن قراءة التوائم التي لا تتطابق مع نموذجها، ولكن لا يمكن الكتابة إليها. لمزيد من المعلومات حول حالة التوائم بدون نموذج صالح، راجع التوائم بدون نماذج.
هناك طريقتان لتحديث التوائم والعلاقات للنموذج الجديد بحيث تكون قابلة للكتابة مرة أخرى:
- قم بتصحيح التوائم والعلاقات حسب الحاجة حتى تتناسب مع النموذج الجديد. يمكنك استخدام الإرشادات التالية لتحديث التوائم وتحديث العلاقات.
- إذا أضفت خصائص: لا يلزم تحديث التوائم والعلاقات للحصول على القيم الجديدة، نظرا لأن التوائم التي تفتقد القيم الجديدة ستظل توائم صالحة. يمكنك تصحيحها كيفما تشاء لإضافة قيم للخصائص الجديدة.
- إذا قمت بإزالة الخصائص: يلزم تصحيح التوائم لإزالة الخصائص التي أصبحت الآن غير صالحة مع النموذج الجديد.
- إذا قمت بتحديث الخصائص: يلزم تصحيح التوائم لتحديث قيم الخصائص التي تم تغييرها لتكون صالحة مع النموذج الجديد.
- احذف التوائم والعلاقات التي تستخدم النموذج، وأعد إنشائها. يمكنك استخدام الإرشادات التالية لحذف التوائم وإعادة إنشاء التوائموحذف العلاقاتوإعادة إنشاء العلاقات.
- قد ترغب في إجراء هذه العملية إذا كنت تجري العديد من التغييرات على النموذج ، وسيكون من الصعب تحديث التوائم الموجودة لمطابقتها. ومع ذلك ، يمكن أن يكون الترفيه معقدا إذا كان لديك العديد من التوائم المترابطة من خلال العديد من العلاقات.
إزالة النماذج
يمكن إزالة النماذج من الخدمة بإحدى طريقتين:
- إيقاف التشغيل: بمجرد إيقاف النموذج عن الخدمة، لم يعد بإمكانك استخدامه لإنشاء توائم رقمية جديدة. لا تتأثر التوائم الرقمية الحالية التي تستخدم هذا النموذج بالفعل، لذلك لا يزال بإمكانك تحديثها بأشياء مثل تغييرات الممتلكات وإضافة العلاقات أو حذفها.
- الحذف: ستؤدي هذه العملية إلى إزالة النموذج بالكامل من الحل. لم يعد أي توائم كانوا يستخدمون هذا النموذج مرتبطين بأي نموذج صالح، لذلك يتم التعامل معهم كما لو لم يكن لديهم نموذج على الإطلاق. لا يزال بإمكانك قراءة هذين التوائم ، ولكن لا يمكنك إجراء أي تحديثات عليهما حتى تتم إعادة تعيينهما إلى نموذج مختلف.
هذه العمليات هي ميزات منفصلة ولا تؤثر على بعضها البعض ، على الرغم من أنه يمكن استخدامها معا لإزالة نموذج تدريجيا.
وقف التشغيل
لإيقاف تشغيل نموذج، يمكنك استخدام طريقة DecommissionModel من SDK:
// 'client' is a valid DigitalTwinsClient
await client.DecommissionModelAsync(dtmiOfPlanetInterface);
// Write some code that deletes or transitions digital twins
//...
يمكنك أيضا إيقاف تشغيل نموذج باستخدام استدعاء واجهة برمجة تطبيقات REST DigitalTwinModels Update. الخاصية decommissioned هي الخاصية الوحيدة التي يمكن استبدالها باستدعاء واجهة برمجة التطبيقات هذا. سيبدو مستند JSON Patch كالتالي:
[
{
"op": "replace",
"path": "/decommissioned",
"value": true
}
]
يتم تضمين حالة إيقاف تشغيل النموذج في السجلات التي ModelData يتم إرجاعها بواسطة واجهات برمجة تطبيقات استرداد النموذج.
حذف
يمكنك حذف جميع النماذج في المثال الخاص بك مرة واحدة، أو يمكنك القيام بذلك على أساس فردي.
للحصول على مثال حول كيفية حذف كافة الطرز في نفس الوقت، راجع العينات الشاملة لمستودع Azure Digital Twins في GitHub. يحتوي ملف CommandLoop.cs على دالة تحتوي على CommandDeleteAllModels تعليمات برمجية لحذف كافة النماذج في المثيل.
لحذف نموذج فردي، اتبع الإرشادات والاعتبارات الواردة في بقية هذا القسم.
قبل الحذف: متطلبات الحذف
بشكلٍ عام، يمكن حذف النماذج في أي وقت.
الاستثناء هو النماذج التي تعتمد عليها النماذج الأخرى ، إما مع علاقة extends أو كمكون. على سبيل المثال، إذا كان نموذج غرفة الاجتماعات يوسع نموذج الغرفة، ويحتوي على نموذج ACUnit كمكون، فلا يمكنك حذف Room أو ACUnit حتى تقوم غرفة المؤتمرات بإزالة هذه المراجع المعنية.
يمكنك القيام بذلك عن طريق تحديث النموذج التابع لإزالة التبعيات، أو حذف النموذج التابع تماما.
أثناء الحذف: عملية الحذف
حتى إذا كان النموذج يفي بمتطلبات حذفه على الفور، فقد ترغب في اتباع بعض الخطوات أولاً لتجنب العواقب غير المقصودة للتوائم المتروكين. فيما يلي بعض الخطوات التي يمكن أن تساعدك في إدارة العملية:
- أولا، إيقاف تشغيل النموذج
- انتظر بضع دقائق ، للتأكد من أن الخدمة قد عالجت أي طلبات إنشاء مزدوجة في اللحظة الأخيرة تم إرسالها قبل إيقاف التشغيل
- الاستعلام عن التوائم حسب الطراز لرؤية جميع التوائم التي تستخدم النموذج الذي تم إيقاف تشغيله الآن
- احذف التوائم إذا لم تعد في حاجة إليها، أو قم بتثبيتها في نموذج جديد إذا لزم الأمر. يمكنك أيضا اختيار تركهم وشأنهم ، وفي هذه الحالة سيصبحون توأما بدون نماذج بمجرد حذف النموذج. راجع القسم التالي للتعرف على الآثار المترتبة على هذه الحالة.
- انتظر لبضع دقائق أخرى للتأكد من أن التغييرات قد تسربت من خلال
- حذف النموذج
لحذف نموذج، يمكنك استخدام استدعاء DeleteModel SDK:
// 'client' is a valid DigitalTwinsClient
await client.DeleteModelAsync(IDToDelete);
يمكنك أيضا حذف نموذج باستخدام استدعاء واجهة برمجة تطبيقات DigitalTwinModels حذف REST.
بعد الحذف: توأمان بدون نماذج
بمجرد حذف النموذج، فإن أي توائم رقمية كانت تستخدم النموذج تعتبر الآن بدون نموذج. لا يوجد استعلام يمكن أن يعطيك قائمة بجميع التوائم في هذه الحالة - على الرغم من أنه لا يزال بإمكانك الاستعلام عن التوائم بواسطة النموذج المحذوف لمعرفة التوائم المتأثرة.
فيما يلي نظرة عامة على ما يمكنك وما لا يمكنك فعله مع التوائم التي ليس لديها نموذج.
أشياء يمكنك فعلها:
- الاستعلام عن التوأم
- قراءة الخصائص
- قراءة العلاقات الصادرة
- إضافة وحذف العلاقات الواردة (كما هو الحال في ، لا يزال بإمكان التوائم الأخرى تكوين علاقات مع هذا التوأم)
targetلا يزال تعريف العلاقة يعكس DTMI للنموذج المحذوف. يمكن أن تعمل هنا أيضًا علاقة بدون هدف محدد.
- حذف العلاقات
- حذف التوأم
أشياء لا يمكنك فعلها:
- تحرير العلاقات الصادرة (كما هو الحال في العلاقات من هذا التوأم إلى التوائم الأخرى)
- تحرير الخصائص
بعد الحذف: إعادة تحميل نموذج
بعد حذف النموذج، قد تقرر لاحقًا تحميل نموذج جديد بالمعرف نفسه الذي قمت بحذفه. إليك ما يحدث في هذه الحالة.
- من وجهة نظر متجر الحلول ، هذه العملية هي نفسها تحميل نموذج جديد تماما. لا تتذكر الخدمة أن الخدمة القديمة قد تم تحميلها على الإطلاق.
- إذا كان هناك أي توائم متبقية في الرسم البياني تشير إلى النموذج المحذوف ، فلم تعد يتيمة. معرف النموذج هذا صالح مرة أخرى مع التعريف الجديد. ومع ذلك، إذا كان التعريف الجديد للنموذج مختلفا عن تعريف النموذج الذي تم حذفه، فقد يكون لهذين التوائم خصائص وعلاقات تتطابق مع التعريف المحذوف ولا تكون صالحة مع التعريف الجديد.
لا يمنع Azure Digital Twins هذه الحالة، لذا احرص على تصحيح التوائم بشكل مناسب للتأكد من بقائها صالحة من خلال مفتاح تعريف الطراز.
الخطوات التالية
تعرف على كيفية إنشاء التوائم الرقمية وإدارتها استنادا إلى نماذجك:
