Delen via


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

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 DigitalTwinsClientwilt 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.