Azure Digital Twins Core-Clientbibliothek für JavaScript– Version 1.1.0
Dieses Paket enthält ein isomorphes SDK für die Azure Digital Twins-API, um Zugriff auf den Azure Digital Twins-Dienst zum Verwalten von Zwillingen, Modellen, Beziehungen usw. bereitzustellen.
Erste Schritte
Die derzeitig unterstützten Umgebungen
- LTS-Versionen von Node.js
- Neueste Versionen von Safari, Chrome, Edge und Firefox.
Ausführlichere Informationen finden Sie in der Supportrichtlinie.
Voraussetzungen
Installieren Sie das Paket @azure/digital-twins-core
.
Installieren Sie die Digital Twins Core-Clientbibliothek für JavaScript mit npm
:
npm install @azure/digital-twins-core
Browserunterstützung
JavaScript-Paket
Um diese Clientbibliothek im Browser verwenden zu können, müssen Sie zunächst einen Bundler verwenden. Ausführliche Informationen dazu finden Sie in unserer Bündelungsdokumentation.
CORS
CORS (Cross-Origin Resource Sharing) wird in Azure Digital Twins derzeit nicht unterstützt. Daher kann diese Bibliothek nicht für direkte Aufrufe des Vorlagendiensts aus einem Browser verwendet werden. Weitere Informationen finden Sie in diesem Dokument .
Wichtige Begriffe
Azure Digital Twins
Azure Digital Twins ist ein Azure IoT-Dienst zur Erstellung umfassender Modelle der physischen Umgebung. Er kann Raumintelligenzgraphen erstellen, um die Beziehungen und Interaktionen zwischen Personen, Bereichen und Geräten zu modellieren. Weitere Informationen zu Azure Digital Twins finden Sie in der Dokumentation zu Azure Digital Twins.
DigitalTwinsClient
DigitalTwinsClient
ist das Clientobjekt, das Benutzer dieser Bibliothek zum Verwalten ihrer Azure Digital Twins-Instanz verwenden.
Beispiele
Erstellen des DigitalTwinsClient
Um eine neue DigitalTwinsClient
zu erstellen, benötigen Sie den Endpunkt für eine Azure Digital Twins-Instanz und Anmeldeinformationen.
Hier verwenden DefaultAzureCredential
wir für Anmeldeinformationen aus dem Paket @azure/identity
.
Es unterstützt verschiedene Authentifizierungsmechanismen und bestimmt den geeigneten Anmeldeinformationstyp basierend auf der Umgebung, in der er ausgeführt wird.
readme for @azure/identity Weitere Informationen zu den verschiedenen Authentifizierungsoptionen, die Sie verwenden können, finden Sie unter .
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);
Erstellen, Auflisten, Abrufen, Außerbetriebnahme und Löschen von Modellen
Erstellen von Modellen
Um Modelle zu erstellen, übergeben wir eine Liste von Modellen an createModels
.
Hier erstellen wir nur ein Modell.
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]);
Auflisten von Modellen
Wir verwenden listModels
zum Auflisten aller Modelle.
const models = await serviceClient.listModels();
for await (const model of models) {
console.log(`Model ID: ${model.id}`);
}
Modell abrufen
Wir können ein bestimmtes Modell mit getModel
der Modell-ID abrufen.
const model = await serviceClient.getModel("<model ID>");
Außerbetriebnahmemodell
Wir können ein Modell mit decomissionModel
mit der Modell-ID außer Betrieb setzen.
await serviceClient.decomissionModel("<model ID>");
Löschen des Modells
Wir können ein Modell mit mit deleteModel
der Modell-ID löschen.
await serviceClient.deleteModel("<model ID>");
Erstellen, Abrufen, Abfragen und Löschen von digitalen Zwillingen
Erstellen eines digitalen Zwillings
Um einen Zwilling zu erstellen, müssen Sie eine ID für den digitalen Zwilling und eine JSON-Zeichenfolge angeben, die das Objekt des digitalen Zwillings enthält.
const digitalTwinId = "myTwin";
const newTwin = "<JSON containing the digitalTwin object>";
const createdTwin = await serviceClient.upsertDigitalTwin(digitalTwinId, newTwin);
Abrufen des digitalen Zwillings
Wir können einen digitalen Zwilling mit getDigitalTwin
der ID des digitalen Zwillings erhalten.
const digitalTwinId = "myTwin";
const twin = await serviceClient.getDigitalTwin(digitalTwinId);
console.log(`DigitalTwin's etag: ${twin.eTag}`);
console.log(`DigitalTwin: ${twin.body}`);
Abfragen von digitalen Zwillingen
Fragen Sie die Azure Digital Twins-Instanz mithilfe der Azure Digital Twins-Abfragesprache nach digitalen Zwillingen ab. Hier sehen Sie ein Beispiel dafür, wie Sie digitale Zwillinge abfragen und die Ergebnisse durchlaufen.
const query = "SELECT * FROM digitaltwins";
const queryResult = serviceClient.queryTwins(query);
for await (const item of queryResult) {
console.log(`DigitalTwin: ${item}`);
}
Löschen des digitalen Zwillings
Wir können einen digitalen Zwilling mit deleteDigitalTwin
mit der ID des digitalen Zwillings löschen.
const digitalTwinId = "myTwin";
await serviceClient.deleteDigitalTwin(digitalTwinId);
Abrufen und Aktualisieren von Komponenten für digitale Zwillinge
Abrufen einer Komponente für digitale Zwillinge
Wir können eine Komponente des digitalen Zwillings mit getComponent
der ID des digitalen Zwillings und dem Pfad der Komponente abrufen.
const digitalTwinId = "myTwin";
const componentPath = "Component1";
const component = await serviceClient.getComponent(digitalTwinId, componentPath);
console.log(`Component: ${component}`);
Aktualisieren der Komponente für digitale Zwillinge
Zum Aktualisieren einer Komponente für digitale Zwillinge (d. h. ersetzen, entfernen oder hinzufügen einer Komponenteneigenschaft oder -untereigenschaft innerhalb eines digitalen Zwillings) müssen Sie eine ID des digitalen Zwillings, einen Komponentenpfad und eine Liste von Patchobjekten mit den Eigenschaften op
und path
angeben.
Der Wert von op
ist "replace", "remove" oder "add", und der Wert von path
ist der Pfad zur Komponente des digitalen Zwillings, die aktualisiert wird.
Bei "Replace"- und "add"-Vorgängen sollte die value
-Eigenschaft in den gewünschten Wert der Komponenteneigenschaft eingeschlossen werden.
const digitalTwinId = "myTwin";
const componentPath = "Component1";
const patch = {
op: "replace",
path: "/ComponentProp1",
value: "value2"
};
const updateComponentResponse = await serviceClient.updateComponent(digitalTwinId, componentPath, [
patch
]);
Erstellen und Auflisten von Beziehungen zu digitalen Zwillingen
Erstellen von Beziehungen zu digitalen Zwillingen
upsertRelationship
erstellt eine Beziehung zu einem digitalen Zwilling, der mit der ID eines digitalen Zwillings, dem Namen der Beziehung (in diesem Fall "has"), der ID einer Beziehung (in diesem Fall "BuildingHasFloor") und dem Objekt bereitgestellt wird, das die zu erstellende Beziehung darstellt.
Das -Objekt muss die -Eigenschaft mit dem Schlüssel "$targetId" enthalten, um das Ziel der Beziehung anzugeben.
const relationship = {
$relationshipId: "BuildingHasFloor",
$sourceId: "BuildingTwin",
$relationshipName: "has",
$targetId: "FloorTwin",
isAccessRestricted: false
};
await serviceClient.upsertRelationship(
relationship["$sourceId"],
relationship["$relationshipId"],
relationship
);
Auflisten von Beziehungen mit digitalen Zwillingen
Für einen digitalen Zwilling listRelationships
und listIncomingRelationships
listen Sie alle Beziehungen bzw. alle eingehenden Beziehungen auf.
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}`);
}
Erstellen, Abrufen, Auflisten und Löschen von Ereignisrouten
Erstellen einer Ereignisroute
Um eine Ereignisroute zu erstellen, geben Sie eine ID einer Ereignisroute (in diesem Fall "myEventRouteId") und Ereignisroutendaten an, die den Endpunkt und optionalen Filter enthalten, wie im folgenden Beispiel gezeigt. Weitere Informationen zum Filtern von Ereignissen finden Sie in dieser Dokumentation.
const eventHubEndpointName = "myEventHubEndpointName";
const eventRouteId = "myEventRouteId";
const eventFilter =
"$eventType = 'DigitalTwinTelemetryMessages' or $eventType = 'DigitalTwinLifecycleNotification'";
await serviceClient.upsertEventRoute(eventRouteId, eventHubEndpointName, eventFilter);
Ereignisroute abrufen
Wir können eine Ereignisroute mit der getEventRoute
Ereignisrouten-ID abrufen.
const eventRouteId = "myEventRouteId";
const eventRoute = serviceClient.getEventRoute(eventRouteId);
console.log(`EventRoute: ${eventRoute}`);
Auflisten von Ereignisrouten
Wir können Ereignisrouten mit listEventRoutes
auflisten.
const eventRoutes = serviceClient.listEventRoutes();
for await (const eventRoute of eventRoutes) {
console.log(`EventRoute: ${eventRoute}`);
}
Ereignisroute löschen
Wir können eine Ereignisroute mit mit deleteEventRoute
der Ereignisrouten-ID löschen.
const eventRouteId = "myEventRouteId";
await serviceClient.deleteEventRoute(eventRouteId);
Veröffentlichen von Telemetriemeldungen für einen digitalen Zwilling
Um eine Telemetrienachricht für einen digitalen Zwilling zu veröffentlichen, müssen Sie die ID des digitalen Zwillings, die Nutzlast und eine eindeutige ID für die Nachricht angeben.
const digitalTwinId = "<digital twin ID>";
const telemetryPayload = '{"Telemetry1": 5}';
const response = await serviceClient.publishTelemetry(
digitalTwinId,
telemetryPayload,
"<unique message ID>"
);
Sie können auch eine Telemetrienachricht für eine bestimmte Komponente in einem digitalen Zwilling veröffentlichen. Zusätzlich zur ID des digitalen Zwillings, der Nutzlast und der eindeutigen Nachrichten-ID müssen Sie den Pfad der Zielkomponente angeben.
const digitalTwinId = "<digital twin ID>";
const componentPath = "<component path>";
const telemetryPayload = '{"Telemetry1": 5}';
const response = await serviceClient.publishComponentTelemetry(
digitalTwinId,
componentPath,
telemetryPayload,
"<unique message ID>"
);
Zusätzliche Beispiele
Weitere Beispiele finden Sie im Beispielverzeichnis.
Problembehandlung
Protokollierung
Die Aktivierung der Protokollierung kann hilfreiche Informationen über Fehler aufdecken. Um ein Protokoll von HTTP-Anforderungen und -Antworten anzuzeigen, legen Sie die Umgebungsvariable AZURE_LOG_LEVEL
auf info
fest. Alternativ kann die Protokollierung zur Laufzeit aktiviert werden, indem Sie setLogLevel
in @azure/logger
aufrufen:
const { setlogLevel } = require("@azure/logger");
setLogLevel("info");
Ausführlichere Anweisungen zum Aktivieren von Protokollen finden Sie in der Paketdokumentation zu @azure/logger.
Nächste Schritte
- Sehen Sie sich das Beispielverzeichnis an, um detaillierte Beispiele zu finden, die die Verwendung der Clientbibliotheken veranschaulichen.
- Erkunden der Dokumentation zu Azure Digital Twins
Mitwirken
Wenn Sie an dieser Bibliothek mitwirken möchten, lesen Sie die Anleitung für Mitwirkende, um mehr darüber zu erfahren, wie Sie den Code erstellen und testen können.
Verwandte Projekte
Azure SDK for JavaScript