Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit pakket bevat een isomorfe SDK voor Azure Digital Twins-API om toegang te bieden tot de Azure Digital Twins-service voor het beheren van tweelingen, 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.
Vereiste voorwaarden
Het @azure/digital-twins-core-pakket installeren
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 bundeldocumentatie voor meer informatie over hoe u dit doet.
CORS (Cross-Origin Resource Sharing)
Azure Digital Twins biedt momenteel geen ondersteuning voor Cross-Origin Resource Sharing (CORS). Als gevolg hiervan kan deze bibliotheek niet worden gebruikt om rechtstreeks vanuit een browser naar de sjabloonservice te bellen. Raadpleeg dit document voor hulp.
Belangrijke concepten
Azure Digital Twins (digitale tweelingen van Azure)
Azure Digital Twins is een Azure IoT-service die uitgebreide modellen van de fysieke omgeving maakt. Het kan grafieken voor ruimtelijke intelligentie maken om de relaties en interacties tussen personen, ruimten en apparaten te modelleren. U kunt meer informatie over Azure Digital Twins vinden in de documentatie van Azure Digital Twins.
DigitalTwinsClient
DigitalTwinsClient is het clientobject dat gebruikers van deze bibliotheek gebruiken om hun Azure Digital Twins-exemplaar te beheren.
Voorbeelden
Maak de DigitalTwinsClient
Als u een nieuwe DigitalTwinsClientwilt maken, hebt u het eindpunt van een Azure Digital Twins-exemplaar en referenties nodig.
Hier gebruiken DefaultAzureCredential we voor inloggegevens uit het pakket @azure/identity.
Het ondersteunt verschillende authenticatiemechanismen 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 authenticatie-opties die u kunt gebruiken.
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);
Modellen maken, weergeven, ophalen, buiten gebruik stellen en verwijderen
Modellen maken
Om modellen te maken, geven we een lijst met modellen door aan createModels.
Hier maken we slechts één model.
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]);
Modellen weergeven
We gebruiken listModels om alle modellen op te sommen.
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}`);
}
Model ophalen
We kunnen een specifiek model krijgen met behulp van getModel de model-ID.
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>");
Model voor ontmanteling
We kunnen een model buiten gebruik stellen met behulp van decomissionModel de model-ID.
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>");
Model verwijderen
We kunnen een model verwijderen met behulp van deleteModel de model-ID.
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>");
Digitale tweelingen maken, ophalen, opvragen en verwijderen
Digitale tweeling maken
Als u een tweeling wilt maken, moet u een id opgeven voor de digitale tweeling en een JSON-tekenreeks die het digitale tweelingobject bevat.
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);
Koop een digitale tweeling
We kunnen een digitale tweeling krijgen met behulp van getDigitalTwin de digitale tweeling-ID.
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}`);
Digitale tweelingen opvragen
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 hoe u query's kunt uitvoeren op digitale tweelingen en hoe u de resultaten kunt herhalen.
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}`);
}
Digitale tweeling verwijderen
We kunnen een digitale tweeling verwijderen met behulp van deleteDigitalTwin de digitale tweeling-ID.
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);
Digital Twin-componenten downloaden en bijwerken
Krijg een digitale tweelingcomponent
We kunnen een digitale tweelingcomponent krijgen met behulp van getComponent de digitale tweeling-ID en het pad van de component.
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}`);
Update digitale tweelingcomponent
Als u een onderdeel van een digitale tweeling wilt bijwerken (d.w.z. een onderdeeleigenschap of subeigenschap binnen een digitale tweeling wilt vervangen, verwijderen of toevoegen), moet u een digitale-tweeling-id, een onderdeelpad en een lijst met patchobjecten met de eigenschappen op en pathopgeven.
De waarde van op is "vervangen", "verwijderen" of "toevoegen", en de waarde van path is het pad naar de digitale tweelingcomponent die wordt bijgewerkt.
Voor bewerkingen 'vervangen' en 'toevoegen' moet de eigenschap worden opgenomen met de value door u gewenste waarde van de componenteigenschap.
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,
]);
Digital twin-relaties maken en weergeven
Creëer digitale tweelingrelaties
upsertRelationship maakt een relatie op een digitale tweeling die is voorzien van de ID van een digitale tweeling, de naam van de relatie (in dit geval "heeft"), 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.
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,
);
Maak een lijst van digitale tweelingrelaties
Voor een digitale tweeling listRelationships maakt u listIncomingRelationships een lijst van respectievelijk alle relaties en alle inkomende relaties.
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}`);
}
Gebeurtenisroutes maken, ophalen, weergeven en verwijderen
Evenementroute maken
Als u een gebeurtenisroute wilt maken, geeft u een ID op van een gebeurtenisroute (in dit geval 'myEventRouteId') en gebeurtenisroutegegevens met het eindpunt en het optionele filter, zoals in het onderstaande voorbeeld. Zie deze documentatie voor meer informatie over het filteren van gebeurtenissen.
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);
Haal de route van het evenement op
We kunnen een evenementroute krijgen met behulp van getEventRoute de evenementroute-ID.
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}`);
Lijst evenementenroutes
We kunnen evenementroutes weergeven met behulp van listEventRoutes.
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}`);
}
Route van het evenement verwijderen
We kunnen een gebeurtenisroute verwijderen met behulp van deleteEventRoute de gebeurtenisroute-ID.
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);
Telemetrieberichten publiceren voor een digitale tweeling
Als u een telemetriebericht voor een digitale tweeling wilt publiceren, moet u de digitale tweeling-id, de nettolading en een unieke id voor het bericht opgeven.
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>",
);
U kunt ook een telemetriebericht publiceren voor een specifiek onderdeel in een digitale tweeling. Naast de digitale tweeling-ID, de payload en de unieke bericht-ID moet u het pad van de doelcomponent opgeven.
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>",
);
Aanvullende voorbeelden
Aanvullende voorbeelden zijn te vinden in de map met voorbeelden.
Probleemoplossingsproces
Loggen
Het inschakelen van logboekregistratie kan helpen nuttige informatie over fouten te ontdekken. Als u een logboek met HTTP-aanvragen en -antwoorden wilt zien, stelt u de AZURE_LOG_LEVEL omgevingsvariabele in op info. U kunt logboekregistratie ook tijdens runtime inschakelen door het setLogLevelvolgende aan te roepen@azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Voor meer gedetailleerde instructies over het inschakelen van logboeken, kunt u de @azure/logger pakketdocumenten bekijken.
Volgende stappen
- Bekijk de map met voorbeelden voor gedetailleerde voorbeelden die laten zien hoe u de clientbibliotheken kunt gebruiken.
- Verken de documentatie van Azure Digital Twins
Bijdragen
Als u een bijdrage wilt leveren aan deze bibliotheek, leest u de gids voor bijdragen voor meer informatie over het bouwen en testen van de code.
Verwante projecten
Azure SDK for JavaScript