Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
- Node.js LTS sürümleri
- Safari, Chrome, Edge ve Firefox'un en son sürümleri.
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.
İlgili projeler
Azure SDK for JavaScript