Aracılığıyla paylaş


Azure Digital Twins modellerini yönetme

Bu makalede Azure Digital Twins örneğinizdeki modellerin nasıl yönetileceğini açıklanmaktadır. Yönetim işlemleri, modelleri karşıya yükleme, doğrulama, alma ve silme işlemlerini içerir.

Önkoşullar

Bu makalede Azure Digital Twins ile çalışmak için bir Azure Digital Twins örneğine ve bunu kullanmak için gerekli izinlere sahip olmanız gerekir. Zaten ayarlanmış bir Azure Digital Twins örneğiniz varsa bu örneği kullanabilir ve sonraki bölüme atlayabilirsiniz. Aksi takdirde, Örnek ve kimlik doğrulaması ayarlama başlığındaki yönergeleri izleyin. Yönergeler, her adımı başarıyla tamamladığınızdan emin olmanıza yardımcı olacak bilgiler içerir.

Örneğinizi ayarladıktan sonra, örneğin ana bilgisayar adını not edin. Konak adını Azure portalında bulabilirsiniz.

Geliştirici arabirimleri

Bu makalede .NET (C#) SDK'sını kullanarak farklı yönetim işlemlerinin nasıl tamamlandığı vurgulanmaktadır. Bu yönetim çağrılarını Azure Digital Twins API'leri ve SDK'larında açıklanan diğer dil SDK'larını kullanarak da oluşturabilirsiniz.

Bu işlemleri tamamlamak için kullanılabilecek diğer geliştirici arabirimleri şunlardır:

Not

Azure Digital Twins Gezgini şu anda DTDL v2 modellerini tam olarak destekler ve DTDL v3 modelleri için sınırlı işlevselliği destekler.

DTDL v3 modelleri Modeller panelinde görüntülenebilir ve DTDL v3 modelleri ile oluşturulan ikizler görüntülenebilir ve düzenlenebilir (dizi özellikleri olanlar dahil). Ancak DTDL v3 modelleri Model Grafı panelinde gösterilmez ve Azure Digital Twins Gezgini kullanılarak içeri aktarılamaz . DTDL v3 modellerini örneğinize aktarmak için API'ler ve SDK'lar veya Azure CLI gibi başka bir geliştirici arabirimi kullanın.

Görselleştirme

Azure Digital Twins Gezgini , Azure Digital Twins grafınızdaki verileri keşfetmeye yönelik görsel bir araçtır. Modellerinizi, ikizlerinizi ve ilişkilerinizi görüntülemek, sorgulamak ve düzenlemek için gezgini kullanabilirsiniz.

Azure Digital Twins Gezgini aracı hakkında bilgi edinmek için bkz . Azure Digital Twins Gezgini. Özelliklerini kullanma hakkında ayrıntılı adımlar için bkz . Azure Digital Twins Gezgini'ni kullanma.

Görselleştirme şöyle görünür:

Örnek model grafiğini gösteren Azure Digital Twins Gezgini'nin ekran görüntüsü.

Model oluşturma

Sıfırdan kendi modellerinizi oluşturabilir veya sektörünüz için mevcut ontolojileri kullanabilirsiniz.

Yazma modelleri

Azure Digital Twins modelleri DTDL dilinde yazılır ve JSON dosyaları olarak kaydedilir. Ayrıca, DTDL belgelerini yazmayı kolaylaştırmak için söz dizimi doğrulaması ve diğer özellikleri sağlayan Visual Studio Code için bir DTDL uzantısı da mevcuttur.

Bir hastanenin odalarını dijital olarak temsil etmek istediği bir örneği düşünün. Her odada el yıkamayı izlemek için akıllı sabunluk ve oda üzerinden trafiği izlemek için algılayıcılar bulunur.

Çözümün ilk adımı, hastanenin yönlerini temsil eden modeller oluşturmaktır. Bu senaryoda bir hasta odası şu şekilde açıklanabilir:

{
    "@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"
      }
    ]
  }

Not

Bu, bir modelin tanımlandığı ve kaydedildiği bir JSON dosyasının istemci projesinin bir parçası olarak karşıya yüklenmesi için örnek bir gövdedir. Rest API çağrısı ise yukarıdaki gibi bir model tanımları dizisi alır (.NET SDK'sında ile IEnumerable<string> eşlenir). Bu nedenle bu modeli doğrudan REST API'de kullanmak için köşeli ayraçlarla çevreleyin.

Bu model, hasta odası için bir ad ve benzersiz bir kimlik ile ziyaretçi sayısını ve el yıkama durumunu temsil eden özellikleri tanımlar. Bu sayaçlar hareket algılayıcılarından ve akıllı sabun dağıtıcılarından güncelleştirilecek ve bir handwash percentage özelliği hesaplamak için birlikte kullanılacaktır. Model ayrıca, bu Oda modelini temel alan tüm dijital ikizleri gerçek cihazlara bağlamak için kullanılacak bir ilişki hasDevicestanımlar.

Not

Özellikler ve ilişkiler ile ilişkiler minMultiplicitymaxMultiplicity özniteliği dahil olmak üzere writable Azure Digital Twins'in şu anda desteklemediği bazı DTDL özellikleri vardır. Daha fazla bilgi için bkz . Hizmete özgü DTDL notları.

Bu yöntemi izleyerek hastanenin yurtları, bölgeleri veya hastanenin kendisi için modeller tanımlayabilirsiniz.

Amacınız endüstri etki alanınızı açıklayan kapsamlı bir model kümesi oluşturmaksa, model yazmayı kolaylaştırmak için kullanabileceğiniz mevcut bir endüstri ontolojisi olup olmadığını göz önünde bulundurun. Sonraki bölümde sektör ontolojileri daha ayrıntılı olarak açıklanmaktadır.

Mevcut endüstri standardı ontolojileri kullanma

Ontoloji, üretim, yapı yapıları, IoT sistemleri, akıllı şehirler, enerji şebekeleri, web içeriği ve daha fazlası gibi belirli bir alanı kapsamlı bir şekilde açıklayan bir model kümesidir.

Çözümünüz herhangi bir tür modelleme standardı kullanan belirli bir sektöre yönelikse, modellerinizi sıfırdan tasarlamak yerine sektörünüz için tasarlanmış önceden var olan bir model kümesiyle başlamayı göz önünde bulundurun. Microsoft, yeniden keşfi en aza indirmek ve endüstri çözümleri arasında tutarlılığı ve basitliği teşvik etmek amacıyla sektör standartlarına dayalı DTDL model onlogies oluşturmak için etki alanı uzmanlarıyla işbirliği yaptı. Bu ontolojiler hakkında nasıl kullanılacağı ve şu anda hangi ontolojilerin kullanılabilir olduğu dahil olmak üzere daha fazla bilgi için bkz. Ontoloji nedir?.

Söz dizimlerini doğrulama

Model oluşturduktan sonra modellerinizi Azure Digital Twins örneğine yüklemeden önce çevrimdışı olarak doğrulamanız önerilir.

Modellerinizi doğrulamanıza yardımcı olmak için NuGet: DTDLParser üzerinde bir .NET istemci tarafı DTDL ayrıştırma kitaplığı sağlanır. Ayrıştırıcı kitaplığını doğrudan C# kodunuzda kullanabilirsiniz. Ayrıştırıcının örnek kullanımını GitHub'daki DTDLParserResolveSample'da da görüntüleyebilirsiniz.

Modelleri karşıya yükleme

Modeller oluşturulduktan sonra bunları Azure Digital Twins örneğine yükleyebilirsiniz.

Bir modeli karşıya yüklemeye hazır olduğunuzda ,NET SDK için aşağıdaki kod parçacığını kullanabilirsiniz:

// '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 });

Karşıya yükleme işleminde model dosyaları hizmet tarafından doğrulanır.

Genellikle hizmete birden fazla model yüklemeniz gerekir. Tek bir işlemde birden çok modeli aynı anda karşıya yüklemenin birkaç yolu vardır. Bir strateji seçmenize yardımcı olmak için, bu bölümün geri kalanında devam ettikçe model kümenizin boyutunu göz önünde bulundurun.

Küçük model kümelerini karşıya yükleme

Daha küçük model kümeleri için tek tek API çağrılarını kullanarak aynı anda birden çok modeli karşıya yükleyebilirsiniz. Azure Digital Twins sınırlarındaki tek bir API çağrısında kaç modelin karşıya yüklenebileceğini öğrenmek için geçerli sınırı de kontrol edebilirsiniz.

SDK'yı kullanıyorsanız, aşağıdaki yöntemle CreateModels birden çok model dosyasını karşıya yükleyebilirsiniz:

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 API'leri veya Azure CLI kullanıyorsanız, birden çok model tanımını birlikte yüklenecek tek bir JSON dosyasına yerleştirerek birden çok modeli karşıya yükleyebilirsiniz. Bu durumda, modeller aşağıdaki örnekte olduğu gibi dosyanın içindeki bir JSON dizisine yerleştirilmelidir:

[
    {
      "@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"
    }
]

İşleri İçeri Aktar API'siyle büyük model kümelerini karşıya yükleme

Büyük model kümelerinde, tek bir API çağrısında birden çok modeli aynı anda karşıya yüklemek için İşleri İçeri Aktar API'sini kullanabilirsiniz. API, bir örnekteki model sayısı için Azure Digital Twins sınırına kadar aynı anda kabul edebilir ve aralarındaki bağımlılıkları çözmek için gerekirse modelleri otomatik olarak yeniden sıralar. Bu yöntem, Azure Blob Depolama kullanılmasının yanı sıra modeller ve toplu işler için Azure Digital Twins örneğinizde yazma izinleri gerektirir.

İpucu

İşleri İçeri Aktarma API'si, bir grafiğin tüm bölümlerini aynı anda oluşturmak için ikizlerin ve ilişkilerin aynı çağrıda içeri aktarılmasına da olanak tanır. Bu işlem hakkında daha fazla bilgi için bkz . İçeri Aktarma İşleri API'siyle modelleri, ikizleri ve ilişkileri toplu olarak karşıya yükleme.

Modelleri toplu olarak içeri aktarmak için modellerinizi (ve toplu içeri aktarma işine dahil edilen diğer kaynakları) NDJSON dosyası olarak yapılandırmanız gerekir. Bölüm, bölümden Models hemen sonra Header gelir ve dosyadaki ilk graf verileri bölümü haline gelir. İçeri Aktarma İşleri API'sine giriş bölümünde örnek bir içeri aktarma dosyası ve bu dosyaları oluşturmak için örnek bir proje görüntüleyebilirsiniz.

Ardından, dosyanın Azure Blob Depolama'daki bir ekleme blobuna yüklenmesi gerekir. Azure depolama kapsayıcısı oluşturma yönergeleri için bkz . Kapsayıcı oluşturma. Ardından, tercih ettiğiniz karşıya yükleme yöntemini kullanarak dosyayı karşıya yükleyin (bazı seçenekler AzCopy komutu, Azure CLI veya Azure portalıdır).

NDJSON dosyası kapsayıcıya yüklendikten sonra url'sini blob kapsayıcısına alın. Bu değeri daha sonra toplu içeri aktarma API çağrısının gövdesinde kullanacaksınız.

Azure portalında blob dosyasının URL değerini gösteren ekran görüntüsü aşağıdadır:

Depolama kapsayıcısında bir dosyanın URL'sini gösteren Azure portalının ekran görüntüsü.

Ardından, dosya bir İçeri Aktarma İşleri API çağrısında kullanılabilir. Giriş dosyasının blob depolama URL'sini ve hizmet tarafından oluşturulduğunda çıkış günlüğünün nerede depolanmasını istediğinizi belirtmek için yeni bir blob depolama URL'si sağlayacaksınız.

Modelleri alma

Azure Digital Twins örneğinizde depolanan modelleri listeleyebilir ve alabilirsiniz.

Seçenekleriniz şunlardır:

  • Tek bir model alma
  • Tüm modelleri alma
  • Modeller için meta verileri ve bağımlılıkları alma

Bazı örnek çağrılar şunlardır:

// '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, modelleri almak için tüm dönüş DigitalTwinsModelData nesnelerini çağırır. DigitalTwinsModelData Azure Digital Twins örneğinde depolanan modelle ilgili ad, DTMI ve modelin oluşturma tarihi gibi meta verileri içerir. DigitalTwinsModelData Nesnesi isteğe bağlı olarak modelin kendisini de içerir. Başka bir deyişle, parametrelere bağlı olarak, yalnızca meta verileri almak için alma çağrılarını kullanabilirsiniz (örneğin, kullanılabilir araçların kullanıcı arabirimi listesini görüntülemek istediğiniz senaryolarda yararlıdır) veya modelin tamamını.

Çağrı RetrieveModelWithDependencies yalnızca istenen modeli değil, istenen modelin bağımlı olduğu tüm modelleri de döndürür.

Modeller tam olarak karşıya yüklendikleri belge formunda döndürülemez. Azure Digital Twins yalnızca dönüş formunun eş değerde olacağını garanti eder.

Modelleri güncelleştirme

Bu bölümde modellerinizi güncelleştirmeyle ilgili önemli noktalar ve stratejiler açıklanmaktadır.

Güncelleştirmeden önce: Çözümünüzün tamamı bağlamında düşünün

Modellerinizde güncelleştirmeler yapmadan önce çözümünüzün tamamı ve yapmak üzere olduğunuz model değişikliklerinin etkisi hakkında bütünsel olarak düşünmeniz önerilir. Azure Digital Twins çözümündeki modeller genellikle birbirine bağlıdır, bu nedenle bir modelin güncelleştirilmesi için birkaç modelin güncelleştirilmesi gereken basamaklı değişikliklerden haberdar olmak önemlidir. Modellerin güncelleştirilmesi modelleri kullanan ikizleri etkiler ve ayrıca kodu, istemci uygulamalarını ve otomatik raporları giriş ve işlemeyi de etkileyebilir.

Model geçişlerinizi sorunsuz bir şekilde yönetmenize yardımcı olacak bazı öneriler şunlardır:

  • Modelleri ayrı varlıklar olarak düşünmek yerine, modellerinizi ve ilişkilerini güncel tutmak için uygun olduğunda model kümenizin tamamını geliştirmeyi göz önünde bulundurun.
  • Modellere kaynak kodu gibi davranın ve bunları kaynak denetiminde yönetin. Çözümünüzdeki diğer kodlara uyguladığınız model ve model değişikliklerine aynı titizliği ve dikkati uygulayın.

Modellerinizi güncelleştirme işlemine devam etmeye hazır olduğunuzda, bu bölümün geri kalanında güncelleştirmeleri uygulamak için kullanabileceğiniz stratejiler açıklanmaktadır.

Modelleri güncelleştirme stratejileri

Bir model Azure Digital Twins örneğinize yüklendikten sonra model arabirimi sabittir ve bu da modellerin geleneksel "düzenlemesi" olmadığı anlamına gelir. Azure Digital Twins de aynı modelin yeniden yüklenmesine izin vermezken örnekte eşleşen bir model zaten mevcuttur.

Bunun yerine, modelde güncelleştirme displayName veya descriptionekleme veya özellikleri kaldırma gibi değişiklikler yapmak istiyorsanız özgün modeli değiştirmeniz gerekir.

Modeli değiştirirken aralarından seçim yapabileceğiniz iki strateji vardır:

  • Strateji 1: Yeni model sürümünü karşıya yükleme: Modeli yeni bir sürüm numarasıyla karşıya yükleyin ve ikizlerinizi bu yeni modeli kullanacak şekilde güncelleştirin. Modelin hem yeni hem de eski sürümleri siz silene kadar örneğinizde bulunur.
    • Yalnızca modeli kullanan ikizlerinizden bazılarını güncelleştirmek istediğinizde veya ikizlerin modelleriyle uyumlu ve model geçişi aracılığıyla yazılabilir olduğundan emin olmak istediğinizde bu stratejiyi kullanın.
  • Strateji 2: Eski modeli silme ve yeniden yükleme: Özgün modeli silin ve yerine aynı ada ve kimliğe (DTMI değeri) sahip yeni modeli karşıya yükleyin. Eski modeli tamamen yenisiyle değiştirir.
    • Modellere tepki veren tüm kodlara ek olarak, bu modeli kullanan tüm ikizleri aynı anda güncelleştirmek istediğinizde bu stratejiyi kullanın. Model güncelleştirmenizde model güncelleştirmesinde hataya neden olan bir değişiklik varsa ikizler, eski modelden yeni modele geçiş yaparken kısa bir süre modellerinde uyumsuz olur ve bu da yeni model karşıya yüklenene ve ikizler buna uyana kadar güncelleştirme yapamayacakları anlamına gelir.

Not

Modellerinizde hataya neden olan değişiklikler geliştirme dışında önerilmez.

Her strateji seçeneği hakkında ayrıntılı bilgi edinmek için sonraki bölümlere geçin.

Strateji 1: Yeni model sürümünü karşıya yükleme

Bu seçenek, modelin yeni bir sürümünü oluşturmayı ve örneğinize yüklemeyi içerir.

Bu işlem modelin önceki sürümlerinin üzerine yazılmaz, bu nedenle modelin birden çok sürümü siz kaldırana kadar örneğinizde bir arada bulunur. Yeni model sürümü ve eski model sürümü birlikte mevcut olduğundan, ikizler modelin yeni sürümünü veya eski sürümünü kullanabilir, yani modelin yeni bir sürümünü karşıya yüklemek mevcut ikizleri otomatik olarak etkilemez. Mevcut ikizler eski model sürümünün örnekleri olarak kalır ve düzeltme eki uygulayarak bu ikizleri yeni model sürümüne güncelleştirebilirsiniz.

Bu stratejiyi kullanmak için aşağıdaki adımları izleyin.

1. Yeni model sürümü oluşturma ve yükleme

Mevcut modelin yeni bir sürümünü oluşturmak için özgün modelin DTDL'siyle başlayın. Değiştirmek istediğiniz alanları güncelleştirin, ekleyin veya kaldırın.

Ardından, modelin alanını güncelleştirerek id bu modeli modelin daha yeni bir sürümü olarak işaretleyin. model kimliğinin son bölümü, sonrasında ;model numarasını temsil eder. Bu modelin artık daha güncelleştirilmiş bir sürüm olduğunu belirtmek için, değerin id sonundaki sayıyı geçerli sürüm numarasından daha büyük bir sayıya kadar arttırın.

Örneğin, önceki model kimliğiniz aşağıdaki gibi görünüyorsa:

"@id": "dtmi:com:contoso:PatientRoom;1",

Bu modelin 2. sürümü şöyle görünebilir:

"@id": "dtmi:com:contoso:PatientRoom;2",

Ardından modelin yeni sürümünü örneğinize yükleyin .

Ardından modelin bu sürümü örneğinizde dijital ikizler için kullanılacaktır. Modelin önceki sürümlerinin üzerine yazılmaz, bu nedenle modelin birden çok sürümü artık örneğinizde bir arada bulunur.

2. Grafik öğelerini gerektiği gibi güncelleştirin

Ardından örneğinizdeki ikizleri ve ilişkileri eski sürüm yerine yeni model sürümünü kullanacak şekilde güncelleştirin.

İkizleri güncelleştirmek ve ilişkileri güncelleştirmek için aşağıdaki yönergeleri kullanabilirsiniz. bir ikizin modelini güncelleştirmeye yönelik düzeltme eki işlemi aşağıdakine benzer olacaktır:

[
  {
    "op": "replace",
    "path": "/$metadata/$model",
    "value": "dtmi:example:foo;1"
  }
]

Önemli

İkizleri güncelleştirirken, hem model kimliğini (yeni model sürümüne) hem de yeni modele uygun hale getirmek için ikiz üzerinde değiştirilmesi gereken alanları güncelleştirmek için aynı düzeltme ekini kullanın.

Yeni model sürümüne başvurmalarını sağlamak için örneğinizdeki ilişkileri ve bu modele başvuran diğer modelleri de güncelleştirmeniz gerekebilir. Bu amaca ulaşmak için başka bir model güncelleştirme işlemi yapmanız gerekir, bu nedenle bu bölümün başına dönün ve güncelleştirilmesi gereken diğer modeller için işlemi yineleyin.

3. (İsteğe bağlı) Eski model sürümünün yetkisini alma veya silme

Artık eski model sürümünü kullanmayacaksanız eski modelin yetkisini alabilirsiniz. Bu eylem modelin örnekte mevcut kalmasını sağlar, ancak yeni dijital ikizler oluşturmak için kullanılamaz.

Ayrıca artık örnekte olmasını istemiyorsanız eski modeli tamamen silebilirsiniz .

Yukarıda bağlantılı bölümler örnek kodlar ve modellerin yetkisini alma ve silmeyle ilgili dikkat edilmesi gereken noktaları içerir.

Strateji 2: Eski modeli silme ve yeniden yükleme

Modelin sürümünü artırmak yerine modeli tamamen silebilir ve düzenlenmiş bir modeli örneğe yeniden yükleyebilirsiniz.

Azure Digital Twins, eski modelin karşıya yüklendiğini hatırlamıyor, bu nedenle bu eylem tamamen yeni bir modeli karşıya yüklemeye benzer. Modeli kullanan ikizler, kullanıma sunulduktan sonra otomatik olarak yeni tanıma geçer. Yeni tanımın eski tanımdan nasıl farklı olduğuna bağlı olarak, bu ikizlerin silinen tanımla eşleşen özellikleri ve ilişkileri olabilir ve yeni tanım ile geçerli olmayabilir, bu nedenle geçerli olduklarından emin olmak için bunlara düzeltme eki uygulamanız gerekebilir.

Bu stratejiyi kullanmak için aşağıdaki adımları izleyin.

1. Eski modeli silme

Azure Digital Twins aynı kimlikte iki modele izin vermediğinden, örneğinizden özgün modeli silerek işe başlayın.

Not

Bu modele bağlı olan başka modelleriniz varsa (devralma veya bileşenler aracılığıyla), modeli silmeden önce bu başvuruları kaldırmanız gerekir. Başvuruları geçici olarak kaldırmak için önce bu bağımlı modelleri güncelleştirebilir veya bağımlı modelleri silip sonraki bir adımda yeniden yükleyebilirsiniz.

Özgün modelinizi silmek için aşağıdaki yönergeleri kullanın. Bu eylem, bu modeli kullanan ikizlerinizi artık mevcut olmayan bir modeli kullandığı için geçici olarak "yalnız bırakılmış" bırakır. Bu durum, güncelleştirilmiş modeli yeniden yüklerken sonraki adımda onarılacaktır.

2. Yeni model oluşturma ve karşıya yükleme

Özgün modelin DTDL'siyle başlayın. Değiştirmek istediğiniz alanları güncelleştirin, ekleyin veya kaldırın.

Ardından modeli örneğe ilk kez yüklenen yeni bir modelmiş gibi yükleyin .

3. Grafik öğelerini gerektiği gibi güncelleştirin

Artık eski model yerine yeni modeliniz karşıya yüklendiğinden, örneğinizdeki önbelleğe alma süresi dolduğunda ve sıfırlandığında grafiğinizdeki ikizler otomatik olarak yeni model tanımını kullanmaya başlar. Grafiğinizin boyutuna bağlı olarak bu işlem 10-15 dakika veya daha uzun sürebilir. Bundan sonra, modelinizdeki yeni ve değiştirilmiş özellikler erişilebilir olmalıdır ve kaldırılan özelliklere artık erişilemez.

Not

Özgün modeli silmek için daha önce diğer bağımlı modelleri kaldırdıysanız, önbellek sıfırlandıktan sonra bunları şimdi yeniden yükleyin. Bağımlı modelleri özgün modele yönelik başvuruları geçici olarak kaldıracak şekilde güncelleştirdiyseniz, başvuruyu geri koymak için bunları yeniden güncelleştirebilirsiniz.

Ardından, örneğinizdeki ikizleri ve ilişkileri güncelleştirerek özelliklerinin yeni model tarafından tanımlanan özelliklerle eşleşmesini sağlayın. Bu adım tamamlanmadan önce, modeliyle eşleşmeyen ikizler yine okunabilir, ancak yazılamaz. Geçerli bir modeli olmayan ikizlerin durumu hakkında daha fazla bilgi için bkz . Modelleri olmayan ikizler.

Yeni model için ikizleri ve ilişkileri yeniden yazılabilir olacak şekilde güncelleştirmenin iki yolu vardır:

  • yeni modele uyacak şekilde ikizlere ve ilişkilere gerektiği gibi düzeltme eki uygulama. İkizleri güncelleştirmek ve ilişkileri güncelleştirmek için aşağıdaki yönergeleri kullanabilirsiniz.
    • Özellikler eklediyseniz: İkizleri ve ilişkileri yeni değerlere sahip olacak şekilde güncelleştirmek gerekli değildir, çünkü ikizlerin yeni değerleri eksik olması geçerli ikizler olmaya devam eder. Bunlara yeni özellikler için değer eklemek istediğiniz şekilde düzeltme eki ekleyebilirsiniz.
    • Özellikleri kaldırdıysanız: Yeni modelde geçersiz olan özellikleri kaldırmak için ikizlere düzeltme eki uygulamak gerekir.
    • Özellikleri güncelleştirdiyseniz: Değiştirilen özelliklerin değerlerini yeni modelle geçerli olacak şekilde güncelleştirmek için ikizlere düzeltme eki uygulamak gerekir.
  • Modeli kullanan ikizleri ve ilişkileri silin ve yeniden oluşturun. İkizleri silmek ve ikizleri yeniden oluşturmak, ilişkileri silmek ve ilişkileri yeniden oluşturmak için aşağıdaki yönergeleri kullanabilirsiniz.
    • Modelde birçok değişiklik yapıyorsanız ve mevcut ikizleri eşleşecek şekilde güncelleştirmek zor olacaksa, bu işlemi yapmak isteyebilirsiniz. Ancak, rekreasyon, birçok ilişki tarafından birbirine bağlanan birçok ikiz varsa karmaşık olabilir.

Modelleri kaldırma

Modeller iki yoldan biriyle hizmetten kaldırılabilir:

  • Kullanımdan kaldırma: Bir modelin yetkisi alındıktan sonra, yeni dijital ikizler oluşturmak için artık bu modeli kullanamazsınız. Bu modeli zaten kullanan mevcut dijital ikizler etkilenmez, bu nedenle bunları yine de özellik değişiklikleri ve ilişkileri ekleme veya silme gibi özelliklerle güncelleştirebilirsiniz.
  • Silme: Bu işlem modeli çözümden tamamen kaldırır. Bu modeli kullanan ikizler artık geçerli bir modelle ilişkilendirilmemiş olduğundan, hiç modeli yokmuş gibi değerlendirilir. Bu ikizleri okumaya devam edebilirsiniz, ancak farklı bir modele yeniden atanana kadar bu ikizler üzerinde güncelleştirme yapamazsınız.

Bu işlemler ayrı özelliklerdir ve bir modeli aşamalı olarak kaldırmak için birlikte kullanılsa da birbirlerini etkilemezler.

Not

Bir örnekteki tüm modelleri, ikizleri ve ilişkileri aynı anda silmek istiyorsanız, İşleri Sil API'sini kullanın.

Yetkisini alma

Bir modelin yetkisini almak için SDK'dan DemissionModel yöntemini kullanabilirsiniz:

// 'client' is a valid DigitalTwinsClient
await client.DecommissionModelAsync(dtmiOfPlanetInterface);
// Write some code that deletes or transitions digital twins
//...

Rest API çağrısı DigitalTwinModels Update'i kullanarak da modelin yetkisini alabilirsiniz. decommissioned özelliği, bu API çağrısıyla değiştirilebilen tek özelliktir. JSON Düzeltme Eki belgesi şuna benzer olacaktır:

[
  {
    "op": "replace",
    "path": "/decommissioned",
    "value": true
  }
]

Modelin kullanımdan kaldırma durumu, model alma API'leri ModelData tarafından döndürülen kayıtlara eklenir.

Silme

Örneğinizdeki tüm modelleri tek seferde silebilir veya tek tek yapabilirsiniz.

Tüm modelleri aynı anda silme örneği için GitHub'daki Azure Digital Twins deposu için uçtan uca örneklere bakın. CommandLoop.cs dosyası, örnekteki tüm modelleri silmek için kod içeren bir CommandDeleteAllModels işlev içerir.

Tek bir modeli silmek için bu bölümün geri kalanındaki yönergeleri ve dikkate alınacak noktaları izleyin.

Silinmeden önce: Silme gereksinimleri

Genellikle modeller herhangi bir zamanda silinebilir.

Özel durum, extends ilişki veya bileşen olarak diğer modellerin bağımlı olduğu modellerdir. Örneğin, bir ConferenceRoom modeli bir Oda modelini genişletiyorsa ve bileşen olarak bir ACUnit modeline sahipse, ConferenceRoom ilgili başvuruları kaldırana kadar Oda veya ACUnit'i silemezsiniz.

Bağımlılıkları kaldırmak için bağımlı modeli güncelleştirerek veya bağımlı modeli tamamen silerek bunu yapabilirsiniz.

Silme sırasında: Silme işlemi

Bir model hemen silme gereksinimlerini karşılasa bile, geride bırakılan ikizlerin istenmeyen sonuçlarından kaçınmak için önce birkaç adımdan geçmek isteyebilirsiniz. İşlemi yönetmenize yardımcı olabilecek bazı adımlar şunlardır:

  1. İlk olarak, modelin yetkisini alın
  2. Hizmetin kullanımdan kaldırılmadan önce gönderilen son dakika ikiz oluşturma isteklerini işlediğinden emin olmak için birkaç dakika bekleyin
  3. Şimdi kullanımdan kaldırılan modeli kullanan tüm ikizleri görmek için modele göre ikizleri sorgulama
  4. Artık ihtiyacınız yoksa ikizleri silin veya gerekirse yeni bir modele yama yapın. Ayrıca bunları yalnız bırakmayı da seçebilirsiniz. Bu durumda model silindikten sonra modelleri olmayan ikizler haline gelirler. Bu durumun etkileri için sonraki bölüme bakın.
  5. Değişikliklerin sık sık iş olduğundan emin olmak için birkaç dakika daha bekleyin
  6. Modeli silme

Modeli silmek için DeleteModel SDK çağrısını kullanabilirsiniz:

// 'client' is a valid DigitalTwinsClient
await client.DeleteModelAsync(IDToDelete);

Ayrıca DigitalTwinModels Delete REST API çağrısıyla bir modeli silebilirsiniz .

Silindikten sonra: Modelleri olmayan ikizler

Bir model silindikten sonra, modeli kullanan tüm dijital ikizler artık modelsiz olarak kabul edilir. Bu durumdaki tüm ikizlerin listesini verebilecek bir sorgu yoktur; ancak hangi ikizlerin etkilendiğini öğrenmek için silinen modele göre ikizleri sorgulamaya devam edebilirsiniz.

Aşağıda, modeli olmayan ikizlerle neler yapabileceğinize ve neleri yapamazsınız?

Yapabileceğiniz şeyler:

  • İkizi sorgulama
  • Okuma özellikleri
  • Giden ilişkileri okuma
  • Gelen ilişkileri ekleme ve silme (diğer ikizlerde olduğu gibi bu ikizle hala ilişkiler oluşturabilir)
    • target İlişki tanımındaki öğesi, silinen modelin DTMI'sini yansıtmaya devam edebilir. Tanımlı hedefi olmayan bir ilişki de burada çalışabilir.
  • İlişkileri silme
  • İkizi silme

Şunları yapamazsınız:

  • Giden ilişkileri düzenleme (bu ikizden diğer ikizlere olan ilişkiler gibi)
  • Özellikleri düzenle

Silme işleminden sonra: Modeli yeniden yükleme

Bir model silindikten sonra, daha sonra sildiğiniz modelle aynı kimlikle yeni bir modeli karşıya yüklemeye karar vekleyebilirsiniz. Bu durumda şöyle olur.

  • Çözüm deposunun perspektifinden bakıldığında, bu işlem tamamen yeni bir modeli karşıya yüklemekle aynıdır. Hizmet, eskisinin karşıya yüklendiğini hatırlamıyor.
  • Grafikte silinen modele başvuran başka ikizler varsa artık yalnız kalmazlar; bu model kimliği yeni tanım ile yeniden geçerli. Ancak, modelin yeni tanımı silinen model tanımından farklıysa, bu ikizlerin silinen tanımla eşleşen özellikleri ve ilişkileri olabilir ve yenisiyle geçerli olmayabilir.

Azure Digital Twins bu durumu engellemez, bu nedenle model tanımı anahtarı aracılığıyla geçerli olduklarından emin olmak için ikizlere uygun şekilde düzeltme eki uygulamaya dikkat edin.

v2 modellerini v3'e dönüştürme

Azure Digital Twins, DTDL 2 ve 3 sürümlerini destekler (belgelerde sırasıyla v2 ve v3 olarak kısaltılmıştır). V3, genişletilmiş özelliklerine göre önerilen seçenektir. Bu bölümde, mevcut bir DTDL v2 modeliniN DTDL v3'e nasıl güncelleştirileceğini açıklar.

  1. Bağlamı güncelleştirin. Bir modeli v2 veya v3 @context olarak tanımlayan ana özellik, arabirimdeki alandır. Bir modeli v2'den v3'e dönüştürmek için bağlam değerini olarak dtmi:dtdl:context;3değiştirindtmi:dtdl:context;2. Birçok model için tek gerekli değişiklik bu olacaktır.
    1. v2'deki değer: "@context": "dtmi:dtdl:context;2"
    2. v3'teki değer: "@context": "dtmi:dtdl:context;3".
  2. Gerekirse anlam türlerini güncelleştirin. DTDL v2'de anlam türleri yerel olarak desteklenir. DTDL v3'te, QuantitativeTypes özellik uzantısına eklenirler. Bu nedenle, v2 modeliniz anlamsal türler kullandıysa, modeli v3'e dönüştürürken özellik uzantısını eklemeniz gerekir. Bunu yapmak için, önce arabirimdeki @context alanı tek bir değerden bir değer dizisine değiştirin, ardından değerini dtmi:dtdl:extension:quantitativeTypes;1ekleyin.
    1. v2'deki değer: "@context": "dtmi:dtdl:context;2"
    2. v3'teki değer: "@context": ["dtmi:dtdl:context;3", "dtmi:dtdl:extension:quantitativeTypes;1"]
  3. Gerekirse boyut sınırlarını göz önünde bulundurun. V2 ve v3'te farklı boyut sınırları vardır, bu nedenle arabiriminiz çok büyükse DTDL v2 ile v3 arasındaki farklardaki sınırları gözden geçirmek isteyebilirsiniz.

Bu değişikliklerden sonra, eski bir DTDL v2 modeli DTDL v3 modeline dönüştürüldü.

DTDL v3'ün dizi türü özellikleri, sürüm gevşetme ve ek özellik uzantıları gibi yeni özelliklerini de göz önünde bulundurarak bunlardan herhangi birinin yararlı eklemeler olup olmadığını görmek isteyebilirsiniz. DTDL v2 ile v3 arasındaki farkların tam listesi için DTDL v3 Dil Açıklaması'ndaki Sürüm 2'deki Değişiklikler'e bakın.

Not

Azure Digital Twins Gezgini şu anda DTDL v2 modellerini tam olarak destekler ve DTDL v3 modelleri için sınırlı işlevselliği destekler.

DTDL v3 modelleri Modeller panelinde görüntülenebilir ve DTDL v3 modelleri ile oluşturulan ikizler görüntülenebilir ve düzenlenebilir (dizi özellikleri olanlar dahil). Ancak DTDL v3 modelleri Model Grafı panelinde gösterilmez ve Azure Digital Twins Gezgini kullanılarak içeri aktarılamaz . DTDL v3 modellerini örneğinize aktarmak için API'ler ve SDK'lar veya Azure CLI gibi başka bir geliştirici arabirimi kullanın.

Sonraki adımlar

Modellerinize göre dijital ikiz oluşturma ve yönetme hakkında bilgi edinin: