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
:Hodinum
:Minutus
:Druhéms
:Milisekundus
,µs
: mikrosekundyns
: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 Path
zprá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 type
dynamic
. 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 |
Související obsah
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro