Klientská knihovna Azure Digital Twins Core pro JavaScript – verze 1.1.0
Tento balíček obsahuje izomorfní sadu SDK pro rozhraní API služby Azure Digital Twins, která poskytuje přístup ke službě Azure Digital Twins pro správu dvojčat, modelů, relací atd.
Začínáme
Aktuálně podporovaná prostředí
- LtS verze Node.js
- Nejnovější verze prohlížečů Safari, Chrome, Edge a Firefox.
Další podrobnosti najdete v našich zásadách podpory .
Požadavky
Nainstalujte balíček @azure/digital-twins-core
.
Nainstalujte klientskou knihovnu Digital Twins Core pro JavaScript pomocí npm
nástroje :
npm install @azure/digital-twins-core
Podpora prohlížečů
JavaScript Bundle
Pokud chcete tuto klientskou knihovnu používat v prohlížeči, musíte nejprve použít nástroj bundler. Podrobnosti o tom, jak to udělat, najdete v naší dokumentaci k sdružování.
CORS
Azure Digital Twins v současné době nepodporuje sdílení prostředků mezi zdroji (CORS). V důsledku toho nelze tuto knihovnu použít k přímému volání služby šablon z prohlížeče. Pokyny najdete v tomto dokumentu .
Klíčové koncepty
Azure Digital Twins
Azure Digital Twins je služba Azure IoT, která vytváří komplexní modely fyzického prostředí. Může vytvářet grafy prostorové inteligence pro modelování vztahů a interakcí mezi lidmi, prostory a zařízeními. Další informace o službě Azure Digital Twins najdete v dokumentaci ke službě Azure Digital Twins.
DigitalTwinsClient
DigitalTwinsClient
je objekt klienta, který uživatelé této knihovny používají ke správě své instance Služby Azure Digital Twins.
Příklady
Vytvoření klienta DigitalTwinsClient
Pokud chcete vytvořit nový DigitalTwinsClient
, potřebujete koncový bod instance služby Azure Digital Twins a přihlašovací údaje.
Tady používáme DefaultAzureCredential
pro přihlašovací údaje z balíčku @azure/identity
.
Podporuje různé mechanismy ověřování a určuje odpovídající typ přihlašovacích údajů na základě prostředí, ve které se provádí.
readme for @azure/identity Další informace o různých možnostech ověřování, které můžete použít, najdete v tématu .
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);
Vytváření, výpis, získání, vyřazení z provozu a odstranění modelů
Vytváření modelů
Abychom mohli vytvářet modely, předáváme seznam modelů do createModels
.
Tady vytvoříme pouze jeden 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]);
Výpis modelů
Používáme listModels
k výpisu všech modelů.
const models = await serviceClient.listModels();
for await (const model of models) {
console.log(`Model ID: ${model.id}`);
}
Získání modelu
Pomocí ID modelu můžeme získat konkrétní model getModel
.
const model = await serviceClient.getModel("<model ID>");
Vyřazení modelu z provozu
Model můžeme vyřadit z provozu pomocí decomissionModel
ID modelu.
await serviceClient.decomissionModel("<model ID>");
Odstranit model
Model můžeme odstranit pomocí deleteModel
id modelu.
await serviceClient.deleteModel("<model ID>");
Vytvoření, získání, dotazování a odstranění digitálních dvojčat
Vytvoření digitálního dvojčete
Pokud chcete vytvořit dvojče, budete muset zadat ID digitálního dvojčete a řetězec JSON obsahující objekt digitálního dvojčete.
const digitalTwinId = "myTwin";
const newTwin = "<JSON containing the digitalTwin object>";
const createdTwin = await serviceClient.upsertDigitalTwin(digitalTwinId, newTwin);
Získání digitálního dvojčete
Pomocí id digitálního dvojčete můžeme získat digitální dvojče getDigitalTwin
.
const digitalTwinId = "myTwin";
const twin = await serviceClient.getDigitalTwin(digitalTwinId);
console.log(`DigitalTwin's etag: ${twin.eTag}`);
console.log(`DigitalTwin: ${twin.body}`);
Dotazování digitálních dvojčat
Dotazování instance služby Azure Digital Twins pro digitální dvojčata pomocí dotazovacího jazyka Azure Digital Twins Tady je příklad, jak se dotazovat na digitální dvojčata a jak iterovat výsledky.
const query = "SELECT * FROM digitaltwins";
const queryResult = serviceClient.queryTwins(query);
for await (const item of queryResult) {
console.log(`DigitalTwin: ${item}`);
}
Odstranění digitálního dvojčete
Digitální dvojče můžeme odstranit pomocí deleteDigitalTwin
id digitálního dvojčete.
const digitalTwinId = "myTwin";
await serviceClient.deleteDigitalTwin(digitalTwinId);
Získání a aktualizace součástí digitálního dvojčete
Získání komponenty digitálního dvojčete
Komponentu digitálního dvojčete můžeme získat pomocí příkazu getComponent
s ID digitálního dvojčete a cestou ke komponentě.
const digitalTwinId = "myTwin";
const componentPath = "Component1";
const component = await serviceClient.getComponent(digitalTwinId, componentPath);
console.log(`Component: ${component}`);
Aktualizace komponenty digitálního dvojčete
Pokud chcete aktualizovat součást digitálního dvojčete (tj. nahradit, odebrat nebo přidat vlastnost nebo dílčí vlastnost komponenty v rámci digitálního dvojčete), musíte zadat ID digitálního dvojčete, cestu ke komponentě a seznam objektů oprav s vlastnostmi op
a path
.
Hodnota op
je "replace", "remove" nebo "add" a hodnota path
je cesta k součásti digitálního dvojčete, která se aktualizuje.
U operací value
"replace" a "add" by vlastnost měla být zahrnuta v požadované hodnotě vlastnosti komponenty.
const digitalTwinId = "myTwin";
const componentPath = "Component1";
const patch = {
op: "replace",
path: "/ComponentProp1",
value: "value2"
};
const updateComponentResponse = await serviceClient.updateComponent(digitalTwinId, componentPath, [
patch
]);
Vytvoření a výpis vztahů digitálních dvojčat
Vytvoření vztahů digitálních dvojčat
upsertRelationship
vytvoří relaci u digitálního dvojčete s ID digitálního dvojčete, názvem relace (v tomto případě "has"), ID relace (v tomto případě "BuildingHasFloor") a objektem představujícím relaci, která se má vytvořit.
Objekt musí obsahovat vlastnost s klíčem "$targetId", aby bylo možné určit cíl relace.
const relationship = {
$relationshipId: "BuildingHasFloor",
$sourceId: "BuildingTwin",
$relationshipName: "has",
$targetId: "FloorTwin",
isAccessRestricted: false
};
await serviceClient.upsertRelationship(
relationship["$sourceId"],
relationship["$relationshipId"],
relationship
);
Výpis vztahů digitálních dvojčat
Pro digitální dvojče listRelationships
a listIncomingRelationships
uveďte seznam všech relací a všech příchozích relací v uvedeném pořadí.
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}`);
}
Vytvoření, získání, výpis a odstranění tras událostí
Vytvoření trasy události
Pokud chcete vytvořit trasu události, zadejte ID trasy události (v tomto případě myEventRouteId) a data trasy událostí obsahující koncový bod a volitelný filtr jako v následujícím příkladu. Další informace o filtrování událostí najdete v této dokumentaci.
const eventHubEndpointName = "myEventHubEndpointName";
const eventRouteId = "myEventRouteId";
const eventFilter =
"$eventType = 'DigitalTwinTelemetryMessages' or $eventType = 'DigitalTwinLifecycleNotification'";
await serviceClient.upsertEventRoute(eventRouteId, eventHubEndpointName, eventFilter);
Získání trasy události
Trasu události můžeme získat pomocí s getEventRoute
ID trasy události.
const eventRouteId = "myEventRouteId";
const eventRoute = serviceClient.getEventRoute(eventRouteId);
console.log(`EventRoute: ${eventRoute}`);
Výpis tras událostí
K výpisu tras událostí můžeme použít listEventRoutes
příkaz .
const eventRoutes = serviceClient.listEventRoutes();
for await (const eventRoute of eventRoutes) {
console.log(`EventRoute: ${eventRoute}`);
}
Odstranit trasu události
Trasu události můžeme odstranit pomocí příkazu deleteEventRoute
s ID trasy události.
const eventRouteId = "myEventRouteId";
await serviceClient.deleteEventRoute(eventRouteId);
Publikování zpráv telemetrie pro digitální dvojče
Pokud chcete publikovat zprávu telemetrie pro digitální dvojče, musíte zadat ID digitálního dvojčete, datovou část a jedinečné ID zprávy.
const digitalTwinId = "<digital twin ID>";
const telemetryPayload = '{"Telemetry1": 5}';
const response = await serviceClient.publishTelemetry(
digitalTwinId,
telemetryPayload,
"<unique message ID>"
);
Můžete také publikovat telemetrické zprávy pro konkrétní komponentu v digitálním dvojčeti. Kromě ID digitálního dvojčete, datové části a jedinečného ID zprávy musíte zadat cestu k cílové komponentě.
const digitalTwinId = "<digital twin ID>";
const componentPath = "<component path>";
const telemetryPayload = '{"Telemetry1": 5}';
const response = await serviceClient.publishComponentTelemetry(
digitalTwinId,
componentPath,
telemetryPayload,
"<unique message ID>"
);
Další příklady
Další příklady najdete v adresáři samples.
Řešení potíží
protokolování
Povolení protokolování může pomoct odhalit užitečné informace o selháních. Pokud chcete zobrazit protokol požadavků a odpovědí HTTP, nastavte proměnnou AZURE_LOG_LEVEL
prostředí na info
. Případně je možné protokolování povolit za běhu voláním setLogLevel
v :@azure/logger
const { setlogLevel } = require("@azure/logger");
setLogLevel("info");
Podrobnější pokyny k povolení protokolů najdete v dokumentaci k balíčkům @azure/protokolovacího nástroje.
Další kroky
- Podívejte se do adresáře samples , kde najdete podrobné příklady, které ukazují, jak používat klientské knihovny.
- Prozkoumání dokumentace ke službě Azure Digital Twins
Přispívání
Pokud chcete přispívat do této knihovny, přečtěte si příručku pro přispívání , kde najdete další informace o tom, jak sestavit a otestovat kód.
Související projekty
Azure SDK for JavaScript