Dodaj kontekst do odczytów

Wyszukaj przesunięcie kalibracji zasobu i dodaj go do każdego odczytu. Ten przykład dodaje do wartości 20 przesunięcie 2, dając correctedValue: 22.

Prerequisites

Ukończ wspólne przykładowe wymagania wstępne, w tym default profil i factory-mqtt punkt końcowy. Używaj YAML do debugowania oraz Azure CLI lub Bicep do zarządzania środowiskiem produkcyjnym.

Użyj istniejącego wbudowanego endpointu rejestru o nazwie default. Dla zmiennych środowiskowych ustaw wartości AIO_INSTANCE_NAME i RESOURCE_GROUP na istniejące nazwy instancji i grup zasobów. Dla Bicep ustaw także CUSTOM_LOCATION_NAME na swoją istniejącą niestandardową nazwę lokalizacji.

Zsynchronizuj zegar modułu zapisującego magazynu stanu z brokerem. Potwierdź, że odpowiedź +OK zakończyła się powodzeniem podczas wypełniania rekordu kalibracji przed publikacją odczytów.

Konfiguruj tabelę odwołań kalibracji

Diagram odczytu o wartości 20 wchodzącego do transformacji mapy. Transformacja wyszukuje offset 2 dla tego samego zasobu w magazynie stanu i generuje poprawioną wartość 22.

Użyj enrichment do odczytu rekordów kalibracji przechowywanych przez aplikację w magazynie stanów. Wyszukiwanie wykorzystuje kontekst dostępny podczas przetwarzania, niekoniecznie kontekst ważny w momencie próbkowania odczytu. W takim przypadku dopasuj kontekst według znacznika czasu.

Wdróż wykres kalibracyjny:

  1. W doświadczeniu operacyjnym otwórz swoją instancję i wybierz wykres przepływu danych>Utwórz wykres przepływu danych.

  2. Nadaj nazwę wykresowi add-calibration i wybierz profil default.

  3. Dodaj źródło o nazwie source używając endpoint factory-mqtt i topic factory/readings.

  4. Dodaj transformację mapy o nazwie calibrate, używając azureiotoperations/graph-dataflow-map:1.0.0 z punktu końcowego rejestru default.

  5. W konfiguracji transformacji mapy dodaj zbiór danych z State store keyfactory-calibration as calibration, Match inputs$source.assetId i $context.assetId w tej kolejności, oraz Match expression$1 == $2.

  6. Dodaj następujące zasady mapy:

    Dane wejściowe (w kolejności) Output Expression
    * * Pozostaw pole puste
    value, $context(calibration).offset correctedValue $1 + $2
  7. Dodaj miejsce docelowe o nazwie destination za pomocą endpointu factory-mqtt i topic factory/calibrated.

  8. Połącz source → calibrate → destination, a następnie wybierz Zapisz, aby wdrożyć aktywny graf.

Przed wysłaniem odczytów zapisz ten syntetyczny rekord NDJSON pod kluczem magazynu stanu factory-calibration. Użyj procedury magazynu stanów SET w Wypełnij klucz magazynu stanów.

{"assetId":"line-1","offset":2}

Opublikuj tę lekturę do factory/readings:

{"assetId":"line-1","value":20}

Spodziewaj się tego ładunku danych na factory/calibrated. Mapa zachowuje oryginalne pola i dodaje 20 + 2:

{"assetId":"line-1","value":20,"correctedValue":22}

Ten wykres zakłada dopasowany rekord kalibracyjny z przesunięciem numerycznym. Przed użyciem w produkcji zdefiniuj, jak radzić sobie z brakującym kontekstem i monitorować błędy wyszukiwania; przykład nie zawiera obsługi nieprawidłowego kontekstu.