Pustaka klien Azure Digital Twins Core untuk JavaScript - versi 1.1.0
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk