Skapa tillståndskänsliga WASM-grafer med tillståndsarkivet

Tillståndslagret låter operatörerna spara och hämta data i meddelandebearbetningen och aktivera tillståndskänsliga åtgärder i dina dataflödesdiagram. Den här artikeln visar hur du använder state store med WASM-operatörer i den lokala utvecklingsmiljön för Azure IoT Operations.

Innan du slutför stegen i den här artikeln konfigurerar du din lokala utvecklingsmiljö och skapar och kör ett grafprogram lokalt. Mer information finns i Skapa WASM-moduler för dataflöden.

Förutsättningar

Slutför de krav som anges i Skapa WASM-moduler för dataflöden.

Öppna exempelarbetsytan för tillståndsarkivet

Klona lagringsplatsen Explore IoT Operations om du inte redan har gjort det.

Öppna mappen explore-iot-operations/samples/wasm/statestore-scenario. Den här mappen innehåller följande resurser:

  • graph.dataflow.yaml – Dataflödesgrafkonfigurationen med en aktiverad tillståndslageroperator.
  • statestore.json – Konfiguration av tillståndslager med nyckel/värde-par.
  • data/ – Exempel på indata för testning.
  • operators/ – Källkod för operatorerna otel-enrich och filter.

Konfigurera tillståndslagring

  1. statestore.json Öppna filen för att visa den aktuella tillståndslagringskonfigurationen.

  2. Du kan ändra värdena factoryId för eller machineId för testning. Berikningsparametern refererar till dessa nycklar.

  3. Öppna graph.dataflow.yaml och granska berikningskonfigurationen. De viktiga avsnitten i den här filen visas i följande kodfragment:

    moduleConfigurations:
      - name: module-otel-enrich/map
        parameters:
          enrichKeys:
            name: enrichKeys
            description: Comma separated list of DSS keys which will be fetched and added as attributes
            default: factoryId,machineId
    operations:
      - operationType: "source"
        name: "source"
      - operationType: "map"
        name: "module-otel-enrich/map"
        module: "otel-enrich"
      - operationType: "sink"
        name: "sink"
    

    Parameterns enrichKeys standardvärde (factoryId,machineId) avgör vilka nycklar som hämtas från tillståndsarkivet och läggs till som attribut.

  4. Se till att varje nyckel som anges i enrichKeys finns i statestore.json. Om du lägger till eller tar bort nycklar i statestore.json, uppdatera default värdet eller åsidosätt det med hjälp av TK_CONFIGURATION_PARAMETERS miljövariabeln.

Uppdatera testdata (valfritt)

Du kan ändra testdata i data/ mappen för att experimentera med olika indatavärden. Exempeldata innehåller temperaturavläsningar.

Skapa och kör scenariot för tillståndslager

Om du tidigare stoppade den lokala körningsmiljön trycker du på Ctrl+Shift+P för att öppna kommandopaletten och söka efter Azure IoT Operations: Starta utvecklingsmiljön. Välj släpp som körningsläge.

  1. Tryck på Ctrl+Shift+P för att öppna kommandopaletten och sök efter Azure IoT Operations: Bygg alla dataflödesoperatörer. Välj version som byggläge. Vänta tills bygget har slutförts.

  2. Tryck på Ctrl+Shift+P igen och sök efter Azure IoT Operations: Kör Application Graph. Välj släpp som körningsläge.

  3. data Välj mappen i VS Code-arbetsytan för dina indata. DevX-containern startas för att köra grafen med exempelindata.

Verifiera funktioner för tillståndslager

När körningen av grafen är klar:

  1. Visa resultatet i data/output/ mappen.

  2. Öppna den genererade .txt filen för att se bearbetade data. Avsnittet user properties i utdatameddelandena innehåller värdena factoryId och machineId som hämtats från tillståndsarkivet.

  3. Kontrollera loggarna i data/output/logs/host-app.log för att verifiera att operatorn otel-enrich hämtade värden från statuslagret och lade till dem som användaregenskaper i meddelandena.