Azure Digital Twins-modellek kezelése
Ez a cikk bemutatja, hogyan kezelheti a modelleket az Azure Digital Twins-példányban. A felügyeleti műveletek közé tartozik a modellek feltöltése, érvényesítése, lekérése és törlése.
Előfeltételek
Az Azure Digital Twins ebben a cikkben való használatához szüksége lesz egy Azure Digital Twins-példányra és a használatához szükséges engedélyekre. Ha már beállított egy Azure Digital Twins-példányt, használhatja ezt a példányt, és ugorjon a következő szakaszra. Ellenkező esetben kövesse a példány és a hitelesítés beállítása című témakör utasításait. Az utasítások olyan információkat tartalmaznak, amelyek segítenek ellenőrizni, hogy sikeresen végrehajtotta-e az egyes lépéseket.
A példány beállítása után jegyezze fel a példány állomásnevét. A gazdagép nevét az Azure Portalon találja.
Fejlesztői felületek
Ez a cikk bemutatja, hogyan hajthat végre különböző felügyeleti műveleteket a .NET (C#) SDK használatával. Ugyanezeket a felügyeleti hívásokat az Azure Digital Twins API-kban és SDK-kban leírt egyéb nyelvi SDK-k használatával is létrehozhatja.
A műveletek végrehajtásához használható egyéb fejlesztői felületek a következők:
Visualization
Az Azure Digital Twins Explorer egy vizuális eszköz az Azure Digital Twins-gráf adatainak feltárására. Az Explorerrel megtekintheti, lekérdezheti és szerkesztheti modelljeit, ikerpéldányait és kapcsolatait.
Az Azure Digital Twins Explorer eszközről az Azure Digital Twins Explorerben olvashat. A funkciók használatának részletes lépéseit az Azure Digital Twins Explorer használata című témakörben találja.
Így néz ki a vizualizáció:
Modellek létrehozása
Létrehozhat saját modelleket az alapoktól, vagy használhatja az iparág számára elérhető meglévő ontologies-eket.
Modellek létrehozása
Az Azure Digital Twins modelljei DTDL-ben vannak megírva, és JSON-fájlokként vannak mentve. A Visual Studio Code-hoz elérhető egy DTDL-bővítmény is, amely szintaxisellenőrzést és egyéb funkciókat biztosít a DTDL-dokumentumok írásának megkönnyítése érdekében.
Vegyünk egy példát, amelyben egy kórház digitálisan meg szeretné jelölni a szobáikat. Minden helyiség tartalmaz egy intelligens szappanadagolót a kézmosás monitorozásához, valamint érzékelőket a helyiségen áthaladó forgalom figyeléséhez.
A megoldás első lépése a kórház aspektusait képviselő modellek létrehozása. Ebben a forgatókönyvben egy betegszoba a következőképpen írható le:
{
"@id": "dtmi:com:contoso:PatientRoom;1",
"@type": "Interface",
"@context": "dtmi:dtdl:context;3",
"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"
}
]
}
Megjegyzés:
Ez egy olyan JSON-fájl mintatörzse, amelyben egy modell definiálva és mentve van, és egy ügyfélprojekt részeként tölthető fel. A REST API-hívás viszont a fentihez hasonló modelldefiníciók tömbjét veszi igénybe (amely a .NET SDK-ban IEnumerable<string>
van leképezve). Így ezt a modellt közvetlenül a REST API-ban használhatja, szögletes zárójelekkel körülvéve.
Ez a modell meghatározza a betegszoba nevét és egyedi azonosítóját, valamint a látogatók számát és a kézmosás állapotát ábrázoló tulajdonságokat. Ezek a számlálók a mozgásérzékelőkről és az intelligens szappanadagolókról frissülnek, és együtt lesznek felhasználva egy handwash percentage
tulajdonság kiszámításához. A modell egy kapcsolatot hasDevices
is meghatároz, amely a szobamodellen alapuló digitális ikerpéldányok tényleges eszközökhöz való csatlakoztatására szolgál.
Megjegyzés:
Vannak olyan DTDL-funkciók, amelyeket az Azure Digital Twins jelenleg nem támogat, beleértve a writable
tulajdonságok és kapcsolatok attribútumát, valamint minMultiplicity
maxMultiplicity
a kapcsolatokat. További információ: Szolgáltatásspecifikus DTDL-megjegyzések.
Ezt a módszert követve modelleket határozhat meg a kórház osztályaihoz, zónáihoz vagy magához a kórházhoz.
Ha a cél egy olyan átfogó modellkészlet létrehozása, amely leírja az iparági tartományt, fontolja meg, hogy létezik-e meglévő iparági ontológia, amellyel egyszerűbbé teheti a modellkészítést. A következő szakasz részletesebben ismerteti az iparági ontologiákat.
Meglévő iparági szabványú ontologikák használata
Az ontológia olyan modellek készlete, amelyek átfogóan leírják egy adott tartományt, például a gyártást, az épületszerkezeteket, az IoT-rendszereket, az intelligens városokat, az energiahálózatokat, a webes tartalmakat stb.
Ha a megoldás egy olyan iparághoz tartozik, amely bármilyen modellezési szabványt használ, fontolja meg, hogy egy már meglévő, az iparág számára tervezett modellkészlettel kezdje ahelyett, hogy a modelleket az alapoktól tervezze. A Microsoft tartományi szakértőkkel együttműködve DTDL-modelleket hozott létre az iparági szabványok alapján, hogy a lehető legkisebbre csökkentse az újragondolást, és ösztönözze a konzisztenciát és az egyszerűséget az iparági megoldásokban. Ezekről az ontológiákról bővebben is olvashat, többek között arról, hogyan használhatók, és milyen ontológiák érhetők el most a Mi az ontológia? című témakörben.
Szintaxis érvényesítése
A modell létrehozása után ajánlott offline állapotban ellenőrizni a modelleket, mielőtt feltöltené őket az Azure Digital Twins-példányba.
A modellek ellenőrzéséhez .NET ügyféloldali DTDL-elemzési kódtárat biztosít a NuGet: DTDLParser. Az elemzési kódtárat közvetlenül a C#-kódban használhatja. Az elemző mintahasználatát a GitHub DTDLParserResolveSample szolgáltatásában is megtekintheti.
Modellek feltöltése
A modellek létrehozása után feltöltheti őket az Azure Digital Twins-példányba.
Amikor készen áll egy modell feltöltésére, a .NET SDK-hoz a következő kódrészletet használhatja:
// '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 });
Feltöltés esetén a modellfájlokat a szolgáltatás ellenőrzi.
Általában több modellt kell feltöltenie a szolgáltatásba. Többféleképpen is feltölthet egyszerre több modellt egyetlen tranzakcióban. A stratégia kiválasztásához vegye figyelembe a modellkészlet méretét a szakasz további részében leírtak szerint.
Kis modellkészletek feltöltése
Kisebb modellkészletek esetén egyszerre több modellt is feltölthet egyedi API-hívások használatával. Az Azure Digital Twins korlátai között ellenőrizheti, hogy hány modell tölthető fel egyetlen API-hívásba.
Ha az SDK-t használja, több modellfájlt is feltölthet az CreateModels
alábbi módszerrel:
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);
Ha REST API-kat vagy Azure CLI-t használ, több modellt is feltölthet, ha több modelldefiníciót helyez el egyetlen JSON-fájlban, amelyet együtt szeretne feltölteni. Ebben az esetben a modelleket egy JSON-tömbbe kell helyezni a fájlon belül, például az alábbi példában:
[
{
"@id": "dtmi:com:contoso:Planet;1",
"@type": "Interface",
"@context": "dtmi:dtdl:context;3"
},
{
"@id": "dtmi:com:contoso:Moon;1",
"@type": "Interface",
"@context": "dtmi:dtdl:context;3"
}
]
Nagyméretű modellkészletek feltöltése az Import Jobs API-val
Nagy modellkészletek esetén az Import Jobs API használatával egyszerre több modellt is feltölthet egyetlen API-hívásba. Az API egyszerre akár az Azure Digital Twins-korlátot is elfogadhatja a példányokban lévő modellek számára, és szükség esetén automatikusan átrendezi a modelleket a közöttük lévő függőségek feloldásához. Ez a módszer az Azure Blob Storage használatát, valamint írási engedélyeket igényel az Azure Digital Twins-példányban modellekhez és tömeges feladatokhoz.
Tipp.
Az Importálási feladatok API lehetővé teszi az ikerpéldányok és kapcsolatok importálását ugyanabban a hívásban, így egyszerre hozhatja létre a gráf összes részét. Erről a folyamatról további információt a Modellek, ikerpéldányok és kapcsolatok tömeges feltöltése az Import Jobs API-val című témakörben talál.
A modellek tömeges importálásához NDJSON-fájlként kell strukturálnia a modelleket (és a tömeges importálási feladatban szereplő egyéb erőforrásokat). A Models
szakasz közvetlenül a szakasz után Header
jelenik meg, így ez lesz a fájl első gráfadatszakasza. Az Importálási feladatok API bevezetőjében megtekintheti az importálási példafájlt és egy mintaprojektet, amellyel létrehozhatja ezeket a fájlokat.
Ezután a fájlt fel kell tölteni egy hozzáfűző blobba az Azure Blob Storage-ban. Az Azure Storage-tárolók létrehozásával kapcsolatos utasításokért lásd : Tároló létrehozása. Ezután töltse fel a fájlt az előnyben részesített feltöltési módszerrel (néhány lehetőség az AzCopy parancs, az Azure CLI vagy az Azure Portal).
Miután feltöltötte az NDJSON-fájlt a tárolóba, kérje le annak URL-címét a blobtárolóban. Ezt az értéket később fogja használni a tömeges importálási API-hívás törzsében.
Az alábbi képernyőképen egy blobfájl URL-értéke látható az Azure Portalon:
Ezután a fájl használható egy Importálási feladatok API-hívásban . Meg kell adnia a bemeneti fájl blobtároló URL-címét, valamint egy új blobtároló URL-címét, amely jelzi, hogy hol szeretné tárolni a kimeneti naplót a szolgáltatás létrehozásakor.
Modellek lekérése
Listázhatja és lekérheti az Azure Digital Twins-példányban tárolt modelleket.
A lehetőségek a következők:
- Egyetlen modell lekérése
- Az összes modell lekérése
- Modellek metaadatainak és függőségeinek lekérése
Íme néhány példahívás:
// '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 });
A modellek lekérésére irányuló SDK-hívások mind visszaadják DigitalTwinsModelData
az objektumokat. DigitalTwinsModelData
Az Azure Digital Twins-példányban tárolt modell metaadatait tartalmazza, például a nevet, a DTMI-t és a modell létrehozási dátumát. Az DigitalTwinsModelData
objektum magában foglalja magát a modellt is. Ez azt jelenti, hogy a paraméterektől függően a lekéréses hívások segítségével lekérheti a metaadatokat (ami olyan helyzetekben hasznos, ahol például az elérhető eszközök felhasználói felületi listáját szeretné megjeleníteni), vagy a teljes modellt.
A RetrieveModelWithDependencies
hívás nem csak a kért modellt adja vissza, hanem az összes modellt is, amelytől a kért modell függ.
A modellek nem feltétlenül pontosan abban a dokumentuműrlapon jelennek meg, amelybe feltöltötték őket. Az Azure Digital Twins csak azt garantálja, hogy a visszatérési űrlap szemantikailag egyenértékű lesz.
Modellek frissítése
Ez a szakasz a modellek frissítésével kapcsolatos szempontokat és stratégiákat ismerteti.
Frissítés előtt: Gondolja át a teljes megoldás kontextusát
Mielőtt frissítené a modelleket, érdemes holisztikusan végiggondolni a teljes megoldást és a készülő modellmódosítások hatását. Az Azure Digital Twins-megoldások modelljei gyakran kapcsolódnak egymáshoz, ezért fontos tisztában lenni a kaszkádolt változásokkal, ahol az egyik modell frissítése több másikat is szükségessé tesz. A modellek frissítése hatással lesz a modelleket használó ikerpéldányokra, és hatással lehet a bejövő és feldolgozási kódra, az ügyfélalkalmazásokra és az automatizált jelentésekre is.
Az alábbiakban néhány javaslatot talál a modellváltások zökkenőmentes kezeléséhez:
- Ahelyett, hogy a modelleket különálló entitásokként képzeli el, fontolja meg a teljes modellkészlet megfelelő módon történő kiépítését, hogy a modellek és kapcsolataik naprakészek maradjanak.
- Kezelje a modelleket, például a forráskódot, és kezelje őket a forrásvezérlőben. Alkalmazza ugyanazt a szigort és figyelmet a megoldásokban szereplő más kódokra alkalmazott modellekre és modellmódosításokra.
Ha készen áll a modellek frissítési folyamatának folytatására, a szakasz további része a frissítések implementálásához használható stratégiákat ismerteti.
Stratégiák a modellek frissítéséhez
Miután feltöltött egy modellt az Azure Digital Twins-példányba, a modell felülete nem módosítható, ami azt jelenti, hogy a modellek hagyományos "szerkesztése" nem történik meg. Az Azure Digital Twins nem teszi lehetővé ugyanannak a modellnek az újrafeltöltését, miközben a példányban már létezik egy egyező modell.
Ha ehelyett módosítani szeretne egy modellt (például a tulajdonságok frissítését displayName
vagy description
hozzáadását vagy eltávolítását), akkor az eredeti modellt kell lecserélnie.
A modell cseréjekor két stratégia közül választhat:
- 1. stratégia: Új modellverzió feltöltése: Töltse fel a modellt egy új verziószámmal, és frissítse az ikerpéldányokat az új modell használatára. A modell új és régi verziói is létezni fognak a példányban, amíg nem töröl egyet.
- Ezt a stratégiát akkor használja, ha csak néhány olyan ikerpéldányt szeretne frissíteni, amelyek a modellt használják, vagy ha meg szeretné győződni arról, hogy az ikerpéldányok megfelelnek a modelljeiknek, és a modellváltással írhatók.
- 2. stratégia: Régi modell törlése és újbóli feltöltése: Törölje az eredeti modellt, és töltse fel az új modellt ugyanazzal a névvel és azonosítóval (DTMI-értékkel) a helyére. Teljesen lecseréli a régi modellt az újra.
- Ezt a stratégiát akkor használja, ha egyszerre szeretné frissíteni a modellt használó összes ikerpéldányt, valamint a modellekre reagáló összes kódot. Ha a modellfrissítés kompatibilitástörő változást tartalmaz a modellfrissítéssel kapcsolatban, az ikerpéldányok rövid ideig nem lesznek konformak a modelljeik között, miközben a régi modellről az újra váltanak, ami azt jelenti, hogy addig nem fognak tudni frissítéseket végrehajtani, amíg az új modell fel nem tölt, és az ikerpéldányok meg nem felelnek annak.
Megjegyzés:
A modellek kompatibilitástörő módosításait a fejlesztésen kívül is el lehet kerülni.
A következő szakaszokban részletesebben is tájékozódhat az egyes stratégiai lehetőségekről.
1. stratégia: Új modellverzió feltöltése
Ez a beállítás magában foglalja a modell új verziójának létrehozását és a példányba való feltöltését.
Ez a művelet nem írja felül a modell korábbi verzióit, így a modell több verziója együtt fog létezni a példányban, amíg el nem távolítja őket. Mivel az új modell verziója és a régi modell verziója együtt létezik, az ikerpéldányok használhatják a modell új vagy régebbi verzióját, ami azt jelenti, hogy a modell új verziójának feltöltése nem befolyásolja automatikusan a meglévő ikerpéldányokat. A meglévő ikerpéldányok a régi modellverzió példányai maradnak, és javításukkal frissítheti ezeket az ikerpéldányokat az új modellverzióra.
A stratégia használatához kövesse az alábbi lépéseket.
1. Új modellverzió létrehozása és feltöltése
Meglévő modell új verziójának létrehozásához kezdje az eredeti modell DTDL-jével. Frissítse, vegye fel vagy távolítsa el a módosítani kívánt mezőket.
Ezután jelölje meg ezt a modellt a modell újabb verziójaként a id
modell mezőjének frissítésével. A modellazonosító utolsó szakasza a ;
modell számát jelöli. Ha azt szeretné jelezni, hogy ez a modell most már frissített verzió, növelje az érték végén id
lévő számot az aktuális verziószámnál nagyobb számra.
Ha például a korábbi modellazonosító így nézett ki:
"@id": "dtmi:com:contoso:PatientRoom;1",
A modell 2. verziója a következőképpen nézhet ki:
"@id": "dtmi:com:contoso:PatientRoom;2",
Ezután töltse fel a modell új verzióját a példányba.
A modell ezen verziója ezután elérhető lesz a példányban a digitális ikerpéldányokhoz való használatra. Nem írja felül a modell korábbi verzióit, így a modell több verziója is együtt létezik a példányban.
2. Szükség szerint frissítse a gráfelemeket
Ezután frissítse a példány ikerpéldányait és kapcsolatait, hogy a régi helyett az új modellverziót használja.
Az alábbi utasítások segítségével frissítheti az ikerpéldányokat és frissítheti a kapcsolatokat. Az ikerpéldány modelljének frissítésére irányuló javításművelet a következőképpen fog kinézni:
[
{
"op": "replace",
"path": "/$metadata/$model",
"value": "dtmi:example:foo;1"
}
]
Fontos
Az ikerpéldányok frissítésekor ugyanazt a javítást használva frissítse a modellazonosítót (az új modellverzióra) és az ikerpéldányon módosítandó mezőket, hogy azok megfeleljenek az új modellnek.
Előfordulhat, hogy frissítenie kell a modellre hivatkozó kapcsolatokat és más modelleket is, hogy az új modellverzióra hivatkozzon. Ehhez egy másik modellfrissítési műveletet kell végrehajtania, ezért térjen vissza a szakasz elejére, és ismételje meg a folyamatot minden további frissítésre szoruló modell esetében.
3. (Nem kötelező) A régi modellverzió leszerelése vagy törlése
Ha már nem a régi modellverziót használja, a régebbi modellt is le lehet szerelni. Ez a művelet lehetővé teszi, hogy a modell megőrizze a példányban meglévőt, de nem használható új digitális ikerpéldányok létrehozására.
A régi modellt teljesen törölheti is, ha már nem szeretné, hogy a példányban szerepelhessen.
A fent hivatkozott szakaszok példakódot és a modellek leszerelésével és törlésével kapcsolatos szempontokat tartalmaznak.
2. stratégia: Régi modell törlése és újbóli feltöltése
A modell verziószámának növelése helyett teljesen törölheti a modellt, és újra feltöltheti a szerkesztett modellt a példányba.
Az Azure Digital Twins nem emlékszik a régi modell feltöltésére, ezért ez a művelet olyan lesz, mint egy teljesen új modell feltöltése. A modellt használó ikerpéldányok automatikusan átállnak az új definícióra, amint az elérhető. Attól függően, hogy az új definíció miben különbözik a régitől, előfordulhat, hogy ezek az ikerpéldányok olyan tulajdonságokkal és kapcsolatokkal rendelkeznek, amelyek megfelelnek a törölt definíciónak, és nem érvényesek az új definícióval, ezért előfordulhat, hogy ki kell javítani őket, hogy biztosan érvényesek maradjanak.
A stratégia használatához kövesse az alábbi lépéseket.
1. Régi modell törlése
Mivel az Azure Digital Twins nem engedélyezi két azonos azonosítójú modellt, először törölje az eredeti modellt a példányból.
Megjegyzés:
Ha a modelltől függő más modellekkel rendelkezik (örökléssel vagy összetevőkkel), el kell távolítania ezeket a hivatkozásokat, mielőtt törölné a modellt. Ezeket a függő modelleket először frissítheti, hogy ideiglenesen eltávolítsa a hivatkozásokat, vagy törölje a függő modelleket, és egy későbbi lépésben újra betöltse őket.
Az eredeti modell törléséhez kövesse az alábbi utasításokat. Ez a művelet ideiglenesen "árva" állapotban hagyja a modellt használó ikerpéldányokat, mivel most már nem létező modellt használnak. Ezt az állapotot a következő lépésben kijavítjuk, amikor újra feltölti a frissített modellt.
2. Új modell létrehozása és feltöltése
Kezdje az eredeti modell DTDL-jével. Frissítse, vegye fel vagy távolítsa el a módosítani kívánt mezőket.
Ezután töltse fel a modellt a példányra, mintha az első alkalommal lett volna feltöltve egy új modell.
3. Szükség szerint frissítse a gráfelemeket
Most, hogy az új modell a régi helyett lett feltöltve, a gráf ikerpéldányai automatikusan elkezdik használni az új modelldefiníciót, amint a példány gyorsítótárazása lejár és alaphelyzetbe áll. Ez a folyamat a gráf méretétől függően akár 10-15 percet is igénybe vehet. Ezt követően a modell új és módosított tulajdonságainak akadálymentesnek kell lenniük, és az eltávolított tulajdonságok többé nem lesznek elérhetők.
Megjegyzés:
Ha korábban eltávolított más függő modelleket az eredeti modell törléséhez, töltse újra őket most, miután a gyorsítótár alaphelyzetbe állítása megtörtént. Ha frissítette a függő modelleket, hogy ideiglenesen eltávolítsa az eredeti modellre mutató hivatkozásokat, újra frissítheti őket a hivatkozás visszaállításához.
Ezután frissítse az ikerpéldányokat és a kapcsolatokat a példányban, hogy azok tulajdonságai megfeleljenek az új modell által meghatározott tulajdonságoknak. A lépés végrehajtása előtt az ikerpéldányok, amelyek nem egyeznek a modelljükkel, továbbra is olvashatók, de nem írhatók bele. Az ikerpéldányok érvényes modell nélküli állapotáról további információt a Modellek nélküli ikerpéldányok című témakörben talál.
Az új modell ikerpéldányait és kapcsolatait kétféleképpen frissítheti, hogy újra írhatóak legyenek:
- Szükség szerint kijavítja az ikerpéldányokat és a kapcsolatokat, hogy illeszkedjenek az új modellhez. Az alábbi utasítások segítségével frissítheti az ikerpéldányokat és frissítheti a kapcsolatokat.
- Ha hozzáadott tulajdonságokat: Az ikerpéldányok és kapcsolatok frissítése nem szükséges az új értékekhez, mivel az új értékekből hiányzó ikerpéldányok továbbra is érvényes ikerpéldányok lesznek. Ezeket azonban kijavíthatja, ha értékeket szeretne hozzáadni az új tulajdonságokhoz.
- Ha eltávolította a tulajdonságokat: Az ikerpéldányok javításához el kell távolítani az új modellben érvénytelen tulajdonságokat.
- Ha frissített tulajdonságokat: Az ikerpéldányok javításához frissíteni kell a módosított tulajdonságok értékeit, hogy érvényesek legyenek az új modellre.
- Törölje a modellt használó ikerpéldányokat és kapcsolatokat, és hozza létre újra őket. Az alábbi utasítások segítségével törölheti az ikerpéldányokat , újra létrehozhatja az ikerpéldányokat, valamint törölheti a kapcsolatokat, és újra létrehozhat kapcsolatokat.
- Ha sok módosítást végez a modellen, érdemes lehet elvégeznie ezt a műveletet, és a meglévő ikerpéldányok frissítése nehéz lesz, hogy megfeleljen a modellnek. A kikapcsolódás azonban bonyolult lehet, ha sok ikerpéldány van, amelyeket sok kapcsolat köt össze.
Modellek eltávolítása
A modellek kétféleképpen távolíthatók el a szolgáltatásból:
- Leszerelés: A modellek leszerelése után már nem használhatja új digitális ikerpéldányok létrehozására. A modellt már használó meglévő digitális ikerpéldányokra nincs hatással, így továbbra is frissítheti őket a tulajdonságok módosításával, valamint a kapcsolatok hozzáadásával vagy törlésével.
- Törlés: Ez a művelet teljesen eltávolítja a modellt a megoldásból. A modellt használó ikerpéldányok már nem tartoznak érvényes modellhez, így a rendszer úgy kezeli őket, mintha egyáltalán nem rendelkeznének modellel. Továbbra is elolvashatja ezeket az ikerpéldányokat, de nem végezhet rajtuk frissítéseket, amíg nem rendeli őket egy másik modellhez.
Ezek a műveletek különálló funkciók, és nem érintik egymást, bár együtt használhatók a modell fokozatos eltávolításához.
Megjegyzés:
Ha egyszerre szeretné törölni az összes modellt, ikerpéldányt és kapcsolatot egy példányban, használja a Feladatok törlése API-t.
Leszerelési
Modell leszereléséhez használhatja a DecommissionModel metódust az SDK-ból:
// 'client' is a valid DigitalTwinsClient
await client.DecommissionModelAsync(dtmiOfPlanetInterface);
// Write some code that deletes or transitions digital twins
//...
A modellt a DigitalTwinModels Update nevű REST API-val is le lehet szerelni. Ez decommissioned
a tulajdonság az egyetlen tulajdonság, amely lecserélhető ezzel az API-hívással. A JSON Patch-dokumentum a következőképpen fog kinézni:
[
{
"op": "replace",
"path": "/decommissioned",
"value": true
}
]
A modell leszerelési állapota szerepel a ModelData
modell lekérési API-jai által visszaadott rekordokban.
Törlés
A példány összes modellje egyszerre törölhető, vagy egyénileg is elvégezhető.
Az összes modell egyidejű törlésére vonatkozó példát az Azure Digital Twins-adattár végpontok közötti mintáiban tekintheti meg a GitHubon. A CommandLoop.cs fájl egy CommandDeleteAllModels
kóddal ellátott függvényt tartalmaz a példány összes modelljének törléséhez.
Az egyes modellek törléséhez kövesse a szakasz többi részében található utasításokat és szempontokat.
Törlés előtt: Törlési követelmények
A modellek általában bármikor törölhetők.
Kivételt képeznek azok a modellek, amelyektől más modellek függenek, akár kapcsolattal extends
, akár összetevőként. Ha például egy Konferenciaterem-modell kibővít egy helyiségmodellt, és összetevőként ACUnit-modellel rendelkezik, a Room vagy az ACUnit nem törölhető, amíg a ConferenceRoom el nem távolítja a megfelelő hivatkozásokat.
Ezt úgy teheti meg, hogy frissíti a függő modellt a függőségek eltávolításához, vagy teljesen törli a függő modellt.
Törlés során: Törlési folyamat
Még akkor is, ha egy modell megfelel az azonnali törlés követelményeinek, érdemes néhány lépést megtennie, hogy elkerülje a hátrahagyott ikerpéldányok nem várt következményeit. Az alábbi lépések segíthetnek a folyamat kezelésében:
- Először szerelje le a modellt
- Várjon néhány percet, és győződjön meg arról, hogy a szolgáltatás feldolgozta az utolsó pillanatban küldött ikerpéldány-létrehozási kéréseket a leszerelés előtt
- Ikerpéldányok lekérdezése modell szerint a most leszerelt modellt használó összes ikerpéldány megtekintéséhez
- Törölje az ikerpéldányokat, ha már nincs rájuk szüksége, vagy szükség esetén egy új modellre javítja őket. Dönthet úgy is, hogy egyedül hagyja őket, ebben az esetben a modell törlése után ikerpéldányokká válnak modellek nélkül. Az állapot következményeit a következő szakaszban találja.
- Várjon még néhány percet, és győződjön meg arról, hogy a módosítások át lettek hajtva
- A modell törlése
Modell törléséhez használja a DeleteModel SDK-hívást:
// 'client' is a valid DigitalTwinsClient
await client.DeleteModelAsync(IDToDelete);
A DigitalTwinModels Delete REST API-hívással is törölhet modelleket.
Törlés után: Ikerpéldányok modellek nélkül
A modell törlése után a modellt használó digitális ikerpéldányok mostantól modell nélkülinek minősülnek. Nincs olyan lekérdezés, amely az összes ikerpéldányt felsorolja ebben az állapotban – bár a törölt modell továbbra is lekérdezheti az ikerpéldányokat, hogy megtudja, milyen ikerpéldányok érintettek.
Az alábbiakban áttekintjük, hogy mit tehet és mit nem tehet olyan ikerpéldányokkal, amelyek nem rendelkeznek modellel.
A következőket teheti:
- Az ikerpéldány lekérdezése
- Olvasási tulajdonságok
- Kimenő kapcsolatok olvasása
- Bejövő kapcsolatok hozzáadása és törlése (ahogy más ikerpéldányok is létrehozhatnak kapcsolatokat ehhez az ikerpéldányhoz)
- A
target
kapcsolat definíciója továbbra is a törölt modell DTMI-jének felel meg. Itt is működhet egy definiált cél nélküli kapcsolat.
- A
- Kapcsolatok törlése
- Az ikerpéldány törlése
Nem elvégezhető műveletek:
- Kimenő kapcsolatok szerkesztése (akárcsak az ikerpéldány és más ikerpéldányok közötti kapcsolatok)
- Tulajdonságok szerkesztése
Törlés után: Modell újbóli betöltése
A modell törlése után később dönthet úgy, hogy a törölt azonosítóval megegyező azonosítójú új modellt tölt fel. Ez történik ebben az esetben.
- A megoldástár szempontjából ez a művelet ugyanaz, mint egy teljesen új modell feltöltése. A szolgáltatás nem emlékszik arra, hogy a régit valaha feltöltötték volna.
- Ha a törölt modellre hivatkozó gráfban vannak még ikerpéldányok, azok már nem árvaak; ez a modellazonosító ismét érvényes az új definícióval. Ha azonban a modell új definíciója eltér a törölt modelldefiníciótól, előfordulhat, hogy ezek az ikerpéldányok olyan tulajdonságokkal és kapcsolatokkal rendelkeznek, amelyek megfelelnek a törölt definíciónak, és nem érvényesek az újra.
Az Azure Digital Twins nem akadályozza meg ezt az állapotot, ezért ügyeljen arra, hogy az ikerpéldányok megfelelően legyenek javítva, hogy azok érvényesek maradjanak a modelldefiníciós kapcsolón keresztül.
V2-modellek konvertálása v3-ra
Az Azure Digital Twins támogatja a DTDL 2., illetve 3 . verzióját (a dokumentációban 2- és 3-ra rövidítve). A V3 a kibővített képességei alapján ajánlott választás. Ez a szakasz bemutatja, hogyan frissíthet egy meglévő DTDL v2-modellt DTDL v3-ra.
- Frissítse a környezetet. A modell v2-ként vagy v3-asként való azonosításának fő funkciója a
@context
felület mezője. Ha egy modellt v2-ről v3-ra szeretne konvertálni, módosítsa a környezeti értéket adtmi:dtdl:context;2
következőredtmi:dtdl:context;3
: . Sok modell esetében ez lesz az egyetlen szükséges módosítás.- Érték a v2-ben:
"@context": "dtmi:dtdl:context;2"
- Érték a v3-ban:
"@context": "dtmi:dtdl:context;3"
.
- Érték a v2-ben:
- Szükség esetén frissítse a szemantikai típusokat. A DTDL v2-ben a szemantikai típusok natívan támogatottak. A DTDL v3-ban a QuantitativeTypes funkcióbővítmény tartalmazza őket. Ha tehát a v2-modell szemantikai típusokat használt, a funkcióbővítményt hozzá kell adnia, amikor a modellt v3-ra konvertálja. Ehhez először módosítsa a
@context
felület mezőjét egyetlen értékről egy értéktömbre, majd adja hozzá az értéketdtmi:dtdl:extension:quantitativeTypes;1
.- Érték a v2-ben:
"@context": "dtmi:dtdl:context;2"
- Érték a v3-ban:
"@context": ["dtmi:dtdl:context;3", "dtmi:dtdl:extension:quantitativeTypes;1"]
- Érték a v2-ben:
- Szükség esetén fontolja meg a méretkorlátokat. A V2 és a v3 különböző méretkorlátokkal rendelkezik, ezért ha a felület nagyon nagy, érdemes lehet áttekinteni a DTDL v2 és a v3 közötti különbségek korlátait.
A módosítások után a korábbi DTDL v2-modell DTDL v3-modellté lett konvertálva.
Érdemes lehet megfontolni a DTDL v3 új funkcióit is, például a tömb típusú tulajdonságokat, a verziólazítást és a további funkcióbővítményeket, hogy kiderüljön, ezek közül bármelyik hasznos kiegészítés-e. A DTDL v2 és a v3 közötti különbségek teljes listáját a DTDL v3 nyelvi leírásában, a 2. verzió változásai című témakörben találja.
További lépések
Megtudhatja, hogyan hozhat létre és kezelhet digitális ikerpéldányokat a modellek alapján: