Azure Digital Twins Core ügyfélkódtár JavaScripthez – 1.1.0-s verzió
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 ikerpéldányok, modellek, kapcsolatok stb. kezeléséhez.
Első lépések
Jelenleg támogatott környezetek
- A Node.jsLTS-verziói
- 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 JavaScripthez készült Digital Twins Core ügyfélkó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
Az Azure Digital Twins jelenleg nem támogatja az eltérő eredetű erőforrások megosztását (CORS). Ennek következtében ez a kódtár nem használható közvetlen hívások indítására a sablonszolgáltatáshoz böngészőből. Útmutatásért tekintse meg ezt a dokumentumot .
Fő fogalmak
Azure Digital Twins
Az Azure Digital Twins egy Azure IoT-szolgáltatás, amellyel a fizikai környezet átfogó modelljei hozhatók létre. Térintelligencia-grafikonokat hozhat létre a személyek, 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 tár felhasználói az Azure Digital Twins-példányuk kezelésére használnak.
Példák
A DigitalTwinsClient létrehozása
Új DigitalTwinsClient
létrehozásához egy Azure Digital Twins-példány végpontjára és hitelesítő adataira van szüksége.
Itt a csomag @azure/identity
hitelesítő adatait használjukDefaultAzureCredential
.
Támogatja a különböző hitelesítési mechanizmusokat, és meghatározza a megfelelő hitelesítőadat-típust az általa futtatott környezet alapján.
További információt a readme for @azure/identity különböző hitelesítési lehetőségekről talál.
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);
Modellek létrehozása, listázása, lekérése, leszerelése és törlése
Modellek létrehozása
Modellek létrehozásához átadjuk a modellek listáját a következőnek createModels
: .
Itt csak egy modellt hozunk létre.
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
listModels
Az összes modellt listázzuk.
const models = await serviceClient.listModels();
for await (const model of models) {
console.log(`Model ID: ${model.id}`);
}
Modell lekérése
A modell azonosítójával lekérhetünk egy adott modellt getModel
.
const model = await serviceClient.getModel("<model ID>");
Leszerelési modell
A modell leszereléséhez használja decomissionModel
a modellazonosítót.
await serviceClient.decomissionModel("<model ID>");
Modell törlése
A modell azonosítójával törölhetünk egy modellt deleteModel
.
await serviceClient.deleteModel("<model ID>");
Digitális ikerpéldányok létrehozása, lekérése, lekérdezése és törlése
Digitális ikerpéldány létrehozása
Ikerpéldány létrehozásához meg kell adnia a digitális ikerpéldány azonosítóját és a digitális ikerobjektumot tartalmazó JSON-sztringet.
const digitalTwinId = "myTwin";
const newTwin = "<JSON containing the digitalTwin object>";
const createdTwin = await serviceClient.upsertDigitalTwin(digitalTwinId, newTwin);
Digitális ikerpéldány beszerzése
Digitális ikerpéldányt getDigitalTwin
kaphatunk a digitális ikerpéldány azonosítójával.
const digitalTwinId = "myTwin";
const twin = await serviceClient.getDigitalTwin(digitalTwinId);
console.log(`DigitalTwin's etag: ${twin.eTag}`);
console.log(`DigitalTwin: ${twin.body}`);
Digitális ikerpéldányok lekérdezése
A digitális ikerpéldányok Azure Digital Twins-példányának lekérdezése az Azure Digital Twins lekérdezési nyelvével. Íme egy példa a digitális ikerpéldányok lekérdezésére és az eredmények iterálására.
const query = "SELECT * FROM digitaltwins";
const queryResult = serviceClient.queryTwins(query);
for await (const item of queryResult) {
console.log(`DigitalTwin: ${item}`);
}
Digitális ikerpéldány törlése
A digitális ikerpéldányt a digitális ikerpéldány deleteDigitalTwin
azonosítójával törölhetjük.
const digitalTwinId = "myTwin";
await serviceClient.deleteDigitalTwin(digitalTwinId);
Digitális ikerösszetevők beszerzése és frissítése
Digitális ikerösszetevő beszerzése
Digitális ikerösszetevőt getComponent
a digitális ikerpéldány azonosítójával és az összetevő elérési útjával szerezhetünk be.
const digitalTwinId = "myTwin";
const componentPath = "Component1";
const component = await serviceClient.getComponent(digitalTwinId, componentPath);
console.log(`Component: ${component}`);
Digitális ikerösszetevő frissítése
Digitális ikerösszetevő frissítéséhez (azaz egy összetevőtulajdonság vagy altulajdonság digitális ikerpéldányon belüli cseréjéhez, eltávolításához vagy hozzáadásához) meg kell adnia a digitális ikerpéldány azonosítóját, az összetevő elérési útját és a javításobjektumok listáját a és path
a tulajdonsággalop
.
A értéke op
"replace", "remove" vagy "add", az érték path
pedig a frissítés alatt álló digitális ikerösszetevő elérési útja.
A "replace" és a "add" műveletek esetében a value
tulajdonságnak szerepelnie kell az összetevő tulajdonság kívánt értékében.
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
létrehoz egy kapcsolatot egy digitális ikerpéldányon, amely egy digitális ikerpéldány azonosítójával, a kapcsolat nevével (ebben az esetben a "has" névvel), a kapcsolat azonosítójával (ebben az esetben a "BuildingHasFloor") és a létrehozandó kapcsolatot jelképező objektummal rendelkezik.
Az objektumnak tartalmaznia kell a "$targetId" kulcsú tulajdonságot a kapcsolat céljának megadásához.
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 ikerpéldány listRelationships
esetén, és listIncomingRelationships
sorolja fel az összes kapcsolatot, illetve az összes bejövő kapcsolatot.
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}`);
}
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 az eseményútvonal azonosítóját (ebben az esetben a "myEventRouteId" azonosítót), valamint 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.
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ó használatával getEventRoute
lekérhetünk egy eseményútvonalat.
const eventRouteId = "myEventRouteId";
const eventRoute = serviceClient.getEventRoute(eventRouteId);
console.log(`EventRoute: ${eventRoute}`);
Eseményútvonalak listázása
Az eseményútvonalakat a paranccsal listEventRoutes
listázhatjuk.
const eventRoutes = serviceClient.listEventRoutes();
for await (const eventRoute of eventRoutes) {
console.log(`EventRoute: ${eventRoute}`);
}
Eseményútvonal törlése
Az eseményútvonalat az eseményútvonal-azonosítóval deleteEventRoute
törölhetjük.
const eventRouteId = "myEventRouteId";
await serviceClient.deleteEventRoute(eventRouteId);
Digitális ikerpéldány telemetriai üzeneteinek közzététele
Digitális ikerpéldány telemetriai üzenetének közzétételéhez meg kell adnia a digitális ikerpéldány azonosítóját, a hasznos adatokat és az üzenet egyedi azonosítóját.
const digitalTwinId = "<digital twin ID>";
const telemetryPayload = '{"Telemetry1": 5}';
const response = await serviceClient.publishTelemetry(
digitalTwinId,
telemetryPayload,
"<unique message ID>"
);
Egy digitális ikerpéldány adott összetevőjére vonatkozó telemetriai üzenetet is közzétehet. A digitális ikerpéldány-azonosítón, hasznos adatokon és egyedi üzenetazonosítón kívül meg kell adnia a célösszetevő elérési útját.
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ákat a mintakönyvtárban talál.
Hibaelhárítás
Naplózá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
értékre info
. A naplózás futásidőben is engedélyezhető a következő hívással setLogLevel
@azure/logger
:
const { setlogLevel } = require("@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ót.
Következő lépések
- Az ügyfélkódtárak használatát bemutató részletes példákért tekintse meg a mintakönyvtárat .
- Az Azure Digital Twins dokumentációjának megismerése
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
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: