Share via


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ó:

Screenshot of Azure Digital Twins Explorer showing a sample model graph.

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 hasDevicesis 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 minMultiplicitymaxMultiplicity 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:

Screenshot of the Azure portal showing the URL of a file in a storage container.

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 descriptionhozzá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:

  1. Először szerelje le a modellt
  2. 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
  3. Ikerpéldányok lekérdezése modell szerint a most leszerelt modellt használó összes ikerpéldány megtekintéséhez
  4. 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.
  5. 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
  6. 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.
  • 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.

  1. 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 a dtmi:dtdl:context;2 következőre dtmi:dtdl:context;3: . Sok modell esetében ez lesz az egyetlen szükséges módosítás.
    1. Érték a v2-ben: "@context": "dtmi:dtdl:context;2"
    2. Érték a v3-ban: "@context": "dtmi:dtdl:context;3".
  2. 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éket dtmi:dtdl:extension:quantitativeTypes;1.
    1. Érték a v2-ben: "@context": "dtmi:dtdl:context;2"
    2. Érték a v3-ban: "@context": ["dtmi:dtdl:context;3", "dtmi:dtdl:extension:quantitativeTypes;1"]
  3. 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: