Sdílet prostřednictvím


Co jsou vzory konfigurace v Azure IoT Data Processor Preview?

Důležité

Azure IoT Operations Preview – Služba Azure Arc je aktuálně ve verzi PREVIEW. Tento software ve verzi Preview byste neměli používat v produkčních prostředích.

Právní podmínky, které platí pro funkce Azure, které jsou ve verzi beta, verzi Preview nebo které zatím nejsou veřejně dostupné, najdete v Dodatečných podmínkách použití pro Microsoft Azure verze Preview.

Několik typů konfigurace je společné pro několik fází kanálu. Tento článek popisuje způsob konfigurace cesty, dávky, šablon, opakování a doby trvání .

Cesta

Několik fází kanálu používá cestu k identifikaci umístění ve zprávě , do které se mají data číst nebo zapisovat. K definování těchto umístění použijte Path pole, které používá syntaxi jq:

  • Cesta je definována jako řetězec v uživatelském rozhraní a používá syntaxi jq .
  • Cesta je definována vzhledem ke kořenovému adresáři zprávy Zpracovatel dat. Cesta . odkazuje na celou zprávu.
  • Všechny cesty začínají .na .
  • Každý segment cesty může být:
    • .<identifier> pro alfanumerický klíč objektu, například .topic.
    • ."<identifier>" pro libovolný klíč objektu, například ."asset-id".
    • ["<identifier>"] pro libovolný klíč objektu, například ["asset-id"].
    • [<index>] pro index pole, například [2].
  • Segmenty mohou být zřetězený tak, aby vytvořily složité cesty.

Jednotlivé segmenty cesty musí odpovídat následujícím regulárním výrazům:

Vzor Regulární výraz Příklad
.<identifier> \.[a-zA-Z_][a-zA-Z0-9_]* .topic
."<identifier>" \."(\\"\|[^"])*" ."asset-id"
["<identifier>"] \["(\\"\|[^"])*"\] ["asset-id"]
[<index>] \[-?[0-9]+\] [2]

Další informace najdete v části Cesty v průvodci jq.

Příklady cest

Následující cesty jsou příklady založené na standardní struktuře zpráv zpracovatele dat:

  • .systemProperties Vrátí:

    {
      "partitionKey": "foo",
      "partitionId": 5,
      "timestamp": "2023-01-11T10:02:07Z"
    }
    
  • .payload.humidity Vrátí:

    10
    
  • .userProperties[0] Vrátí:

    {
      "key": "prop1",
      "value": "value1"
    }
    
    
  • .userProperties[0].value Vrátí:

    value1
    

Doba trvání

Několik fází vyžaduje definici doby trvání časového rozsahu. Například okna v agregované fázi a vypršení časových limitů ve fázi popisku. Tyto fáze používají Duration pole k reprezentaci této hodnoty.

Několik fází kanálu používá dobu trvání časového rozsahu. Agregační fáze má například vlastnost okna a fáze volání mají vlastnost vypršení časového limitu. K definování těchto časových rozsahů použijte Duration pole:

Doba trvání je řetězcová hodnota s následujícím formátem <number><char><number><char> , kde může být znak:

  • h:Hodinu
  • m:Minutu
  • s:Druhé
  • ms:Milisekund
  • us, µs: mikrosekundy
  • ns:Nanosecond

Příklady doby trvání

  • 2h
  • 1h10m30s
  • 3m9ms400ns

Šablony

Několik fází vyžaduje definování řetězce s kombinací dynamických a statických hodnot. Tyto fáze používají hodnoty šablon .

Šablony zpracovatele dat používají syntaxi Mustache k definování dynamických hodnot v řetězcích.

Dynamické systémové hodnoty, které jsou k dispozici pro použití v šablonách, jsou:

  • instanceId: ID instance zpracovatele dat.
  • pipelineId: ID kanálu, ve které je fáze součástí.
  • YYYY: Aktuální rok.
  • MM: Aktuální měsíc.
  • DD: Aktuální datum.
  • HH: Aktuální hodina.
  • mm: Aktuální minuta.

V současné době můžete pomocí šablon definovat cesty k souborům v cílové fázi.

Statická a dynamická pole

Některé fáze vyžadují definici hodnot, které mohou být statické řetězce nebo dynamická hodnota odvozená ze Pathzprávy. K definování těchto hodnot můžete použít statická nebo dynamická pole.

Statické nebo dynamické pole je vždy zapsáno jako objekt s polem type , které má jednu ze dvou hodnot: static nebo dynamic. Schéma se liší v závislosti na type.

Statická pole

Statická definice je pevná hodnota pro type hodnotu static. Skutečná hodnota je uložena v value.

Pole Typ Popis Požaduje se Výchozí Příklad
type const string Typ pole. Ano - static
hodnota jakékoliv Statická hodnota, která se má použít pro konfiguraci (obvykle řetězec). Ano - "static"

Následující příklady ukazují některé definice statických polí:

{
    "some-field": {
        "type": "static",
        "value": "some-static-value"
    }
}
{
    "some-boolean-field": {
        "type": "static",
        "value": true
    }
}
{
    "some-complex-field": {
        "type": "static",
        "value": {
            "some": [
                "nested",
                "data"
            ]
        }
    }
}

Dynamická pole

Pevná hodnota je typedynamic. Hodnota je cesta jq.

Pole Typ Popis Požaduje se Výchozí Příklad
type const string Typ pole Ano - dynamic
hodnota Cesta Cesta v každé zprávě, kde je možné dynamicky načíst hodnotu pole. Ano - .systemProperties.partitionKey

Následující příklad ukazuje definici dynamického pole:

{
    "some-field": {
        "type": "dynamic",
        "value": ".systemProperties.topic"
    }
}

Zkusit znovu

Fáze, které volají externím službám, můžou použít opakování ke zpracování dočasných selhání a zlepšení spolehlivosti. Při konfiguraci fáze můžete přepsat výchozí zásady opakování.

Existují čtyři možné zásady opakování:

  • default: Výchozí zásadou opakování je použití exponenciálního opakování opakování se třemi opakováními a počátečním intervalem opakování 500 ms.
  • none: Neprovádí se žádné opakování.
  • fixed: Pevná zásada opakování opakuje pevný počet opakování s pevným intervalem mezi jednotlivými opakováními.
  • exponential: Exponenciální zásada opakování opakuje pevný počet opakování s exponenciálně rostoucím intervalem mezi jednotlivými opakováními.

Pokud zvolíte default nebo none, nemusíte poskytovat žádnou další konfiguraci. Pokud zvolíte fixed nebo exponential, musíte zadat další konfiguraci:

Pevný

Pole Typ Popis Povinné? Výchozí Příklad
type string Název typu opakování: fixed Yes fixed
interval Doba trvání Počáteční časové období mezi jednotlivými opakováními. No 500ms 2s
maxRetries int Počet opakovaných pokusů od 1 do 20 No 3 20

Exponenciální

Pole Typ Popis Povinné? Výchozí Příklad
type string Název typu opakování: exponential Yes exponential
interval Doba trvání Počáteční časové období mezi jednotlivými opakováními. No 500ms 2s
maxRetries int Počet opakovaných pokusů od 1 do 20 No 3 20
maxInterval Doba trvání Maximální časové období mezi jednotlivými opakováními. No Nic 100s

Exponenciální časy opakování se vypočítají takto: Pokud interval začíná 500ms, bude několik dalších intervalů randInt(500ms, 500ms * 2^1)opakování : , , randInt(500ms, 500ms * 2^2)..., randInt(500ms, 500ms * 2^maxRetries).

Batch

Několik cílů ve výstupní fázi vám umožní dávkové zprávy před zápisem do cíle. Tyto cíle používají dávku k definování parametrů dávkování.

V současné době můžete definovat dávku na základě času. Pokud chcete definovat dávkování, musíte zadat časový interval a cestu. Path definuje, která část příchozí zprávy se má zahrnout do dávkového výstupu.

Pole Typ Popis Požaduje se Výchozí Příklad
Čas Doba trvání Jak dlouho dávková data No 60s (V destinacích, kde se vynucuje dávkování) 120s
Cesta Cesta Cesta k hodnotě v každé zprávě, která se má zahrnout do výstupu. No .payload .payload.output