Maak stateful WASM-grafieken met de toestandopslag.

Met het toestandsarchief kunnen operators data bewaren en ophalen en stateful-bewerkingen in uw datastroomgrafieken mogelijk maken. In dit artikel wordt beschreven hoe u het statusarchief gebruikt met WASM-operators in de Azure IoT-bewerkingen lokale ontwikkelomgeving.

Voordat u de stappen in dit artikel uitvoert, moet u uw lokale ontwikkelomgeving instellen en lokaal een grafiektoepassing bouwen en uitvoeren. Zie voor meer informatie Build WASM-modules voor gegevensstromen.

Vereiste voorwaarden

Voltooi de vereisten die worden vermeld in build-WASM-modules voor gegevensstromen.

Open de voorbeeldwerkruimte voor het statusarchief

Kloon de opslagplaats Explore IoT Operations als u dat nog niet hebt gedaan.

Open de map explore-iot-operations/samples/wasm/statestore-scenario. Deze map bevat de volgende resources:

  • graph.dataflow.yaml - De configuratie van de gegevensstroomgrafiek met een operator met een ingeschakelde statusopslag.
  • statestore.json - Statusarchiefconfiguratie met sleutel-waardeparen.
  • data/ - Voorbeeldinvoergegevens voor testen.
  • operators/ - Broncode voor de OTel-Enrich en Filter operatoren.

De statusopslag configureren

  1. Open het statestore.json bestand om de configuratie van het huidige statusarchief weer te geven.

  2. U kunt de waarden van factoryId of machineId voor het testen wijzigen. De verrijkingsparameter verwijst naar deze sleutels.

  3. Open graph.dataflow.yaml en controleer de verrijkingsconfiguratie. De belangrijke secties van dit bestand worden weergegeven in het volgende fragment:

    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"
    

    De standaardwaarde van de enrichKeys parameter (factoryId,machineId) bepaalt welke sleutels worden opgehaald uit het statusarchief en als kenmerken worden toegevoegd.

  4. Zorg ervoor dat elke vermelde sleutel in enrichKeys bestaat in statestore.json. Als u sleutels toevoegt statestore.jsonof verwijdert, werkt u de default waarde bij of overschrijft u deze met behulp van de TK_CONFIGURATION_PARAMETERS omgevingsvariabele.

Testgegevens bijwerken (optioneel)

U kunt de testgegevens in de data/ map wijzigen om te experimenteren met verschillende invoerwaarden. De voorbeeldgegevens bevatten temperatuurmetingen.

Het scenario voor de statusopslag bouwen en uitvoeren

Als u de lokale uitvoeringsomgeving eerder hebt gestopt, drukt u op Ctrl+Shift+P om het opdrachtenpalet te openen en te zoeken naar Azure IoT-bewerkingen: Ontwikkelomgeving starten. Selecteer release als de uitvoeringsmodus.

  1. Druk op Ctrl+Shift+P om het opdrachtenpalet te openen en te zoeken naar Azure IoT-bewerkingen: Bouw alle Gegevensstroom operators. Selecteer release als de buildmodus. Wacht tot de opbouw is voltooid.

  2. Druk nogmaals op Ctrl+Shift+P en zoek naar Azure IoT-bewerkingen: Application Graph uitvoeren. Selecteer release als de uitvoeringsmodus.

  3. Selecteer de data map in uw VS Code-werkruimte voor uw invoergegevens. De DevX-container wordt gestart om de grafiek uit te voeren met de voorbeeldinvoer.

Statusopslagfunctionaliteit controleren

Nadat de uitvoering van de grafiek is voltooid:

  1. Bekijk de resultaten in de data/output/ map.

  2. Open het gegenereerde .txt bestand om de verwerkte gegevens te bekijken. De user properties gedeelte van de uitvoerberichten bevat de factoryId en machineId waarden die zijn opgehaald uit de statusopslag.

  3. Controleer de logboeken data/output/logs/host-app.log om te controleren of de otel-enrich operator waarden heeft opgehaald uit het statusarchief en deze als gebruikerseigenschappen aan de berichten heeft toegevoegd.