Azure Digital Twins Core-clientbibliotheek voor JavaScript - versie 1.1.0
Dit pakket bevat een isomorfische SDK voor Azure Digital Twins API om toegang te bieden tot de Azure Digital Twins-service voor het beheren van dubbels, modellen, relaties, enzovoort.
Aan de slag
Momenteel ondersteunde omgevingen
- LTS-versies van Node.js
- Nieuwste versies van Safari, Chrome, Edge en Firefox.
Zie ons ondersteuningsbeleid voor meer informatie.
Vereisten
Installeer het pakket @azure/digital-twins-core
Installeer de Digital Twins Core-clientbibliotheek voor JavaScript met npm
:
npm install @azure/digital-twins-core
Browserondersteuning
JavaScript-bundel
Als u deze clientbibliotheek in de browser wilt gebruiken, moet u eerst een bundelaar gebruiken. Raadpleeg onze documentatie voor bundeling voor meer informatie over hoe u dit doet.
CORS
Azure Digital Twins biedt momenteel geen ondersteuning voor Cross-Origin Resource Sharing (CORS). Als gevolg hiervan kan deze bibliotheek niet worden gebruikt om de sjabloonservice rechtstreeks vanuit een browser aan te roepen. Raadpleeg dit document voor hulp.
Belangrijkste concepten
Azure Digital Twins
Azure Digital Twins is een Azure IoT-service waarmee uitgebreide modellen van de fysieke omgeving worden gemaakt. Er kunnen grafieken voor ruimtelijke intelligentie mee worden gemaakt voor het modelleren van de relaties en interacties tussen personen, ruimten en apparaten. Ga naar Documentatie voor Azure Digital Twins voor meer informatie over Azure Digital Twins.
DigitalTwinsClient
DigitalTwinsClient
is het clientobject dat gebruikers van deze bibliotheek gebruiken om hun Azure Digital Twins-exemplaar te beheren.
Voorbeelden
De DigitalTwinsClient maken
Als u een nieuwe DigitalTwinsClient
wilt maken, hebt u het eindpunt naar een Azure Digital Twins-exemplaar en referenties nodig.
Hier gebruiken DefaultAzureCredential
we voor referenties uit het pakket @azure/identity
.
Het ondersteunt verschillende verificatiemechanismen en bepaalt het juiste referentietype op basis van de omgeving waarin het wordt uitgevoerd.
Zie de readme for @azure/identity voor meer informatie over de verschillende verificatieopties die u kunt gebruiken.
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);
Modellen maken, weergeven, ophalen, buiten gebruik stellen en verwijderen
Modellen maken
Om modellen te maken, geven we in een lijst met modellen door aan createModels
.
Hier maken we slechts één 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]);
Modellen weergeven
We gebruiken listModels
om alle modellen weer te geven.
const models = await serviceClient.listModels();
for await (const model of models) {
console.log(`Model ID: ${model.id}`);
}
Model ophalen
We kunnen een specifiek model ophalen met behulp van getModel
de model-id.
const model = await serviceClient.getModel("<model ID>");
Model buiten bedrijf stellen
We kunnen een model buiten gebruik stellen met behulp van decomissionModel
de model-id.
await serviceClient.decomissionModel("<model ID>");
Model verwijderen
We kunnen een model verwijderen met behulp van deleteModel
de model-id.
await serviceClient.deleteModel("<model ID>");
Digitale dubbels maken, ophalen, opvragen en verwijderen
Digitale dubbel maken
Als u een tweeling wilt maken, moet u een id opgeven voor de digitale dubbel en een JSON-tekenreeks die het digitale dubbelobject bevat.
const digitalTwinId = "myTwin";
const newTwin = "<JSON containing the digitalTwin object>";
const createdTwin = await serviceClient.upsertDigitalTwin(digitalTwinId, newTwin);
Digital twin opvragen
We kunnen een digitale dubbel ophalen met behulp van getDigitalTwin
de digitale dubbel-id.
const digitalTwinId = "myTwin";
const twin = await serviceClient.getDigitalTwin(digitalTwinId);
console.log(`DigitalTwin's etag: ${twin.eTag}`);
console.log(`DigitalTwin: ${twin.body}`);
Query's uitvoeren op digitale tweelingen
Voer een query uit op het Azure Digital Twins-exemplaar voor digitale tweelingen met behulp van de Azure Digital Twins-querytaal. Hier volgt een voorbeeld van het uitvoeren van query's op digitale dubbels en het herhalen van de resultaten.
const query = "SELECT * FROM digitaltwins";
const queryResult = serviceClient.queryTwins(query);
for await (const item of queryResult) {
console.log(`DigitalTwin: ${item}`);
}
Digitale dubbel verwijderen
We kunnen een digitale dubbel verwijderen met behulp van deleteDigitalTwin
de digitale dubbel-id.
const digitalTwinId = "myTwin";
await serviceClient.deleteDigitalTwin(digitalTwinId);
Digitale dubbelonderdelen ophalen en bijwerken
Digital Twin-onderdeel ophalen
We kunnen een digital twin-onderdeel ophalen met behulp van getComponent
de digitale dubbel-id en het pad van het onderdeel.
const digitalTwinId = "myTwin";
const componentPath = "Component1";
const component = await serviceClient.getComponent(digitalTwinId, componentPath);
console.log(`Component: ${component}`);
Digital Twin-onderdeel bijwerken
Als u een digital twin-onderdeel wilt bijwerken (dat wil zeggen een onderdeeleigenschap of subeigenschap in een digitale dubbel vervangen, verwijderen of toevoegen), moet u een digitale dubbel-id, onderdeelpad en een lijst met patchobjecten opgeven met de eigenschappen op
en path
.
De waarde van op
is 'vervangen', 'verwijderen' of 'toevoegen', en de waarde van path
is het pad naar het digitale dubbelonderdeel dat wordt bijgewerkt.
Voor de bewerkingen 'vervangen' en 'toevoegen' moet de eigenschap worden opgenomen in de value
gewenste waarde van de onderdeeleigenschap.
const digitalTwinId = "myTwin";
const componentPath = "Component1";
const patch = {
op: "replace",
path: "/ComponentProp1",
value: "value2"
};
const updateComponentResponse = await serviceClient.updateComponent(digitalTwinId, componentPath, [
patch
]);
Digitale dubbelrelaties maken en weergeven
Digitale dubbelrelaties maken
upsertRelationship
maakt een relatie op een digitale dubbel met de id van een digitale dubbel, de naam van de relatie (in dit geval 'has'), de id van een relatie (in dit geval 'BuildingHasFloor') en het object dat de relatie vertegenwoordigt die moet worden gemaakt.
Het object moet de eigenschap met de sleutel '$targetId' bevatten om het doel van de relatie op te geven.
const relationship = {
$relationshipId: "BuildingHasFloor",
$sourceId: "BuildingTwin",
$relationshipName: "has",
$targetId: "FloorTwin",
isAccessRestricted: false
};
await serviceClient.upsertRelationship(
relationship["$sourceId"],
relationship["$relationshipId"],
relationship
);
Digitale dubbelrelaties weergeven
Voor een digitale dubbel listRelationships
, en listIncomingRelationships
een lijst met alle relaties en alle binnenkomende relaties, respectievelijk.
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}`);
}
Gebeurtenisroutes maken, ophalen, weergeven en verwijderen
Gebeurtenisroute maken
Als u een gebeurtenisroute wilt maken, geeft u een id op van een gebeurtenisroute (in dit geval 'myEventRouteId') en gebeurtenisroutegegevens die het eindpunt en het optionele filter bevatten, zoals in het onderstaande voorbeeld. Zie deze documentatie voor meer informatie over het filteren van gebeurtenissen.
const eventHubEndpointName = "myEventHubEndpointName";
const eventRouteId = "myEventRouteId";
const eventFilter =
"$eventType = 'DigitalTwinTelemetryMessages' or $eventType = 'DigitalTwinLifecycleNotification'";
await serviceClient.upsertEventRoute(eventRouteId, eventHubEndpointName, eventFilter);
Gebeurtenisroute ophalen
We kunnen een gebeurtenisroute ophalen met behulp van getEventRoute
de id van de gebeurtenisroute.
const eventRouteId = "myEventRouteId";
const eventRoute = serviceClient.getEventRoute(eventRouteId);
console.log(`EventRoute: ${eventRoute}`);
Gebeurtenisroutes weergeven
We kunnen gebeurtenisroutes weergeven met behulp van listEventRoutes
.
const eventRoutes = serviceClient.listEventRoutes();
for await (const eventRoute of eventRoutes) {
console.log(`EventRoute: ${eventRoute}`);
}
Gebeurtenisroute verwijderen
We kunnen een gebeurtenisroute verwijderen met behulp van deleteEventRoute
de id van de gebeurtenisroute.
const eventRouteId = "myEventRouteId";
await serviceClient.deleteEventRoute(eventRouteId);
Telemetrieberichten voor een digitale dubbel publiceren
Als u een telemetriebericht voor een digitale dubbel wilt publiceren, moet u de digitale dubbel-id, de nettolading en een unieke id voor het bericht opgeven.
const digitalTwinId = "<digital twin ID>";
const telemetryPayload = '{"Telemetry1": 5}';
const response = await serviceClient.publishTelemetry(
digitalTwinId,
telemetryPayload,
"<unique message ID>"
);
U kunt ook een telemetriebericht publiceren voor een specifiek onderdeel in een digitale dubbel. Naast de digitale dubbel-id, nettolading en unieke bericht-id moet u het pad van het doelonderdeel opgeven.
const digitalTwinId = "<digital twin ID>";
const componentPath = "<component path>";
const telemetryPayload = '{"Telemetry1": 5}';
const response = await serviceClient.publishComponentTelemetry(
digitalTwinId,
componentPath,
telemetryPayload,
"<unique message ID>"
);
Aanvullende voorbeelden
Aanvullende voorbeelden vindt u in de map met voorbeelden.
Problemen oplossen
Logboekregistratie
Het inschakelen van logboekregistratie kan helpen bij het ontdekken van nuttige informatie over fouten. Als u een logboek met HTTP-aanvragen en -antwoorden wilt zien, stelt u de AZURE_LOG_LEVEL
omgevingsvariabele in op info
. Logboekregistratie kan ook worden ingeschakeld tijdens runtime door aan te roepen setLogLevel
in de @azure/logger
:
const { setlogLevel } = require("@azure/logger");
setLogLevel("info");
Voor meer gedetailleerde instructies over het inschakelen van logboeken kunt u de @azure-/loggerpakketdocumenten bekijken.
Volgende stappen
- Bekijk de map met voorbeelden voor gedetailleerde voorbeelden die laten zien hoe u de clientbibliotheken gebruikt.
- De documentatie voor Azure Digital Twins verkennen
Bijdragen
Als u een bijdrage wilt leveren aan deze bibliotheek, leest u de handleiding voor bijdragen voor meer informatie over het bouwen en testen van de code.
Verwante projecten
Azure SDK for JavaScript