Sdílet prostřednictvím


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í npmná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 listEventRoutespří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.