Referenční příručka schématu pro jazyk definice pracovního postupu v Azure Logic AppsSchema reference guide for the Workflow Definition Language in Azure Logic Apps

Když vytvoříte aplikaci logiky v Azure Logic Apps, vaše aplikace logiky obsahuje základní definici pracovního postupu, která popisuje vlastní logiku, která se spouští ve vaší aplikaci logiky.When you create a logic app in Azure Logic Apps, your logic app has an underlying workflow definition that describes the actual logic that runs in your logic app. Tato definice pracovního postupu používá JSON a dodržuje strukturu, kterou ověřuje schéma jazyka definice pracovního postupu.That workflow definition uses JSON and follows a structure that's validated by the Workflow Definition Language schema. Tento odkaz poskytuje přehled této struktury a způsob, jakým schéma definuje atributy v definici pracovního postupu.This reference provides an overview about this structure and how the schema defines attributes in your workflow definition.

Struktura definice pracovního postupuWorkflow definition structure

Definice pracovního postupu vždy zahrnuje Trigger pro vytvoření instance aplikace logiky a jednu nebo více akcí, které se spustí po aktivaci triggeru.A workflow definition always includes a trigger for instantiating your logic app, plus one or more actions that run after the trigger fires.

Tady je struktura vysoké úrovně pro definici pracovního postupu:Here is the high-level structure for a workflow definition:

"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>" }
}
AtributAttribute Požaduje seRequired PopisDescription
definition AnoYes Počáteční element pro definici pracovního postupuThe starting element for your workflow definition
$schema Pouze v případě, že odkaz odkazuje na externě na definici pracovního postupuOnly when externally referencing a workflow definition Umístění souboru schématu JSON, které popisuje jazykovou verzi definice pracovního postupu, které najdete tady:The location for the JSON schema file that describes the Workflow Definition Language version, which you can find here:

https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json

actions NeNo Definice pro jednu nebo více akcí, které mají být provedeny v modulu runtime pracovního postupu.The definitions for one or more actions to execute at workflow runtime. Další informace najdete v tématu triggery a akce.For more information, see Triggers and actions.

Maximální počet akcí: 250Maximum actions: 250

contentVersion NeNo Číslo verze definice pracovního postupu, které je ve výchozím nastavení "1.0.0.0".The version number for your workflow definition, which is "1.0.0.0" by default. Chcete-li při nasazování pracovního postupu lépe identifikovat a potvrdit správnou definici, zadejte hodnotu, která se má použít.To help identify and confirm the correct definition when deploying a workflow, specify a value to use.
outputs NeNo Definice výstupů, které se mají vrátit z běhu pracovního postupuThe definitions for the outputs to return from a workflow run. Další informace najdete v tématu výstupy.For more information, see Outputs.

Maximální počet výstupů: 10Maximum outputs: 10

parameters NeNo Definice jednoho nebo více parametrů, které předají hodnoty pro použití v modulu runtime vaší aplikace logikyThe definitions for one or more parameters that pass the values to use at your logic app's runtime. Další informace najdete v tématu parametry.For more information, see Parameters.

Maximální počet parametrů: 50Maximum parameters: 50

staticResults NeNo Definice pro jednu nebo více statických výsledků vrácených akcemi jako výstupní výstupy, když jsou na těchto akcích povoleny statické výsledky.The definitions for one or more static results returned by actions as mock outputs when static results are enabled on those actions. V každé definici akce atribut runtimeConfiguration.staticResult.name odkazuje na odpovídající definici v rámci staticResults.In each action definition, the runtimeConfiguration.staticResult.name attribute references the corresponding definition inside staticResults. Další informace najdete v tématu statické výsledky.For more information, see Static results.
triggers NeNo Definice pro jednu nebo více triggerů, které vytváří instanci pracovního postupu.The definitions for one or more triggers that instantiate your workflow. Můžete definovat více než jednu Trigger, ale pouze s jazykem definice pracovního postupu, nikoli vizuálně prostřednictvím návrháře Logic Apps.You can define more than one trigger, but only with the Workflow Definition Language, not visually through the Logic Apps Designer. Další informace najdete v tématu triggery a akce.For more information, see Triggers and actions.

Maximální počet aktivačních událostí: 10Maximum triggers: 10

Aktivační události a akceTriggers and actions

V definici pracovního postupu definují oddíly triggers a actions volání, ke kterým dochází během provádění pracovního postupu.In a workflow definition, the triggers and actions sections define the calls that happen during your workflow's execution. Syntaxi a další informace o těchto oddílech najdete v tématu triggery a akce pracovních postupů.For syntax and more information about these sections, see Workflow triggers and actions.

ParametryParameters

Životní cyklus nasazení má obvykle různá prostředí pro vývoj, testování, přípravu a produkci.The deployment lifecycle usually has different environments for development, test, staging, and production. Při nasazování Logic Apps do různých prostředí pravděpodobně budete chtít v závislosti na potřebách nasazení použít jiné hodnoty, například připojovací řetězce.When deploying logic apps to various environments, you likely want to use different values, such as connection strings, based on your deployment needs. Nebo můžete mít hodnoty, které chcete znovu použít v rámci aplikace logiky bez zakódujeme nebo změny často.Or, you might have values that you want to reuse throughout your logic app without hardcoding or that change often. V sekci parameters definice pracovního postupu můžete definovat nebo upravit parametry pro hodnoty, které vaše aplikace logiky používá za běhu.In your workflow definition's parameters section, you can define or edit parameters for the values that your logic app uses at runtime. Než budete moci odkazovat na tyto parametry jinde v definici pracovního postupu, musíte tyto parametry definovat jako první.You must define these parameters first before you can reference these parameters elsewhere in your workflow definition.

Tady je obecná struktura definice parametru:Here is the general structure for a parameter definition:

"parameters": {
   "<parameter-name>": {
      "type": "<parameter-type>",
      "defaultValue": <default-parameter-value>,
      "allowedValues": [ <array-with-permitted-parameter-values> ],
      "metadata": {
         "description": "<parameter-description>"
      }
   }
},
AtributAttribute Požaduje seRequired TypType PopisDescription
název parametru < ><parameter-name> AnoYes ŘetězecString Název parametru, který chcete definovatThe name for the parameter that you want to define
< >typu parametru<parameter-type> AnoYes int, float, String, bool, Array, Object, SecureString, secureobjectint, float, string, bool, array, object, securestring, secureobject

Poznámka: pro všechna hesla, klíče a tajné klíče použijte typy securestring nebo secureobject, protože operace GET nevrátí tyto typy.Note: For all passwords, keys, and secrets, use the securestring or secureobject types because the GET operation doesn't return these types. Další informace o zabezpečení parametrů najdete v tématu doporučení zabezpečení pro parametry akce a vstup.For more information about securing parameters, see Security recommendations for action and input parameters.

Typ parametruThe type for the parameter
<výchozí parametr-hodnota ><default-parameter-value> AnoYes Stejné jako typeSame as type Výchozí hodnota parametru, která má být použita, pokud není zadána žádná hodnota při vytváření instance pracovního postupu.The default parameter value to use if no value is specified when the workflow instantiates. Atribut defaultValue je vyžadován, aby návrhář aplikace logiky mohl správně zobrazit parametr, ale můžete zadat prázdnou hodnotu.The defaultValue attribute is required so that the Logic App Designer can correctly show the parameter, but you can specify an empty value.
<pole-s parametrem----Parameter-values ><array-with-permitted-parameter-values> NeNo PoleArray Pole s hodnotami, které může parametr přijmoutAn array with values that the parameter can accept
<Parametr-description ><parameter-description> NeNo Objekt JSONJSON object Jakékoli další podrobnosti o parametrech, jako je například popis parametruAny other parameter details, such as a description for the parameter

Dále vytvořte šablonu Azure Resource Manager pro definici pracovního postupu, definujte parametry šablony, které přijímají hodnoty požadované při nasazení, nahraďte hodnoty pevně zakódované odkazy na šablony nebo parametry definice pracovního postupu jako podle potřeby a uložte hodnoty pro použití při nasazení v samostatném souboru parametrů.Next, create an Azure Resource Manager template for your workflow definition, define template parameters that accept the values you want at deployment, replace hardcoded values with references to template or workflow definition parameters as appropriate, and store the values to use at deployment in a separate parameter file. Tímto způsobem můžete tyto hodnoty snadno měnit pomocí souboru parametrů, aniž byste museli aktualizovat a znovu nasazovat aplikaci logiky.That way, you can change those values more easily through the parameter file without having to update and redeploy your logic app. Pro informace, které jsou citlivé nebo musí být zabezpečené, jako jsou uživatelská jména, hesla a tajné klíče, můžete tyto hodnoty uložit v Azure Key Vault a nechat si soubory parametrů načíst tyto hodnoty z vašeho trezoru klíčů.For information that is sensitive or must be secured, such as usernames, passwords, and secrets, you can store those values in Azure Key Vault and have your parameter file retrieve those values from your key vault. Další informace a příklady definování parametrů na úrovních definice šablony a pracovního postupu najdete v tématu Přehled: Automatizace nasazení pro Logic Apps pomocí šablon Azure Resource Manager.For more information and examples about defining parameters at the template and workflow definition levels, see Overview: Automate deployment for logic apps with Azure Resource Manager templates.

Statické výsledkyStatic results

V atributu staticResults definujte maketu outputs akce a status, že akce vrátí, když je zapnuto nastavení statického výsledku akce.In the staticResults attribute, define an action's mock outputs and status that the action returns when the action's static result setting is turned on. V definici akce odkazuje atribut runtimeConfiguration.staticResult.name na název statického výsledku definice v rámci staticResults.In the action's definition, the runtimeConfiguration.staticResult.name attribute references the name for the static result definition inside staticResults. Pomocí nastavení statických výsledků se dozvíte, jak testovat aplikace logiky pomocínapodobných dat.Learn how you can test logic apps with mock data by setting up static results.

"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": { "<...>" }
}
AtributAttribute Požaduje seRequired TypType PopisDescription
<static-Result-definition-name ><static-result-definition-name> AnoYes ŘetězecString Název statické definice výsledku, kterou může definice akce odkazovat prostřednictvím objektu runtimeConfiguration.staticResult.The name for a static result definition that an action definition can reference through a runtimeConfiguration.staticResult object. Další informace najdete v tématu nastavení konfigurace modulu runtime.For more information, see Runtime configuration settings.

Můžete použít libovolný jedinečný název, který chcete.You can use any unique name that you want. Ve výchozím nastavení se tento jedinečný název připojí s číslem, což se zvyšuje podle potřeby.By default, this unique name is appended with a number, which is incremented as necessary.

<výstup-atributy-a-Values-vráceno ><output-attributes-and-values-returned> AnoYes RůznéVaries Požadavky na tyto atributy se liší v závislosti na různých podmínkách.The requirements for these attributes vary based on different conditions. Například pokud je status Succeeded, atribut outputs obsahuje atributy a hodnoty vracené jako výstupní výstupy akcí.For example, when the status is Succeeded, the outputs attribute includes attributes and values returned as mock outputs by the action. Pokud je status Failed, atribut outputs obsahuje atribut errors, což je pole s jednou nebo více chybami message objekty, které obsahují informace o chybě.If the status is Failed, the outputs attribute includes the errors attribute, which is an array with one or more error message objects that have error information.
<hodnoty hlaviček ><header-values> NeNo JSONJSON Všechny hodnoty hlaviček vracené akcíAny header values returned by the action
<stav-kód – vráceno ><status-code-returned> AnoYes ŘetězecString Stavový kód vrácený akcíThe status code returned by the action
<akce – stav ><action-status> AnoYes ŘetězecString Stav akce, například Succeeded nebo FailedThe action's status, for example, Succeeded or Failed

Například v této definici akce HTTP atribut runtimeConfiguration.staticResult.name odkazuje HTTP0 dovnitř atributu staticResults, kde jsou definovány výstupní výstupy pro akci.For example, in this HTTP action definition, the runtimeConfiguration.staticResult.name attribute references HTTP0 inside the staticResults attribute where the mock outputs for the action are defined. Atribut runtimeConfiguration.staticResult.staticResultOptions určuje, že nastavení statického výsledku je Enabled akce HTTP.The runtimeConfiguration.staticResult.staticResultOptions attribute specifies that the static result setting is Enabled on the HTTP action.

"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 v rámci staticResults.The HTTP action returns the outputs in the HTTP0 definition inside staticResults. V tomto příkladu pro stavový kód je výstupní výstup OK.In this example, for the status code, the mock output is OK. V případě hodnot hlaviček je výstup výstupu "Content-Type": "application/JSON".For header values, the mock output is "Content-Type": "application/JSON". Pro stav akce je výstup výstupu Succeeded.For the action's status, the mock output is Succeeded.

"definition": {
   "$schema": "<...>",
   "actions": { "<...>" },
   "contentVersion": "<...>",
   "outputs": { "<...>" },
   "parameters": { "<...>" },
   "staticResults": {
      "HTTP0": {
         "outputs": {
            "headers": {
               "Content-Type": "application/JSON"
            },
            "statusCode": "OK"
         },
         "status": "Succeeded"
      }
   },
   "triggers": { "<...>" }
},

VýrazyExpressions

Pomocí formátu JSON můžete mít literálové hodnoty, které existují v době návrhu, například:With JSON, you can have literal values that exist at design time, for example:

"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.You can also have values that don't exist until run time. Pro reprezentaci těchto hodnot můžete použít výrazy, které jsou vyhodnocovány v době běhu.To represent these values, you can use expressions, which are evaluated at run time. Výraz je sekvence, která může obsahovat jednu nebo více funkcí, operátorů, proměnných, explicitních hodnot nebo konstant.An expression is a sequence that can contain one or more functions, operators, variables, explicit values, or constants. V definici pracovního postupu můžete použít výraz kdekoli v hodnotě řetězce JSON tím, že se výraz nastaví na znaménko (@).In your workflow definition, you can use an expression anywhere in a JSON string value by prefixing the expression with the at-sign (@). Při vyhodnocování výrazu, který představuje hodnotu JSON, je text výrazu extrahován odebráním znaku @ a vždy má jinou hodnotu JSON.When evaluating an expression that represents a JSON value, the expression body is extracted by removing the @ character, and always results in another JSON value.

Například pro dříve definovanou vlastnost customerName můžete získat hodnotu vlastnosti pomocí funkce Parameters () ve výrazu a přiřadit tuto hodnotu k vlastnosti accountName:For example, for the previously defined customerName property, you can get the property value by using the parameters() function in an expression and assign that value to the accountName property:

"customerName": "Sophia Owen",
"accountName": "@parameters('customerName')"

Interpolace řetězců také umožňuje použít více výrazů v řetězcích, které jsou zabaleny pomocí znaku @ a složených závorek ({}).String interpolation also lets you use multiple expressions inside strings that are wrapped by the @ character and curly braces ({}). Tady je syntaxe:Here is the syntax:

@{ "<expression1>", "<expression2>" }

Výsledkem je vždy řetězec, což vede k tomu, že tato funkce bude podobná funkci concat(), například:The result is always a string, making this capability similar to the concat() function, for example:

"customerName": "First name: @{parameters('firstName')} Last name: @{parameters('lastName')}"

Pokud máte řetězcový literál, který začíná znakem @, zajistěte předponu @ znaku jiným @ znaku jako řídicí znak: @ @If you have a literal string that starts with the @ character, prefix the @ character with another @ character as an escape character: @@

Tyto příklady ukazují, jak jsou výrazy vyhodnocovány:These examples show how expressions are evaluated:

Hodnota JSONJSON value VýsledekResult
"Sophia Owen""Sophia Owen" Vrátí tyto znaky: ' Sophia Owen 'Return these characters: 'Sophia Owen'
Array [1]"array[1]" Vrátí tyto znaky: Array [1].Return these characters: 'array[1]'
"@ @""@@" Vrátí tyto znaky jako řetězec s jedním znakem: ' @ 'Return these characters as a one-character string: '@'
"@"" @" Vrátí tyto znaky jako řetězec se dvěma znaky: ' @ '.Return these characters as a two-character string: ' @'

Pro tyto příklady Předpokládejme, že definujete "myBirthMonth" rovnající se "lednu" a "myAge" rovnající se číslu 42:For these examples, suppose you define "myBirthMonth" equal to "January" and "myAge" equal to the number 42:

"myBirthMonth": "January",
"myAge": 42

Tyto příklady ukazují, jak jsou vyhodnocovány následující výrazy:These examples show how the following expressions are evaluated:

Výraz JSONJSON expression VýsledekResult
"@parameters (' myBirthMonth ')""@parameters('myBirthMonth')" Vrátí tento řetězec: leden.Return this string: "January"
"@ {Parameters (' myBirthMonth ')}""@{parameters('myBirthMonth')}" Vrátí tento řetězec: leden.Return this string: "January"
"@parameters (' myAge ')""@parameters('myAge')" Vrátit toto číslo: 42Return this number: 42
"@ {Parameters (' myAge ')}""@{parameters('myAge')}" Vrátí toto číslo jako řetězec: "42"Return this number as a string: "42"
"Moje stáří je @ {Parameters (' myAge ')}"My age is @{parameters('myAge')}" Vrátí tento řetězec: "moje věk je 42."Return this string: "My age is 42"
"@concat (' má stáří je ', řetězec (parametry (' myAge ')))"@concat('My age is ', string(parameters('myAge')))" Vrátí tento řetězec: "moje věk je 42."Return this string: "My age is 42"
"Moje stáří je @ @ {Parameters (' myAge ')}"My age is @@{parameters('myAge')}" Vrátí tento řetězec, který obsahuje výraz: "moje stáří je @ {Parameters (' myAge ')}.Return this string, which includes the expression: "My age is @{parameters('myAge')}`

Při práci vizuálně v Návrháři Logic Apps můžete vytvářet výrazy prostřednictvím Tvůrce výrazů, například:When you're working visually in the Logic Apps Designer, you can create expressions through the Expression builder, for example:

Tvůrce výrazů > návrháře Logic Apps

Až budete hotovi, výraz se zobrazí pro odpovídající vlastnost v definici pracovního postupu, například vlastnost searchQuery zde:When you're done, the expression appears for the corresponding property in your workflow definition, for example, the searchQuery property here:

"Search_tweets": {
  "inputs": {
    "host": {
      "connection": {
        "name": "@parameters('$connections')['twitter']['connectionId']"
      }
    }
  },
  "method": "get",
  "path": "/searchtweets",
  "queries": {
    "maxResults": 20,
    "searchQuery": "Azure @{concat('firstName','', 'LastName')}"
  }
},

VýstupyOutputs

V části outputs definujte data, která může pracovní postup vrátit po dokončení práce.In the outputs section, define the data that your workflow can return when finished running. Chcete-li například sledovat konkrétní stav nebo hodnotu z každého spuštění, určete, že výstup pracovního postupu vrací tato data.For example, to track a specific status or value from each run, specify that the workflow output returns that data.

Poznámka

Při reagování na příchozí požadavky ze REST API služby nepoužívejte outputs.When responding to incoming requests from a service's REST API, do not use outputs. Místo toho použijte Response typ akce.Instead, use the Response action type. Další informace najdete v tématu triggery a akce pracovních postupů.For more information, see Workflow triggers and actions.

Tady je obecná struktura definice výstupu:Here is the general structure for an output definition:

"outputs": {
  "<key-name>": {
    "type": "<key-type>",
    "value": "<key-value>"
  }
}
AtributAttribute Požaduje seRequired TypType PopisDescription
<název klíče ><key-name> AnoYes ŘetězecString Název klíče pro návratovou hodnotu výstupuThe key name for the output return value
< >typu klíče<key-type> AnoYes int, float, String, SecureString, bool, Array, JSON objektint, float, string, securestring, bool, array, JSON object Typ výstupní návratové hodnotyThe type for the output return value
<hodnoty klíč-hodnota ><key-value> AnoYes Stejné jako < >typu klíčeSame as <key-type> Výstupní návratová hodnotaThe output return value

Pokud chcete získat výstup z pracovního postupu, přečtěte si historii spuštění vaší aplikace logiky a podrobnosti v Azure Portal nebo použijte pracovní postup REST API.To get the output from a workflow run, review your logic app's run history and details in the Azure portal or use the Workflow REST API. Výstup můžete také předat externím systémům, například Power BI, abyste mohli vytvářet řídicí panely.You can also pass output to external systems, for example, Power BI so that you can create dashboards.

OperátoryOperators

Ve výrazech a funkcíchoperátory provádějí konkrétní úkoly, jako je například odkaz na vlastnost nebo hodnotu v poli.In expressions and functions, operators perform specific tasks, such as reference a property or a value in an array.

OperátorOperator ÚkolTask
'' Chcete-li použít řetězcový literál jako vstup nebo ve výrazech a funkcích, zabalte řetězec pouze do jednoduchých uvozovek, například '<myString>'.To use a string literal as input or in expressions and functions, wrap the string only with single quotation marks, for example, '<myString>'. Nepoužívejte dvojité uvozovky (""), které jsou v konfliktu s formátováním JSON kolem celého výrazu.Do not use double quotation marks (""), which conflict with the JSON formatting around an entire expression. Například:For example:

Ano: délka (' Hello ')Yes: length('Hello')
Ne: délka ("Hello")No: length("Hello")

Když předáte pole nebo čísla, nebudete potřebovat interpunkci zalomení.When you pass arrays or numbers, you don't need wrapping punctuation. Například:For example:

Ano: délka ([1; 2; 3])Yes: length([1, 2, 3])
Ne: délka ("[1, 2, 3]")No: length("[1, 2, 3]")

[][] Pro odkazování na hodnotu na konkrétní pozici (index) v poli použijte hranaté závorky.To reference a value at a specific position (index) in an array, use square brackets. Například pro získání druhé položky v poli:For example, to get the second item in an array:

myArray[1]

.. Chcete-li odkazovat na vlastnost v objektu, použijte operátor tečka.To reference a property in an object, use the dot operator. Například pro získání vlastnosti name pro objekt customer JSON:For example, to get the name property for a customer JSON object:

"@parameters('customer').name"

?? Chcete-li odkazovat na vlastnosti null v objektu bez běhové chyby, použijte operátor otazník.To reference null properties in an object without a runtime error, use the question mark operator. Chcete-li například zpracovat výstupy s hodnotou null z triggeru, můžete použít tento výraz:For example, to handle null outputs from a trigger, you can use this expression:

@coalesce(trigger().outputs?.body?.<someProperty>, '<property-default-value>')

FunctionsFunctions

Některé výrazy získají jejich hodnoty z běhových akcí, které nemusí být k dispozici, když začne běžet definice pracovního postupu.Some expressions get their values from runtime actions that might not yet exist when your workflow definition starts to run. Chcete-li odkazovat nebo pracovat s těmito hodnotami ve výrazech, můžete použít funkce , které poskytuje jazyk definice pracovního postupu.To reference or work with these values in expressions, you can use functions that the Workflow Definition Language provides.

Další krokyNext steps