Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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>" }
}
Vlastnost | 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 |
Ne | 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 |
Ne | Čí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 |
Ne | Definice výstupů, které se mají vrátit z běhu pracovního postupu. Další informace najdete v tématu Výstupy. Maximální počet výstupů: 10 |
parameters |
Ne | 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 |
Ne | 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 akce atribut runtimeConfiguration.staticResult.name odkazuje na odpovídající definici uvnitř staticResults . Další informace najdete v tématu Statické výsledky. |
triggers |
Ne | Definice jednoho nebo více triggerů, které spustí váš pracovní postup. 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 |
Spouštěče a akce
V definici pracovního postupu určují části triggers
a actions
volání, 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é vaší Logic App, aniž byste je museli pevně zakódovat nebo které 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>"
}
}
},
Atribut | Požadováno | Typ | Popis |
---|---|---|---|
< název parametru> | Ano | Řetězec | Název parametru, který chcete definovat |
< parametr-typ> | Ano | int, float, string, bool, array, object, securestring, secureobject Poznámka: Pro všechna hesla, klíče a tajné kódy použijte tyto securestring typy nebo secureobject typy, protože GET operace tyto typy nevrací. Další informace o zabezpečení parametrů naleznete v části Doporučení zabezpečení pro akční a vstupní parametry. |
Typ parametru |
< default-parameter-value> | Ano | Stejné jako type |
Výchozí hodnota parametru, která se má použít, pokud není zadána žádná hodnota při vytvoření instance pracovního postupu. Atribut defaultValue je povinný, aby Návrhář aplikace logiky mohl správně zobrazit parametr, ale můžete zadat prázdnou hodnotu. |
< pole-s-povolenými-hodnotami-parametrů> | Ne | Pole | Pole s hodnotami, které parametr může přijmout |
< parameter-description> | Ne | Objekt JSON | Všechny další podrobnosti o parametru, například popis parametru |
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žadováno | Typ | Popis |
---|---|---|---|
< static-result-definition-name> | Ano | řetězec | 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. Výchozí nastavení automaticky přiřadí jedinečnému názvu číslo, které se v případě potřeby zvýší. |
< výstupní-atributy-a-hodnoty-vrácené> | Ano | Je to různé. | Požadavky na tyto atributy se liší v závislosti na různých podmínkách. Například, když je status Succeeded , atribut outputs obsahuje atributy a hodnoty vrácené jako simulované výstupy akcí. Pokud je status Failed , atribut outputs zahrnuje atribut errors , což je pole s jedním nebo více objekty chyb message , které obsahují informace o chybě. |
< header-values> | Ne | JSON | Všechny hodnoty záhlaví vrácené akcí |
< vrácený stavový kód> | Ano | řetězec | Stavový kód vrácený akcí |
< stav akce> | Ano | řetězec | Stav akce, například Succeeded nebo Failed |
Například v této definici akce HTTP atribut runtimeConfiguration.staticResult.name
odkazuje na HTTP0
uvnitř staticResults
, kde jsou definovány výstupy napodobení pro akci. 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
napodobený výstup. Pro hodnoty záhlaví je výstup napodobeniny "Content-Type": "application/JSON"
. Pro stav akce je napodobený výstup Succeeded
.
"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 doslovné hodnoty, 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í až do doby běhu. 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 @, použijte další znak @ před ním jako únikový 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')" | Vrať 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žadováno | Typ | Popis |
---|---|---|---|
< název klíče> | Ano | String | Název klíče pro výstupní vrácenou hodnotu |
< typ klíče> | 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, například '<myString>' . 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 používat závorky nebo jiné interpunkční znaky. 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
- Zjistěte, jak programově vytvářet a spravovat logické aplikace pomocí rozhraní Workflow REST API.