Udostępnij za pomocą


Podstawowa biblioteka klienta usługi Azure Digital Twins dla języka JavaScript — wersja 2.0.0

Ten pakiet zawiera izomorficzny zestaw SDK dla interfejsu API usługi Azure Digital Twins, aby zapewnić dostęp do usługi Azure Digital Twins do zarządzania bliźniaczymi reprezentacjami, modelami, relacjami itp.

Wprowadzenie

Obecnie obsługiwane środowiska

  • Wersje LTS systemu Node.js
  • Najnowsze wersje przeglądarek Safari, Chrome, Edge i Firefox.

Aby uzyskać więcej informacji, zobacz nasze zasad pomocy technicznej.

Wymagania wstępne

Instalowanie pakietu @azure/digital-twins-core

Zainstaluj podstawową bibliotekę klienta usługi Digital Twins dla języka JavaScript za pomocą npmpolecenia :

npm install @azure/digital-twins-core

Obsługa przeglądarek

Pakiet JavaScript

Aby użyć tej biblioteki klienta w przeglądarce, najpierw należy użyć pakietu. Aby uzyskać szczegółowe informacje o tym, jak to zrobić, zapoznaj się z naszą dokumentacją dotyczącą tworzenia pakietów .

CORS (Cross-Origin Resource Sharing)

Usługa Azure Digital Twins obecnie nie obsługuje udostępniania zasobów między źródłami (CORS). W związku z tym ta biblioteka nie może być używana do wykonywania bezpośrednich wywołań usługi szablonu z przeglądarki. Aby uzyskać wskazówki, zapoznaj się z tym dokumentem.

Najważniejsze pojęcia

Azure Digital Twins (cyfrowe bliźniaki od Azure)

Azure Digital Twins to usługa Azure IoT, która tworzy kompleksowe modele środowiska fizycznego. Umożliwia tworzenie wykresów analizy przestrzennej w celu modelowania relacji i interakcji między osobami, przestrzeniami i urządzeniami. Więcej informacji na temat usługi Azure Digital Twins można znaleźć w dokumentacji usługi Azure Digital Twins.

DigitalTwinsClient

DigitalTwinsClient to obiekt klienta używany przez użytkowników tej biblioteki do zarządzania wystąpieniem usługi Azure Digital Twins.

Przykłady

Tworzenie klienta DigitalTwinsCreate the DigitalTwinsClient

Aby utworzyć nowy DigitalTwinsClient, potrzebny jest punkt końcowy wystąpienia usługi Azure Digital Twins i poświadczenia. W tym miejscu używamy DefaultAzureCredential poświadczeń z pakietu @azure/identity. Obsługuje różne mechanizmy uwierzytelniania i określa odpowiedni typ poświadczeń na podstawie środowiska, w którym jest wykonywany. Aby uzyskać więcej informacji na temat różnych opcji uwierzytelniania, których można użyć, zobacz .readme for @azure/identity

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);

Tworzenie, wyświetlanie, pobieranie, likwidowanie i usuwanie modeli

Tworzenie modeli

W celu stworzenia modeli przekazujemy listę modeli do createModels. Tutaj tworzymy tylko jeden 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]);

Wyświetlanie listy modeli

Używamy listModels do wymieniania wszystkich modeli.

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}`);
}

Pobierz model

Możemy uzyskać konkretny model za pomocą getModel identyfikatora modelu.

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 likwidacji

Możemy zlikwidować model za pomocą decomissionModel identyfikatora modelu.

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>");

Usuwanie modelu

Możemy usunąć model za pomocą deleteModel identyfikatora modelu.

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>");

Tworzenie, pobieranie, wykonywanie zapytań i usuwanie cyfrowych reprezentacji bliźniaczych

Tworzenie cyfrowej reprezentacji bliźniaczej

Aby utworzyć bliźniaczą reprezentację, należy podać identyfikator cyfrowej reprezentacji bliźniaczej i ciąg JSON zawierający obiekt cyfrowej reprezentacji bliźniaczej.

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);

Zdobądź cyfrowego bliźniaka

Możemy uzyskać cyfrowego bliźniaka za pomocą getDigitalTwin identyfikatora cyfrowego bliźniaka.

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}`);

Wykonywanie zapytań dotyczących cyfrowych reprezentacji bliźniaczych

Wykonywanie zapytań dotyczących wystąpienia usługi Azure Digital Twins dla cyfrowych reprezentacji bliźniaczych przy użyciu języka zapytań usługi Azure Digital Twins. Oto przykład sposobu wykonywania zapytań dotyczących cyfrowych reprezentacji bliźniaczych i iteracji po wynikach.

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}`);
}

Usuwanie cyfrowej reprezentacji naziemnej

Możemy usunąć cyfrową reprezentację bliźniaczą przy użyciu deleteDigitalTwin identyfikatora cyfrowej reprezentacji bliźniaczej.

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);

Pobieranie i aktualizowanie składników cyfrowej reprezentacji bliźniaczej

Pobierz komponent cyfrowej reprezentacji bliźniaczej

Możemy uzyskać komponent cyfrowego bliźniaka za pomocą getComponent identyfikatora cyfrowego bliźniaka i ścieżki komponentu.

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}`);

Aktualizowanie składnika cyfrowej reprezentacji bliźniaczej

Aby zaktualizować składnik cyfrowej reprezentacji bliźniaczej (tj. zastąpić, usunąć lub dodać właściwość składnika lub właściwość podrzędną w ramach cyfrowej reprezentacji bliźniaczej), należy podać identyfikator cyfrowej reprezentacji bliźniaczej, ścieżkę składnika oraz listę obiektów poprawki z właściwościami op i path. Wartość op to "zamień", "usuń" lub "dodaj", a wartość path to ścieżka do aktualizowanego składnika cyfrowej reprezentacji bliźniaczej. W przypadku operacji value "zamiana" i "dodaj" właściwość powinna być dołączona do żądanej wartości właściwości komponentu.

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,
]);

Tworzenie i wyświetlanie listy relacji cyfrowej reprezentacji bliźniaczej

Tworzenie relacji cyfrowej reprezentacji bliźniaczej

upsertRelationship tworzy relację na cyfrowej reprezentacji bliźniaczej z identyfikatorem cyfrowej reprezentacji bliźniaczej, nazwą relacji (w tym przypadku "ma"), identyfikatorem relacji (w tym przypadku "BuildingHasFloor") oraz obiektem reprezentującym relację, która ma zostać utworzona. Obiekt musi zawierać właściwość z kluczem "$targetId", aby określić cel relacji.

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,
);

Wyświetlanie listy relacji cyfrowej reprezentacji bliźniaczej

W przypadku cyfrowej reprezentacji bliźniaczej listRelationships i listIncomingRelationships wymień odpowiednio wszystkie relacje i wszystkie relacje przychodzące.

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}`);
}

Tworzenie, pobieranie, wyświetlanie listy i usuwanie tras zdarzeń

Tworzenie trasy wydarzenia

Aby utworzyć trasę zdarzenia, podaj identyfikator trasy zdarzenia (w tym przypadku "myEventRouteId") i dane trasy zdarzenia zawierające punkt końcowy i opcjonalny filtr, jak w poniższym przykładzie. Aby uzyskać więcej informacji na temat filtrowania zdarzeń, zobacz tę dokumentację.

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);

Pobierz trasę wydarzenia

Możemy uzyskać trasę zdarzenia za pomocą getEventRoute identyfikatora trasy zdarzenia.

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}`);

Wyświetlanie listy tras zdarzeń

Trasy zdarzeń możemy wyświetlić za pomocą 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}`);
}

Usuwanie trasy wydarzenia

Trasę wydarzenia możemy usunąć za pomocą deleteEventRoute identyfikatora trasy zdarzenia.

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);

Publikowanie komunikatów telemetrycznych dla cyfrowej reprezentacji bliźniaczej

Aby opublikować komunikat telemetryczny dla cyfrowej reprezentacji bliźniaczej, należy podać identyfikator cyfrowej reprezentacji bliźniaczej, ładunek i unikatowy identyfikator komunikatu.

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>",
);

Możesz również opublikować komunikat telemetryczny dla określonego składnika w cyfrowej reprezentacji bliźniaczej. Oprócz identyfikatora cyfrowej reprezentacji bliźniaczej, ładunku i unikatowego identyfikatora komunikatu należy określić ścieżkę składnika docelowego.

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>",
);

Dodatkowe przykłady

Dodatkowe przykłady można znaleźć w katalogu samples.

Rozwiązywanie problemów

Przemysł drzewny

Włączenie rejestrowania może pomóc odkryć przydatne informacje o błędach. Aby wyświetlić dziennik żądań i odpowiedzi HTTP, ustaw zmienną środowiskową AZURE_LOG_LEVEL na info. Alternatywnie rejestrowanie można włączyć w czasie wykonywania, wywołując setLogLevel w @azure/logger:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Aby uzyskać bardziej szczegółowe instrukcje dotyczące włączania dzienników, zapoznaj się z dokumentami dotyczącymi pakietów @azure/rejestratora.

Dalsze kroki

  • Zapoznaj się z katalogiem przykładów , aby uzyskać szczegółowe przykłady, które pokazują, jak korzystać z bibliotek klienckich.
  • Zapoznaj się z dokumentacją usługi Azure Digital Twins

Wkład

Jeśli chcesz współtworzyć tę bibliotekę, przeczytaj przewodnik dotyczący współtworzenia , aby dowiedzieć się więcej na temat tworzenia i testowania kodu.