Referenční příručka schématu pro jazyk definice pracovního postupu v Azure Logic Apps
Při vytváření aplikace logiky v Azure Logic Apps má aplikace logiky základní definici pracovního postupu, která popisuje skutečnou logiku spuštěnou v aplikaci logiky. Tato definice pracovního postupu používá JSON a řídí se strukturou, která je ověřena schématem jazyka definice pracovního postupu. Tento odkaz poskytuje přehled o této struktuře a o tom, jak schéma definuje atributy v definici pracovního postupu.
Struktura definice pracovního postupu
Definice pracovního postupu vždy obsahuje trigger pro vytvoření instance aplikace logiky a jednu nebo více akcí, které se spustí po aktivaci triggeru.
Tady je struktura vysoké úrovně pro definici pracovního postupu:
"definition": {
"$schema": "<workflow-definition-language-schema-version>",
"actions": { "<workflow-action-definitions>" },
"contentVersion": "<workflow-definition-version-number>",
"outputs": { "<workflow-output-definitions>" },
"parameters": { "<workflow-parameter-definitions>" },
"staticResults": { "<static-results-definitions>" },
"triggers": { "<workflow-trigger-definitions>" }
}
Atribut | Požadováno | Popis |
---|---|---|
definition |
Ano | Počáteční prvek definice pracovního postupu |
$schema |
Pouze při externím odkazování na definici pracovního postupu | Umístění souboru schématu JSON, který popisuje verzi jazyka definice pracovního postupu, kterou najdete tady: https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json |
actions |
No | Definice jedné nebo více akcí, které se mají provést za běhu pracovního postupu. Další informace najdete v tématu Triggery a akce. Maximální počet akcí: 250 |
contentVersion |
No | Číslo verze pro definici pracovního postupu, které je ve výchozím nastavení 1.0.0.0. Pokud chcete pomoct identifikovat a potvrdit správnou definici při nasazování pracovního postupu, zadejte hodnotu, kterou chcete použít. |
outputs |
No | Definice pro výstupy, které se mají vrátit ze spuštění pracovního postupu. Další informace najdete v tématu Výstupy. Maximální počet výstupů: 10 |
parameters |
No | Definice jednoho nebo více parametrů, které předávají hodnoty, které se mají použít za běhu aplikace logiky. Další informace najdete v tématu Parametry. Maximální počet parametrů: 50 |
staticResults |
No | Definice jednoho nebo více statických výsledků vrácených akcemi jako napodobené výstupy, pokud jsou u těchto akcí povoleny statické výsledky. V každé definici runtimeConfiguration.staticResult.name akce odkazuje atribut na odpovídající definici uvnitř staticResults . Další informace najdete v tématu Statické výsledky. |
triggers |
No | Definice jedné nebo více aktivačních událostí, které vytvoří instanci pracovního postupu. Můžete definovat více než jeden trigger, ale pouze pomocí jazyka definice pracovního postupu, nikoli vizuálně prostřednictvím návrháře pracovního postupu. Další informace najdete v tématu Triggery a akce. Maximální počet aktivačních událostí: 10 |
Triggery a akce
V definici pracovního postupu definují oddíly actions
volání, triggers
ke kterým dochází během provádění pracovního postupu. Syntaxi a další informace o těchto částech najdete v tématu Triggery a akce pracovního postupu.
Parametry
Životní cyklus nasazení má obvykle různá prostředí pro vývoj, testování, přípravu a produkci. Při nasazování aplikací logiky do různých prostředí budete pravděpodobně chtít používat různé hodnoty, jako jsou připojovací řetězec, na základě potřeb nasazení. Nebo můžete mít hodnoty, které chcete opakovaně používat v celé aplikaci logiky, aniž byste museli pevně zakódovat nebo se často mění. V části definice parameters
pracovního postupu můžete definovat nebo upravit parametry pro hodnoty, které vaše aplikace logiky používá za běhu. Před odkazem na tyto parametry jinde v definici pracovního postupu je nutné tyto parametry nejprve definovat.
Tady je obecná struktura definice parametru:
"parameters": {
"<parameter-name>": {
"type": "<parameter-type>",
"defaultValue": <default-parameter-value>,
"allowedValues": [ <array-with-permitted-parameter-values> ],
"metadata": {
"description": "<parameter-description>"
}
}
},
Dále vytvořte šablonu Azure Resource Manageru pro definici pracovního postupu, definujte parametry šablony, které přijímají hodnoty, které chcete použít při nasazení, nahraďte pevně zakódované hodnoty odkazy na parametry šablony nebo definice pracovního postupu a uložte hodnoty, které se mají použít při nasazení, do samostatného souboru parametrů. Díky tomu můžete tyto hodnoty snadněji měnit prostřednictvím souboru parametrů, aniž byste museli aktualizovat a znovu nasadit aplikaci logiky. Pro informace, které jsou citlivé nebo musí být zabezpečené, jako jsou uživatelská jména, hesla a tajné kódy, můžete tyto hodnoty uložit ve službě Azure Key Vault a nechat soubor parametrů načíst tyto hodnoty z trezoru klíčů. Další informace a příklady definování parametrů na úrovni šablony a definice pracovního postupu najdete v tématu Přehled: Automatizace nasazení pro aplikace logiky pomocí šablon Azure Resource Manageru.
Statické výsledky
V atributu staticResults
definujte napodobení outputs
akce a status
akci vrátí, když je zapnuté nastavení statického výsledku akce. V definici runtimeConfiguration.staticResult.name
akce odkazuje atribut na název definice statického výsledku uvnitř staticResults
. Zjistěte, jak můžete otestovat pracovní postupy aplikace logiky pomocí napodobených dat nastavením statických výsledků.
"definition": {
"$schema": "<...>",
"actions": { "<...>" },
"contentVersion": "<...>",
"outputs": { "<...>" },
"parameters": { "<...>" },
"staticResults": {
"<static-result-definition-name>": {
"outputs": {
<output-attributes-and-values-returned>,
"headers": { <header-values> },
"statusCode": "<status-code-returned>"
},
"status": "<action-status>"
}
},
"triggers": { "<...>" }
}
Atribut | Požaduje se | Type | Popis |
---|---|---|---|
<static-result-definition-name> | Ano | String | Název definice statického výsledku, na kterou může definice akce odkazovat prostřednictvím objektu runtimeConfiguration.staticResult . Další informace najdete v tématu Nastavení konfigurace modulu runtime. Můžete použít libovolný jedinečný název. Ve výchozím nastavení se tento jedinečný název připojí číslem, které se podle potřeby zvýší. |
<output-attributes-and-values-returned> | Ano | Je to různé. | Požadavky na tyto atributy se liší v závislosti na různých podmínkách. Například pokud status je Succeeded outputs , atribut obsahuje atributy a hodnoty vrácené jako napodobení výstupy akce. Pokud je Failed outputs , status atribut obsahuje errors atribut, což je pole s jedním nebo více objekty chybymessage , které obsahují informace o chybě. |
<header-values> | No | Zadejte JSON | Všechny hodnoty záhlaví vrácené akcí |
<vrácený stavový kód> | Ano | String | Stavový kód vrácený akcí |
<stav akce> | Ano | String | Stav akce, například Succeeded nebo Failed |
Například v této definici akce HTTP odkazuje atribut uvnitř HTTP0
atributustaticResults
, runtimeConfiguration.staticResult.name
kde jsou definovány výstupy napodobení akce. Atribut runtimeConfiguration.staticResult.staticResultOptions
určuje, že nastavení statického výsledku je Enabled
v akci HTTP.
"actions": {
"HTTP": {
"inputs": {
"method": "GET",
"uri": "https://www.microsoft.com"
},
"runAfter": {},
"runtimeConfiguration": {
"staticResult": {
"name": "HTTP0",
"staticResultOptions": "Enabled"
}
},
"type": "Http"
}
},
Akce HTTP vrátí výstupy v definici HTTP0
uvnitř staticResults
. V tomto příkladu pro stavový kód je OK
výstup napodobení . Pro hodnoty záhlaví je "Content-Type": "application/JSON"
výstup napodobení . Pro stav akce je Succeeded
výstup napodobení .
"definition": {
"$schema": "<...>",
"actions": { "<...>" },
"contentVersion": "<...>",
"outputs": { "<...>" },
"parameters": { "<...>" },
"staticResults": {
"HTTP0": {
"outputs": {
"headers": {
"Content-Type": "application/JSON"
},
"statusCode": "OK"
},
"status": "Succeeded"
}
},
"triggers": { "<...>" }
},
Výrazy
Ve formátu JSON můžete mít hodnoty literálů, které existují v době návrhu, například:
"customerName": "Sophia Owen",
"rainbowColors": ["red", "orange", "yellow", "green", "blue", "indigo", "violet"],
"rainbowColorsCount": 7
Můžete také mít hodnoty, které neexistují, dokud neběží. K vyjádření těchto hodnot můžete použít výrazy, které se vyhodnocují za běhu. Výraz je posloupnost, která může obsahovat jednu nebo více funkcí, operátorů, proměnných, explicitních hodnot nebo konstant. V definici pracovního postupu můžete výraz použít kdekoli v řetězcové hodnotě JSON tak, že výraz přidáte předponu znakem at-sign (@). Při vyhodnocování výrazu, který představuje hodnotu JSON, se tělo výrazu extrahuje odebráním znaku @ a vždy bude mít za následek jinou hodnotu JSON.
Například pro dříve definovanou customerName
vlastnost můžete získat hodnotu vlastnosti pomocí funkce parameters() ve výrazu a přiřadit tuto hodnotu vlastnosti accountName
:
"customerName": "Sophia Owen",
"accountName": "@parameters('customerName')"
Interpolace řetězců také umožňuje použít více výrazů uvnitř řetězců, které jsou zabaleny znakem @ a složenými závorkami ({}). Tady je syntaxe:
@{ "<expression1>", "<expression2>" }
Výsledkem je vždy řetězec, díky čemuž se tato funkce podobá concat()
funkci, například:
"customerName": "First name: @{parameters('firstName')} Last name: @{parameters('lastName')}"
Pokud máte literálový řetězec, který začíná znakem @, předpona znaku @ jiným znakem @ jako řídicí znak: @@
Tyto příklady ukazují, jak se výrazy vyhodnocují:
Hodnota JSON | Výsledek |
---|---|
"Sophia Owen" | Vrátí tyto znaky: Sophia Owen |
"matice[1]" | Vrátí tyto znaky: 'array[1]' |
"@@" | Vrátí tyto znaky jako řetězec s jedním znakem: @. |
" @" | Vrátí tyto znaky jako řetězec se dvěma znaky: @. |
V těchto příkladech předpokládejme, že definujete "myBirthMonth" se rovná "Leden" a "myAge" se rovná číslu 42:
"myBirthMonth": "January",
"myAge": 42
Tyto příklady ukazují, jak se vyhodnocují následující výrazy:
Výraz JSON | Výsledek |
---|---|
"@parameters('myBirthMonth')" | Vrátit tento řetězec: "Leden" |
"@{parameters('myBirthMonth')}" | Vrátit tento řetězec: "Leden" |
"@parameters('myAge')" | Vrátí toto číslo: 42 |
"@{parameters('myAge')}" | Vrátí toto číslo jako řetězec: "42". |
"Můj věk je @{parameters('myAge')}" | Vrátí tento řetězec: "Můj věk je 42" |
"@concat('Můj věk je ', string('parameters('myAge'))) " | Vrátí tento řetězec: "Můj věk je 42" |
"Můj věk je @@{parameters('myAge')}" | Vrátí tento řetězec, který obsahuje výraz: "Můj věk je @{parameters('myAge')}' |
Když pracujete vizuálně v návrháři pracovního postupu, můžete pomocí editoru výrazů vytvořit výrazy, například:
Po dokončení se výraz zobrazí pro odpovídající vlastnost v definici pracovního postupu, searchQuery
například vlastnost zde:
"Search_tweets": {
"inputs": {
"host": {
"connection": {
"name": "@parameters('$connections')['x']['connectionId']"
}
}
},
"method": "get",
"path": "/searchtweets",
"queries": {
"maxResults": 20,
"searchQuery": "Azure @{concat('firstName','', 'LastName')}"
}
},
Výstupy
outputs
V části definujte data, která váš pracovní postup může vrátit po dokončení spuštění. Pokud chcete například sledovat konkrétní stav nebo hodnotu z každého spuštění, určete, že výstup pracovního postupu vrátí tato data.
Poznámka:
Při odpovídání na příchozí požadavky z rozhraní REST API služby nepoužívejte outputs
. Místo toho použijte Response
typ akce.
Další informace najdete v tématu Triggery a akce pracovního postupu.
Tady je obecná struktura pro definici výstupu:
"outputs": {
"<key-name>": {
"type": "<key-type>",
"value": "<key-value>"
}
}
Atribut | Požaduje se | Type | Popis |
---|---|---|---|
<název klíče> | Ano | String | Název klíče pro výstupní vrácenou hodnotu |
<key-type> | Ano | int, float, string, securestring, bool, array, json – objekt | Typ výstupní návratové hodnoty |
<klíč-hodnota> | Ano | Stejné jako <typ klíče> | Výstupní návratová hodnota |
Pokud chcete získat výstup ze spuštění pracovního postupu, zkontrolujte historii spuštění aplikace logiky a podrobnosti na webu Azure Portal nebo použijte rozhraní REST API pracovního postupu. Výstup můžete předat také externím systémům, například Power BI, abyste mohli vytvářet řídicí panely.
Operátory
Ve výrazech a funkcích provádějí operátory určité úlohy, například odkazování na vlastnost nebo hodnotu v poli.
Operátor | Úloha |
---|---|
' |
Chcete-li použít řetězcový literál jako vstup nebo ve výrazech a funkcích, zabalte řetězec pouze jednoduchými uvozovkami, '<myString>' například . Nepoužívejte dvojité uvozovky ("" ), které kolidují s formátováním JSON kolem celého výrazu. Příklad: Ano: length('Hello') Ne: length("Hello") Když předáte pole nebo čísla, nemusíte zalamovat interpunkci. Příklad: Ano: délka([1; 2; 3]) Ne: délka("[1; 2; 3]") |
[] |
Pokud chcete odkazovat na hodnotu na konkrétní pozici (index) v poli nebo uvnitř objektu JSON, použijte hranaté závorky, například: - Získání druhé položky v poli: myArray[1] – Přístup k vlastnostem uvnitř objektu JSON: Příklad 1: setProperty(<object>, '<parent-property>', addProperty(<object>['<parent-property>'], '<child-property>', <value>) Příklad 2: lastIndexOf(triggerBody()?['subject'],'some string') |
. |
Chcete-li odkazovat na vlastnost v objektu, použijte tečkový operátor. Pokud chcete například získat name vlastnost objektu customer JSON: "parameters('customer').name" |
? |
Chcete-li odkazovat na vlastnosti null v objektu bez chyby modulu runtime, použijte operátor null-ignore (?). Pokud například chcete zpracovat výstupy null z triggeru, můžete použít následující výraz: coalesce(trigger().outputs?.body?['<someProperty>'], '<property-default-value>') |
Funkce
Některé výrazy získají hodnoty z akcí modulu runtime, které ještě nemusí existovat při spuštění definice pracovního postupu. Pokud chcete odkazovat na tyto hodnoty ve výrazech nebo s těmito hodnotami pracovat, můžete použít funkce , které poskytuje jazyk definice pracovního postupu.
Další kroky
- Další informace o akcích a triggerech jazyka definice pracovního postupu
- Informace o programovém vytváření a správě aplikací logiky pomocí rozhraní REST API pracovního postupu