Aracılığıyla paylaş


JavaScript için Azure Azure Digital Twins Core istemci kitaplığı - sürüm 2.0.0

Bu paket, ikizleri, modelleri, ilişkileri vb. yönetmek için Azure Digital Twins hizmetine erişim sağlamak üzere Azure Digital Twins API'si için izomorfik bir SDK içerir.

Başlangıç Yapmak

Şu anda desteklenen ortamlar

Daha fazla bilgi için bkz. destek ilkesi.

Önkoşullar

@azure/digital-twins-core paketini yükleme

JavaScript için Digital Twins Core istemci kitaplığını şu şekilde npmyükleyin:

npm install @azure/digital-twins-core

Tarayıcı desteği

JavaScript Paketi

Bu istemci kitaplığını tarayıcıda kullanmak için önce bir paketleyici kullanmanız gerekir. Bunun nasıl yapılacağının ayrıntıları için lütfen paketleme belgelerimize bakın.

Kaynaklar Arası Paylaşım (CORS)

Azure Digital Twins şu anda Çıkış Noktaları Arası Kaynak Paylaşımı'nı (CORS) desteklememektedir. Sonuç olarak, bu kitaplık bir tarayıcıdan şablon hizmetine doğrudan çağrılar yapmak için kullanılamaz. Yönergeler için lütfen bu belge bakın.

Temel kavramlar

Azure Digital Twins (Azure Dijital İkizler)

Azure Digital Twins, fiziksel ortamın kapsamlı modellerini oluşturan bir Azure IoT hizmetidir. Kişiler, alanlar ve cihazlar arasındaki ilişkileri ve etkileşimleri modellemek için uzamsal zeka grafikleri oluşturabilir. Azure Digital Twins Belgeleri'ni ziyaret ederek Azure Digital Twins hakkında daha fazla bilgi edinebilirsiniz.

DigitalTwinsClient

DigitalTwinsClient , bu kitaplığın kullanıcılarının Azure Digital Twins örneklerini yönetmek için kullandığı istemci nesnesidir.

Örnekler

DigitalTwinsClient'ı oluşturma

Yeni DigitalTwinsClientbir oluşturmak için bir Azure Digital Twins örneğine ve kimlik bilgilerine uç nokta gerekir. Burada, paketten @azure/identitykimlik bilgileri için kullanıyoruz DefaultAzureCredential . Farklı kimlik doğrulama mekanizmalarını destekler ve yürütüldüğü ortama göre uygun kimlik bilgisi türünü belirler. readme for @azure/identity Kullanabileceğiniz farklı kimlik doğrulama seçenekleri hakkında daha fazla bilgi için bkz.

import { DefaultAzureCredential } from "@azure/identity";
import { DigitalTwinsClient } from "@azure/digital-twins-core";

const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);

Model oluşturma, listeleme, alma, kullanımdan kaldırma ve silme

Model oluşturma

Modeller oluşturmak için, bir model listesini .createModels Burada sadece bir model oluşturuyoruz.

import { DefaultAzureCredential } from "@azure/identity";
import { DigitalTwinsClient } from "@azure/digital-twins-core";

const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);

const myComponent = {
  "@id": "dtmi:my_component;1",
  "@type": "Interface",
  "@context": "dtmi:dtdl:context;2",
  displayName: "Component1",
  contents: [
    {
      "@type": "Property",
      name: "ComponentProp1",
      schema: "string",
    },
  ],
};

const models = await serviceClient.createModels([myComponent]);

Modelleri listeleme

Tüm modelleri listelemek için kullanıyoruz listModels .

import { DefaultAzureCredential } from "@azure/identity";
import { DigitalTwinsClient } from "@azure/digital-twins-core";

const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);

const models = serviceClient.listModels();
for await (const model of models) {
  console.log(`Model ID: ${model.id}`);
}

Modeli edinin

Model kimliği ile belirli bir model getModel elde edebiliriz.

import { DefaultAzureCredential } from "@azure/identity";
import { DigitalTwinsClient } from "@azure/digital-twins-core";

const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);

const model = await serviceClient.getModel("<model ID>");

Yetki alma modeli

Model kimliği ile kullanarak decomissionModel bir modeli kullanımdan kaldırabiliriz.

import { DefaultAzureCredential } from "@azure/identity";
import { DigitalTwinsClient } from "@azure/digital-twins-core";

const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);

await serviceClient.decomissionModel("<model ID>");

Modeli silme

Model kimliği ile bir deleteModel modeli silebiliriz.

import { DefaultAzureCredential } from "@azure/identity";
import { DigitalTwinsClient } from "@azure/digital-twins-core";

const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);

await serviceClient.deleteModel("<model ID>");

Dijital ikizleri oluşturma, alma, sorgulama ve silme

Dijital ikiz oluşturun

İkiz oluşturmak için dijital ikiz için bir kimlik ve dijital ikiz nesnesini içeren bir JSON dizesi sağlamanız gerekir.

import { DefaultAzureCredential } from "@azure/identity";
import { DigitalTwinsClient } from "@azure/digital-twins-core";

const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);

const digitalTwinId = "myTwin";
const newTwin = "<JSON containing the digitalTwin object>";
const createdTwin = await serviceClient.upsertDigitalTwin(digitalTwinId, newTwin);

Dijital ikizi edinin

Dijital ikiz kimliği ile dijital ikiz getDigitalTwin elde edebiliriz.

import { DefaultAzureCredential } from "@azure/identity";
import { DigitalTwinsClient } from "@azure/digital-twins-core";

const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);

const digitalTwinId = "myTwin";
const twin = await serviceClient.getDigitalTwin(digitalTwinId);
console.log(`DigitalTwin's etag: ${twin.etag}`);
console.log(`DigitalTwin: ${twin}`);

Dijital ikizleri sorgulama

Azure Digital Twins sorgu dilini kullanarak dijital ikizler için Azure Digital Twins örneğini sorgulayın. Dijital ikizlerin nasıl sorgulanacağına ve sonuçların nasıl yineleneceğine ilişkin bir örnek aşağıda verilmiştir.

import { DefaultAzureCredential } from "@azure/identity";
import { DigitalTwinsClient } from "@azure/digital-twins-core";

const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);

const query = "SELECT * FROM digitaltwins";
const queryResult = serviceClient.queryTwins(query);
for await (const item of queryResult) {
  console.log(`DigitalTwin: ${item}`);
}

Dijital ikizi silme

Dijital ikiz kimliği ile bir dijital ikizi deleteDigitalTwin silebiliriz.

import { DefaultAzureCredential } from "@azure/identity";
import { DigitalTwinsClient } from "@azure/digital-twins-core";

const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);

const digitalTwinId = "myTwin";
await serviceClient.deleteDigitalTwin(digitalTwinId);

Dijital ikiz bileşenlerini alma ve güncelleştirme

Dijital ikiz bileşenini edinin

Dijital ikiz kimliği ve bileşenin yolu ile kullanarak bir dijital ikiz bileşeni getComponent elde edebiliriz.

import { DefaultAzureCredential } from "@azure/identity";
import { DigitalTwinsClient } from "@azure/digital-twins-core";

const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);

const digitalTwinId = "myTwin";
const componentPath = "Component1";
const component = await serviceClient.getComponent(digitalTwinId, componentPath);
console.log(`Component: ${component}`);

Dijital ikiz bileşenini güncelleştirme

Bir dijital ikiz bileşenini güncelleştirmek için (yani, bir dijital ikiz içindeki bir bileşen özelliğini veya alt özelliği değiştirmek, kaldırmak veya eklemek), bir dijital ikiz kimliği, bileşen yolu ve özelliklerine op sahip bir yama nesneleri listesi sağlamanız pathgerekir. değeri op "replace", "remove" veya "add" şeklindedir ve değeri path güncellenmekte olan dijital ikiz bileşeninin yoludur. "Değiştir" ve "ekle" işlemleri için, özellik, value bileşen özelliğinin istediğiniz değeriyle birlikte dahil edilmelidir.

import { DefaultAzureCredential } from "@azure/identity";
import { DigitalTwinsClient } from "@azure/digital-twins-core";

const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);

const digitalTwinId = "myTwin";
const componentPath = "Component1";
const patch = {
  op: "replace",
  path: "/ComponentProp1",
  value: "value2",
};
const updateComponentResponse = await serviceClient.updateComponent(digitalTwinId, componentPath, [
  patch,
]);

Dijital ikiz ilişkileri oluşturma ve listeleme

Dijital ikiz ilişkileri oluşturun

upsertRelationship dijital ikizin kimliği, ilişkinin adı (bu örnekte "has"), ilişkinin kimliği (bu örnekte "BuildingHasFloor") ve oluşturulacak ilişkiyi temsil eden nesne ile sağlanan bir dijital ikiz üzerinde bir ilişki oluşturur. İlişkinin hedefini belirtmek için nesnenin, "$targetId" anahtarına sahip bir özellik içermesi gerekir.

import { DefaultAzureCredential } from "@azure/identity";
import { DigitalTwinsClient } from "@azure/digital-twins-core";

const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);

const relationship = {
  $relationshipId: "BuildingHasFloor",
  $sourceId: "BuildingTwin",
  $relationshipName: "has",
  $targetId: "FloorTwin",
  isAccessRestricted: false,
};

await serviceClient.upsertRelationship(
  relationship["$sourceId"],
  relationship["$relationshipId"],
  relationship,
);

Dijital ikiz ilişkilerini listeleme

Dijital ikiz listRelationships için ve listIncomingRelationships sırasıyla tüm ilişkileri ve tüm gelen ilişkileri listeleyin.

import { DefaultAzureCredential } from "@azure/identity";
import { DigitalTwinsClient } from "@azure/digital-twins-core";

const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);

const digitalTwinId = "myTwin";
const relationships = serviceClient.listRelationships(digitalTwinId);
for await (const relationship of relationships) {
  console.log(`Relationship: ${relationship}`);
}
import { DefaultAzureCredential } from "@azure/identity";
import { DigitalTwinsClient } from "@azure/digital-twins-core";

const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);

const digitalTwinId = "myTwin";
const incomingRelationships = serviceClient.listIncomingRelationships(digitalTwinId);
for await (const incomingRelationship of incomingRelationships) {
  console.log(`Relationship: ${incomingRelationship}`);
}

Etkinlik rotaları oluşturma, alma, listeleme ve silme

Etkinlik rotası oluştur

Bir olay rotası oluşturmak için, aşağıda gösterilen örnekte olduğu gibi bir olay rotasının kimliğini (bu örnekte "myEventRouteId") ve uç noktayı ve isteğe bağlı filtreyi içeren olay rotası verilerini sağlayın. Olayları filtreleme hakkında daha fazla bilgi için bu belgeye bakın.

import { DefaultAzureCredential } from "@azure/identity";
import { DigitalTwinsClient } from "@azure/digital-twins-core";

const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);

const eventHubEndpointName = "myEventHubEndpointName";
const eventRouteId = "myEventRouteId";
const eventFilter =
  "$eventType = 'DigitalTwinTelemetryMessages' or $eventType = 'DigitalTwinLifecycleNotification'";
await serviceClient.upsertEventRoute(eventRouteId, eventHubEndpointName, eventFilter);

Etkinlik rotasını al

Olay rotası kimliği ile bir olay rotası getEventRoute alabiliriz.

import { DefaultAzureCredential } from "@azure/identity";
import { DigitalTwinsClient } from "@azure/digital-twins-core";

const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);

const eventRouteId = "myEventRouteId";
const eventRoute = serviceClient.getEventRoute(eventRouteId);
console.log(`EventRoute: ${eventRoute}`);

Etkinlik rotalarını listeleme

kullanarak listEventRoutesolay rotalarını listeleyebiliriz.

import { DefaultAzureCredential } from "@azure/identity";
import { DigitalTwinsClient } from "@azure/digital-twins-core";

const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);

const eventRoutes = serviceClient.listEventRoutes();
for await (const eventRoute of eventRoutes) {
  console.log(`EventRoute: ${eventRoute}`);
}

Etkinlik rotasını sil

Olay rotası kimliğini kullanarak deleteEventRoute bir olay rotasını silebiliriz.

import { DefaultAzureCredential } from "@azure/identity";
import { DigitalTwinsClient } from "@azure/digital-twins-core";

const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);

const eventRouteId = "myEventRouteId";
await serviceClient.deleteEventRoute(eventRouteId);

Dijital ikiz için telemetri iletileri yayımlama

Dijital ikiz için telemetri iletisi yayımlamak için dijital ikiz kimliğini, yükü ve ileti için benzersiz bir kimlik sağlamanız gerekir.

import { DefaultAzureCredential } from "@azure/identity";
import { DigitalTwinsClient } from "@azure/digital-twins-core";

const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);

const digitalTwinId = "<digital twin ID>";
const telemetryPayload = { Telemetry1: 5 };
const response = await serviceClient.publishTelemetry(
  digitalTwinId,
  telemetryPayload,
  "<unique message ID>",
);

Dijital ikizdeki belirli bir bileşen için telemetri iletisi de yayımlayabilirsiniz. Dijital ikiz kimliğine, yüke ve benzersiz ileti kimliğine ek olarak, hedef bileşen yolunu belirtmeniz gerekir.

import { DefaultAzureCredential } from "@azure/identity";
import { DigitalTwinsClient } from "@azure/digital-twins-core";

const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);

const digitalTwinId = "<digital twin ID>";
const componentPath = "<component path>";
const telemetryPayload = { Telemetry1: 5 };
const response = await serviceClient.publishComponentTelemetry(
  digitalTwinId,
  componentPath,
  telemetryPayload,
  "<unique message ID>",
);

Ek Örnekler

Örnekler dizininde daha fazla örnek bulabilirsiniz.

Sorun giderme

Ağaç kesimi

Loglamayı etkinleştirmek, hatalarla ilgili yararlı bilgilerin ortaya çıkmasına yardımcı olabilir. HTTP isteklerinin ve yanıtlarının günlüğünü görmek için ortam değişkenini AZURE_LOG_LEVEL olarak infoayarlayın. Alternatif olarak, çalışma zamanında setLogLevel@azure/logger çağrılarak günlük tutma etkinleştirilebilir.

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Günlükleri etkinleştirme hakkında daha ayrıntılı yönergeler için @azure/günlükçü paketi belgelerine bakabilirsiniz.

Sonraki Adımlar

  • İstemci kitaplıklarının nasıl kullanılacağını gösteren ayrıntılı örnekler için örnekler dizinine göz atın.
  • Azure Digital Twins belgelerini keşfedin

Katkıda Bulunmak

Bu kitaplığa katkıda bulunmak istiyorsanız kodu oluşturma ve test etme hakkında daha fazla bilgi edinmek için lütfen katkıda bulunma kılavuzu okuyun.