Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a csomag egy izomorf SDK-t tartalmaz az Azure Digital Twins API-hoz, amely hozzáférést biztosít az Azure Digital Twins szolgáltatáshoz ikrek, modellek, kapcsolatok stb. kezeléséhez.
Kezdő lépések
Jelenleg támogatott környezetek
- A Node.jsLTS-változatai
- A Safari, a Chrome, az Edge és a Firefox legújabb verziói.
További részletekért tekintse meg támogatási szabályzatunkat.
Előfeltételek
Telepítse a(z) @azure/digital-twins-core csomagot
Telepítse a Digital Twins Core JavaScript-ügyféloldali kódtárat a következővel npm:
npm install @azure/digital-twins-core
Böngésző támogatás
JavaScript-csomag
Ahhoz, hogy ezt az ügyfélkódtárat a böngészőben használhassa, először egy kötegelőt kell használnia. Ennek részleteiért tekintse meg a csomagküldő dokumentációt.
CORS (Cross-Origin Resource Sharing - Különböző erőforrás-megosztás)
Az Azure Digital Twins jelenleg nem támogatja a forrásközi erőforrás-megosztást (CORS). Ennek eredményeképpen ez a kódtár nem használható a sablonszolgáltatás közvetlen hívására egy böngészőből. Útmutatásért tekintse meg a dokumentum .
Főbb fogalmak
Azure Digital Twins (Digitális Ikrek)
Az Azure Digital Twins egy Azure IoT-szolgáltatás, amely átfogó modelleket hoz létre a fizikai környezetről. Térintelligencia-grafikonokat hozhat létre az emberek, a terek és az eszközök közötti kapcsolatok és interakciók modellezéséhez. Az Azure Digital Twinsről az Azure Digital Twins dokumentációjában talál további információt.
DigitalTwinsClient
DigitalTwinsClient az az ügyfélobjektum, amelyet a kódtár felhasználói használnak a Azure Digital Twins-példányuk kezeléséhez.
Példák
A DigitalTwinsClient létrehozása
Új DigitalTwinsClientlétrehozásához szüksége lesz egy Azure Digital Twins-példány végpontjára és hitelesítő adataira.
Itt a csomag @azure/identityhitelesítő adatait használjuk DefaultAzureCredential .
Támogatja a különböző hitelesítési mechanizmusokat, és meghatározza a megfelelő hitelesítő adatok típusát a végrehajtott környezet alapján.
A különböző hitelesítési lehetőségekről további readme for @azure/identity információt talál.
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);
Modellek létrehozása, listázása, lekérése, leszerelése és törlése
Modellek létrehozása
A modellek létrehozásához a modellek listáját átadjuk a .createModels
Itt csak egy modellt hozunk létre.
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]);
Modellek listázása
Az összes modellt felsoroljuk 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}`);
}
Modell lekérése
A modellazonosítóval egy adott modellt getModel kaphatunk.
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>");
Leszerelési modell
A modellazonosítóval leszerelhetjük decomissionModel a modellt.
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>");
Modell törlése
A modellazonosítóval törölhetünk egy modellt deleteModel .
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>");
Digitális ikrek létrehozása, lekérése, lekérdezése és törlése
Digitális iker létrehozása
Iker létrehozásához meg kell adnia a digitális iker azonosítóját és a digitális ikerobjektumot tartalmazó JSON-sztringet.
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);
Szerezze be a digitális ikereszközt
A digitális ikerazonosítóval digitális ikerpéldányt getDigitalTwin kaphatunk.
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}`);
Digitális ikerpéldányok lekérdezése
Kérdezze le a Azure Digital Twins-példányt a digitális ikrekről az Azure Digital Twins lekérdezési nyelvével. Íme egy példa a digitális ikrek lekérdezésére és az eredmények iterálására.
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}`);
}
Digitális iker törlése
A digitális ikerpéldányt deleteDigitalTwin a digitális ikerazonosítóval törölhetjük.
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);
Digitális ikerösszetevők lekérése és frissítése
Digitális ikereszköz beszerzése
A digitális ikereszköz azonosítójával getComponent és az összetevő elérési útjával kaphatunk digitális ikerkomponenst.
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}`);
Digitális ikereszköz frissítése
Digitális ikerkomponens frissítéséhez (azaz egy összetevő-tulajdonság vagy altulajdonság cseréjéhez, eltávolításához vagy hozzáadásához egy digitális ikereszközön belül) meg kell adnia egy digitális ikerpéldány-azonosítót, az összetevő elérési útját, valamint a javítási objektumok listáját a tulajdonságokkal oppath.
Az értéke op "replace", "remove" vagy "add", az értéke path pedig a frissített digitális ikerösszetevő elérési útja.
A "replace" és a "add" műveletek esetén a value tulajdonságot bele kell foglalni a komponenstulajdonság kívánt értékébe.
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,
]);
Digitális ikerkapcsolatok létrehozása és listázása
Digitális ikerkapcsolatok létrehozása
upsertRelationship kapcsolatot hoz létre egy digitális ikereszközön, amely egy digitális iker azonosítójával, a kapcsolat nevével (ebben az esetben "has"), egy kapcsolat azonosítójával (ebben az esetben "BuildingHasFloor") és a létrehozandó kapcsolatot képviselő objektummal rendelkezik.
Az objektumnak tartalmaznia kell a "$targetId" kulccsal rendelkező tulajdonságot a kapcsolat céljának megadásához.
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,
);
Digitális ikerkapcsolatok listázása
Digitális iker listRelationships esetén sorolja listIncomingRelationships fel az összes kapcsolatot, illetve az összes bejövő kapcsolatot.
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}`);
}
Eseményútvonalak létrehozása, lekérése, listázása és törlése
Eseményútvonal létrehozása
Eseményútvonal létrehozásához adja meg egy eseményútvonal azonosítóját (ebben az esetben "myEventRouteId") és a végpontot és az opcionális szűrőt tartalmazó eseményútvonal-adatokat, az alábbi példához hasonlóan. Az események szűrésével kapcsolatos további információkért tekintse meg ezt a dokumentációt.
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);
Eseményútvonal lekérése
Az eseményútvonal azonosítójával lekérhetünk egy eseményútvonalat getEventRoute .
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}`);
Eseményútvonalak listázása
Az eseményútvonalakat a használatával listEventRoutestudjuk felsorolni.
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}`);
}
Eseményútvonal törlése
Az eseményútvonal azonosítójával törölhetünk egy eseményútvonalat deleteEventRoute .
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);
Telemetriai üzenetek közzététele digitális ikereszközhöz
Digitális ikereszköz telemetriai üzenetének közzétételéhez meg kell adnia a digitális ikereszköz azonosítóját, a hasznos adatokat és az üzenet egyedi azonosítóját.
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>",
);
Telemetriai üzenetet is közzétehet egy digitális ikereszköz egy adott összetevőjéhez. A digitális ikereszköz azonosítója, a hasznos adatok és az egyedi üzenetazonosító mellett meg kell adnia a célösszetevő elérési útját is.
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>",
);
További példák
További példák a minták könyvtárában találhatók.
Hibaelhárítás
Fakitermelés
A naplózás engedélyezése segíthet a hibákról szóló hasznos információk feltárásában. A HTTP-kérések és válaszok naplójának megtekintéséhez állítsa a környezeti változót a AZURE_LOG_LEVEL következőre info: . Alternatívaként a naplózás futásidőben is engedélyezhető a setLogLevel hívásával a @azure/logger.
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
A naplók engedélyezésére vonatkozó részletesebb útmutatásért tekintse meg a @azure/logger csomag dokumentációit.
Következő lépések
- Az ügyfélkódtárak használatát bemutató részletes példákért tekintse meg a minták könyvtárát.
- Fedezze fel az Azure Digital Twins dokumentációját
Közreműködés
Ha hozzá szeretne járulni ehhez a kódtárhoz, olvassa el a közreműködői útmutatót , amelyből többet is megtudhat a kód összeállításáról és teszteléséről.
Kapcsolódó projektek
Azure SDK for JavaScript