Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
Powiązane projekty
Azure SDK for JavaScript