Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Paket ini berisi SDK isomorfik untuk Azure Digital Twins API untuk menyediakan akses ke layanan Azure Digital Twins untuk mengelola kembar, model, hubungan, dll.
Memulai
Lingkungan yang didukung saat ini
- Versi LTS dari Node.js
- Safari, Chrome, Edge, dan Firefox versi terbaru.
Lihat kebijakan dukungan kami untuk detail selengkapnya.
Prasyarat
- Sebuah Instans Azure Digital Twins.
Pasang paket @azure/digital-twins-core
Instal pustaka klien Digital Twins Core untuk JavaScript dengan npm:
npm install @azure/digital-twins-core
Dukungan browser
Bundel JavaScript
Untuk menggunakan pustaka klien ini di browser, pertama-tama Anda perlu menggunakan bunder. Untuk detail tentang cara melakukan ini, silakan lihat dokumentasi bundling kami.
CORS
Azure Digital Twins saat ini tidak mendukung Berbagi Sumber Daya Lintas Asal (CORS) . Akibatnya, pustaka ini tidak dapat digunakan untuk melakukan panggilan langsung ke layanan templat dari browser. Silakan lihat dokumen ini untuk panduan.
Konsep utama
Azure Digital Twins
Azure Digital Twins adalah layanan Azure IoT yang menciptakan model lingkungan fisik yang komprehensif. Ini dapat membuat grafik kecerdasan spasial untuk memodelkan hubungan dan interaksi antara orang, spasi, dan perangkat. Anda dapat mempelajari selengkapnya tentang Azure Digital Twins dengan mengunjungi Dokumentasi Azure Digital Twins.
DigitalTwinsClient
DigitalTwinsClient adalah objek klien yang digunakan pengguna pustaka ini untuk mengelola instans Azure Digital Twins mereka.
Contoh
Membuat DigitalTwinsClient
Untuk membuat baru DigitalTwinsClient, Anda memerlukan titik akhir ke instans dan kredensial Azure Digital Twins.
Di sini, kami menggunakan DefaultAzureCredential untuk kredensial dari paket @azure/identity.
Ini mendukung mekanisme autentikasi yang berbeda dan menentukan jenis kredensial yang sesuai berdasarkan lingkungan tempatnya dijalankan.
readme for @azure/identity Lihat untuk informasi selengkapnya tentang berbagai opsi autentikasi yang dapat Anda gunakan.
const { DefaultAzureCredential } = require("@azure/identity");
const { DigitalTwinsClient } = require("@azure/digital-twins-core");
const url = "<URL to Azure Digital Twins instance>";
const credential = new DefaultAzureCredential();
const serviceClient = new DigitalTwinsClient(url, credential);
Membuat, mencantumkan, mendapatkan, menonaktifkan, dan menghapus model
Membuat model
Untuk membuat model, kami meneruskan daftar model ke createModels.
Di sini, kami hanya membuat satu model.
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]);
Mencantumkan model
Kami menggunakan listModels untuk mencantumkan semua model.
const models = await serviceClient.listModels();
for await (const model of models) {
console.log(`Model ID: ${model.id}`);
}
Dapatkan model
Kita bisa mendapatkan model tertentu menggunakan getModel dengan ID model.
const model = await serviceClient.getModel("<model ID>");
Model penonaktifan
Kita dapat menonaktifkan model menggunakan decomissionModel dengan ID model.
await serviceClient.decomissionModel("<model ID>");
Menghapus model
Kita dapat menghapus model menggunakan deleteModel dengan ID model.
await serviceClient.deleteModel("<model ID>");
Membuat, mendapatkan, mengkueri, dan menghapus kembar digital
Membuat kembar digital
Untuk membuat kembar, Anda harus memberikan ID untuk kembar digital dan string JSON yang berisi objek kembar digital.
const digitalTwinId = "myTwin";
const newTwin = "<JSON containing the digitalTwin object>";
const createdTwin = await serviceClient.upsertDigitalTwin(digitalTwinId, newTwin);
Dapatkan kembar digital
Kita bisa mendapatkan kembar digital menggunakan getDigitalTwin dengan ID kembar digital.
const digitalTwinId = "myTwin";
const twin = await serviceClient.getDigitalTwin(digitalTwinId);
console.log(`DigitalTwin's etag: ${twin.eTag}`);
console.log(`DigitalTwin: ${twin.body}`);
Kueri kembar digital
Kueri instans Azure Digital Twins untuk kembar digital menggunakan bahasa kueri Azure Digital Twins. Berikut adalah contoh cara mengkueri kembar digital dan cara melakukan iterasi atas hasilnya.
const query = "SELECT * FROM digitaltwins";
const queryResult = serviceClient.queryTwins(query);
for await (const item of queryResult) {
console.log(`DigitalTwin: ${item}`);
}
Menghapus kembar digital
Kita dapat menghapus kembar digital menggunakan deleteDigitalTwin dengan ID kembar digital.
const digitalTwinId = "myTwin";
await serviceClient.deleteDigitalTwin(digitalTwinId);
Mendapatkan dan memperbarui komponen kembar digital
Mendapatkan komponen kembar digital
Kita bisa mendapatkan komponen kembar digital menggunakan getComponent dengan ID kembar digital dan jalur komponen.
const digitalTwinId = "myTwin";
const componentPath = "Component1";
const component = await serviceClient.getComponent(digitalTwinId, componentPath);
console.log(`Component: ${component}`);
Memperbarui komponen kembar digital
Untuk memperbarui komponen kembar digital (yaitu, mengganti, menghapus, atau menambahkan properti komponen atau sub-properti dalam kembar digital), Anda perlu menyediakan ID kembar digital, jalur komponen, dan daftar objek patch dengan properti op dan path.
Nilainya op adalah "replace", "remove", atau "add", dan nilainya path adalah jalur ke komponen kembar digital yang sedang diperbarui.
Untuk operasi "ganti" dan "tambahkan", value properti harus disertakan dengan nilai properti komponen yang Anda inginkan.
const digitalTwinId = "myTwin";
const componentPath = "Component1";
const patch = {
op: "replace",
path: "/ComponentProp1",
value: "value2"
};
const updateComponentResponse = await serviceClient.updateComponent(digitalTwinId, componentPath, [
patch
]);
Membuat dan mencantumkan hubungan kembar digital
Membuat hubungan kembar digital
upsertRelationship menciptakan hubungan pada kembar digital yang disediakan dengan ID kembar digital, nama hubungan (dalam hal ini, "has"), ID hubungan (dalam hal ini "BuildingHasFloor") dan objek yang mewakili hubungan yang akan dibuat.
Objek harus berisi properti dengan kunci "$targetId" untuk menentukan target hubungan.
const relationship = {
$relationshipId: "BuildingHasFloor",
$sourceId: "BuildingTwin",
$relationshipName: "has",
$targetId: "FloorTwin",
isAccessRestricted: false
};
await serviceClient.upsertRelationship(
relationship["$sourceId"],
relationship["$relationshipId"],
relationship
);
Mencantumkan hubungan kembar digital
Untuk kembar digital, listRelationships dan listIncomingRelationships mencantumkan semua hubungan dan semua hubungan masuk, masing-masing.
const digitalTwinId = "myTwin";
const relationships = serviceClient.listRelationships(digitalTwinId);
for await (const relationship of relationships) {
console.log(`Relationship: ${relationship}`);
}
const digitalTwinId = "myTwin";
const incomingRelationships = serviceClient.listIncomingRelationships(digitalTwinId);
for await (const incomingRelationship of incomingRelationships) {
console.log(`Relationship: ${incomingRelationship}`);
}
Membuat, mendapatkan, mencantumkan, dan menghapus rute peristiwa
Membuat rute peristiwa
Untuk membuat rute peristiwa, berikan ID rute peristiwa (dalam hal ini, "myEventRouteId") dan data rute peristiwa yang berisi titik akhir dan filter opsional seperti contoh yang ditunjukkan di bawah ini. Untuk informasi selengkapnya tentang memfilter peristiwa, lihat dokumentasi ini.
const eventHubEndpointName = "myEventHubEndpointName";
const eventRouteId = "myEventRouteId";
const eventFilter =
"$eventType = 'DigitalTwinTelemetryMessages' or $eventType = 'DigitalTwinLifecycleNotification'";
await serviceClient.upsertEventRoute(eventRouteId, eventHubEndpointName, eventFilter);
Mendapatkan rute peristiwa
Kita bisa mendapatkan rute peristiwa menggunakan getEventRoute dengan ID rute peristiwa.
const eventRouteId = "myEventRouteId";
const eventRoute = serviceClient.getEventRoute(eventRouteId);
console.log(`EventRoute: ${eventRoute}`);
Mencantumkan rute peristiwa
Kita dapat mencantumkan rute peristiwa menggunakan listEventRoutes.
const eventRoutes = serviceClient.listEventRoutes();
for await (const eventRoute of eventRoutes) {
console.log(`EventRoute: ${eventRoute}`);
}
Menghapus rute peristiwa
Kita dapat menghapus rute peristiwa menggunakan deleteEventRoute dengan ID rute peristiwa.
const eventRouteId = "myEventRouteId";
await serviceClient.deleteEventRoute(eventRouteId);
Menerbitkan pesan telemetri untuk kembar digital
Untuk menerbitkan pesan telemetri untuk kembar digital, Anda perlu memberikan ID kembar digital, payload, dan ID unik untuk pesan tersebut.
const digitalTwinId = "<digital twin ID>";
const telemetryPayload = '{"Telemetry1": 5}';
const response = await serviceClient.publishTelemetry(
digitalTwinId,
telemetryPayload,
"<unique message ID>"
);
Anda juga dapat menerbitkan pesan telemetri untuk komponen tertentu dalam kembar digital. Selain ID kembar digital, payload, dan ID pesan unik, Anda perlu menentukan jalur komponen target.
const digitalTwinId = "<digital twin ID>";
const componentPath = "<component path>";
const telemetryPayload = '{"Telemetry1": 5}';
const response = await serviceClient.publishComponentTelemetry(
digitalTwinId,
componentPath,
telemetryPayload,
"<unique message ID>"
);
Contoh tambahan
Contoh tambahan dapat ditemukan di direktori sampel.
Pemecahan Masalah
Pencatatan
Mengaktifkan pengelogan dapat membantu menemukan informasi yang berguna tentang kegagalan. Untuk melihat log permintaan dan respons HTTP, atur variabel lingkungan AZURE_LOG_LEVEL ke info. Atau, pengelogan dapat diaktifkan saat runtime dengan memanggil setLogLevel di @azure/logger:
const { setlogLevel } = require("@azure/logger");
setLogLevel("info");
Untuk instruksi lebih rinci tentang cara mengaktifkan log, Anda dapat melihat dokumen paket @azure/pencatat.
Langkah berikutnya
- Lihat direktori sampel untuk contoh terperinci yang menunjukkan cara menggunakan pustaka klien.
- Menjelajahi dokumentasi Azure Digital Twins
Berkontribusi
Jika Anda ingin berkontribusi pada pustaka ini, baca panduan berkontribusi untuk mempelajari selengkapnya tentang cara membuat dan menguji kode.
Proyek terkait
Azure SDK for JavaScript