Sdílet prostřednictvím


Referenční příručka schématu pro typy triggerů a akcí v Azure Logic Apps

Tento odkaz popisuje obecné typy používané k identifikaci triggerů a akcí v základní definici pracovního postupu aplikace logiky, která je popsaná a ověřená jazykem definice pracovního postupu. Konkrétní triggery a akce konektoru, které můžete použít ve svých aplikacích logiky, najdete v seznamu v přehledu Připojení orů.

Přehled triggerů

Každý pracovní postup obsahuje trigger, který definuje volání, která vytvoří instanci a spustí pracovní postup. Tady jsou obecné kategorie aktivačních událostí:

  • Trigger dotazování , který v pravidelných intervalech kontroluje koncový bod služby

  • Trigger nabízených oznámení , který vytvoří odběr koncového bodu a poskytne adresu URL zpětného volání, aby koncový bod mohl trigger upozornit, když se konkrétní událost stane nebo jsou k dispozici data. Trigger pak před spuštěním počká na odpověď koncového bodu.

Triggery mají tyto prvky nejvyšší úrovně, i když některé jsou volitelné:

"<trigger-name>": {
   "type": "<trigger-type>",
   "inputs": { "<trigger-inputs>" },
   "recurrence": { 
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>
   },
   "conditions": [ "<array-with-conditions>" ],
   "runtimeConfiguration": { "<runtime-config-options>" },
   "splitOn": "<splitOn-expression>",
   "operationOptions": "<operation-option>"
},

Povinní účastníci

Hodnota Typ Popis
<název triggeru> String Název triggeru
<typ triggeru> String Typ triggeru, například Http nebo Api Připojení ion
<aktivační vstupy> JSON objekt Vstupy definující chování triggeru
<časové jednotky> String Jednotka času, která popisuje, jak často se trigger aktivuje: "Sekunda", "Minuta", "Hodina", "Den", "Týden", "Měsíc"
<počet časových jednotek> Celé číslo Hodnota, která určuje, jak často se aktivační událost aktivuje na základě frekvence, což je počet časových jednotek, které mají čekat, až se aktivační událost znovu aktivuje.

Tady jsou minimální a maximální intervaly:

- Měsíc: 1-16 měsíců
- Den: 1-500 dní
- Hodina: 1-12 000 hodin
- Minuta: 1-72 000 minut
- Sekunda: 1-999,999 sekundy

Pokud je například interval 6 a frekvence je "Měsíc", opakování je každých 6 měsíců.

Volitelné

Hodnota Typ Popis
<array-with-conditions> Pole Pole obsahující jednu nebo více podmínek , které určují, zda se má pracovní postup spustit. K dispozici pouze pro triggery.
<runtime-config-options> JSON objekt Chování modulu runtime triggeru můžete změnit nastavením runtimeConfiguration vlastností. Další informace najdete v tématu Nastavení konfigurace modulu runtime.
<splitOn-expression> String U triggerů, které vracejí pole, můžete zadat výraz, který rozdělí nebo rozdělí položky pole do více instancí pracovního postupu pro zpracování.
<operation-option> String Výchozí chování můžete změnit nastavením operationOptions vlastnosti. Další informace naleznete v tématu Možnosti operace.

Seznam typů aktivačních událostí

Každý typ triggeru má jiné rozhraní a vstupy, které definují chování triggeru.

Integrované triggery

Typ aktivační události Popis
HTTP Kontroluje nebo dotazuje jakýkoli koncový bod. Tento koncový bod musí odpovídat určitému kontraktu triggeru buď pomocí asynchronního 202 vzoru, nebo vrácením pole.
HTTPWebhook Vytvoří pro aplikaci logiky volatelný koncový bod, ale zavolá zadanou adresu URL pro registraci nebo zrušení registrace.
Opakování Aktivuje se na základě definovaného plánu. Pro aktivaci tohoto triggeru můžete nastavit budoucí datum a čas. Na základě frekvence můžete také zadat časy a dny pro spuštění pracovního postupu.
Požádat Vytvoří pro vaši aplikaci logiky volatelný koncový bod a označuje se také jako "ruční" trigger. Podívejte se například na pracovní postupy volání, triggeru nebo vnoření s koncovými body HTTP.

Triggery spravovaného rozhraní API

Typ aktivační události Popis
ApiConnection Kontroluje nebo dotazuje koncový bod pomocí rozhraní API nebo konektorů spravovaných Microsoftem.
Api Připojení ionWebhook Vytvoří pro pracovní postup aplikace logiky volatelný koncový bod voláním rozhraní API nebo konektorů spravovaných Microsoftem pro přihlášení k odběru a odhlášení odběru .

Triggery – Podrobné referenční informace

Trigger rozhraní API Připojení

Tato aktivační událost kontroluje nebo dotazuje koncový bod pomocí rozhraní API nebo konektorů spravovaných Microsoftem, aby se parametry tohoto triggeru mohly lišit v závislosti na koncovém bodu. Mnoho oddílů v této definici triggeru je volitelné. Chování triggeru závisí na tom, jestli jsou zahrnuté oddíly.

"<APIConnection_trigger_name>": {
   "type": "ApiConnection",
   "inputs": {
      "host": {
         "connection": {
            "name": "@parameters('$connections')['<connection-name>']['connectionId']"
         }
      },
      "method": "<method-type>",
      "path": "/<api-operation>",
      "retryPolicy": { "<retry-behavior>" },
      "queries": { "<query-parameters>" }
   },
   "recurrence": { 
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-runs-queue>
      }
   },
   "splitOn": "<splitOn-expression>",
   "operationOptions": "<operation-option>"
}

Povinní účastníci

Vlastnost Hodnota Typ Popis
Nic <Rozhraní API Připojení ion_trigger_name> String Název triggeru
host.connection.name <název připojení> String Název připojení ke spravovanému rozhraní API, které pracovní postup používá
Metoda <typ metody> String Metoda HTTP pro komunikaci se spravovaným rozhraním API: GET, PUT, POST, PATCH, DELETE
path <api-operation> String Operace rozhraní API pro volání
recurrence.frequency <časové jednotky> String Jednotka času, která popisuje, jak často se trigger aktivuje: sekunda, minuta, hodina, den, týden, měsíc
recurrence.interval <počet časových jednotek> Celé číslo Hodnota, která určuje, jak často se aktivační událost aktivuje na základě frekvence, což je počet časových jednotek, které mají čekat, až se aktivační událost znovu aktivuje.

Tady jsou minimální a maximální intervaly:

- Měsíc: 1–16 měsíců
- Den: 1-500 dní
- Hodina: 1–12 000 hodin
- Minuta: 1–72 000 minut
- Sekunda: 1–999 999 sekund

Pokud je například interval 6 a frekvence je Měsíc, opakování je každých 6 měsíců.

Volitelné

Vlastnost Hodnota Typ Popis
retryPolicy <chování opakování> JSON objekt Přizpůsobí chování opakování pro občasná selhání, která mají stavový kód 408, 429 a 5XX a případné výjimky připojení. Další informace najdete v tématu Zásady opakování.
Dotazy <parametry dotazu> JSON objekt Všechny parametry dotazu, které se mají zahrnout do volání rozhraní API. Například objekt "queries": { "api-version": "2018-01-01" } se přidá ?api-version=2018-01-01 do volání.
runtimeConfiguration.concurrency.runs <max-runs> Celé číslo Ve výchozím nastavení se instance pracovních postupů spouštějí současně (souběžně nebo paralelně) až do výchozího limitu. Pokud chcete tento limit změnit nastavením nové <hodnoty počtu> , přečtěte si téma Změna souběžnosti aktivační události.
runtimeConfiguration.maximumWaitingRuns <max-runs-queue> Celé číslo Pokud váš pracovní postup již spouští maximální počet instancí, všechna nová spuštění se umístí do této fronty až do výchozího limitu. Pokud chcete změnit výchozí limit, přečtěte si téma Změna limitu čekání na spuštění. Chcete-li změnit maximální počet instancí, zadejte hodnotu pro runtimeConfiguration.concurrency.runs vlastnost.

Poznámka: Pokud nastavíte
splitOn <splitOn-expression> String U aktivačních událostí, které vracejí pole, odkazuje tento výraz na pole, které se má použít, abyste mohli vytvořit a spustit instanci pracovního postupu pro každou položku pole, a ne použít smyčku "for each".

Tento výraz například představuje položku v poli vrácené v základním obsahu triggeru: @triggerbody()?['value']
operationOptions <operation-option> String Výchozí chování můžete změnit nastavením operationOptions vlastnosti. Další informace naleznete v tématu Možnosti operace.

Výstupy

Element (Prvek) Typ Popis
Záhlaví JSON objekt Hlavičky z odpovědi
tělo JSON objekt Text odpovědi
stavový kód Celé číslo Stavový kód z odpovědi

Příklad

Tato definice triggeru kontroluje e-maily každý den v doručené poště pro pracovní nebo školní účet:

"When_a_new_email_arrives": {
   "type": "ApiConnection",
   "inputs": {
      "host": {
         "connection": {
            "name": "@parameters('$connections')['office365']['connectionId']"
         }
      },
      "method": "get",
      "path": "/Mail/OnNewEmail",
      "queries": {
          "fetchOnlyWithAttachment": false,
          "folderPath": "Inbox",
          "importance": "Any",
          "includeAttachments": false
      }
   },
   "recurrence": {
      "frequency": "Day",
      "interval": 1
   }
}

Trigger Api Připojení ionWebhook

Tento trigger odešle žádost o předplatné koncovému bodu pomocí rozhraní API spravovaného Microsoftem, poskytne adresu URL zpětného volání, do které koncový bod může odeslat odpověď a čeká na odpověď koncového bodu. Další informace najdete v tématu Předplatná koncových bodů.

"<ApiConnectionWebhook_trigger_name>": {
   "type": "ApiConnectionWebhook",
   "inputs": {
      "body": {
          "NotificationUrl": "@{listCallbackUrl()}"
      },
      "host": {
         "connection": {
            "name": "@parameters('$connections')['<connection-name>']['connectionId']"
         }
      },
      "retryPolicy": { "<retry-behavior>" },
      "queries": "<query-parameters>"
   },
   "runTimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-run-queue>
      }
   },
   "splitOn": "<splitOn-expression>",
   "operationOptions": "<operation-option>"
}

Povinní účastníci

Hodnota Typ Popis
<název připojení> String Název připojení ke spravovanému rozhraní API, které pracovní postup používá
<body-content> JSON objekt Veškerý obsah zprávy, který se má odeslat jako datová část do spravovaného rozhraní API

Volitelné

Hodnota Typ Popis
<chování opakování> JSON objekt Přizpůsobí chování opakování pro občasná selhání, která mají stavový kód 408, 429 a 5XX a případné výjimky připojení. Další informace najdete v tématu Zásady opakování.
<parametry dotazu> JSON objekt Všechny parametry dotazu, které se mají zahrnout do volání rozhraní API

Například objekt "queries": { "api-version": "2018-01-01" } se přidá ?api-version=2018-01-01 do volání.
<max-runs> Celé číslo Ve výchozím nastavení se instance pracovních postupů spouštějí současně (souběžně nebo paralelně) až do výchozího limitu. Pokud chcete tento limit změnit nastavením nové <hodnoty počtu> , přečtěte si téma Změna souběžnosti aktivační události.
<max-runs-queue> Celé číslo Pokud váš pracovní postup již spouští maximální počet instancí, které můžete změnit na runtimeConfiguration.concurrency.runs základě vlastnosti, všechny nové spuštění se umístí do této fronty až do výchozího limitu. Pokud chcete změnit výchozí limit, přečtěte si téma Změna limitu čekání na spuštění.
<splitOn-expression> String U aktivačních událostí, které vracejí pole, odkazuje tento výraz na pole, které se má použít, abyste mohli vytvořit a spustit instanci pracovního postupu pro každou položku pole, a ne použít smyčku "for each".

Tento výraz například představuje položku v poli vrácené v základním obsahu triggeru: @triggerbody()?['value']
<operation-option> String Výchozí chování můžete změnit nastavením operationOptions vlastnosti. Další informace naleznete v tématu Možnosti operace.

Příklad

Tato definice triggeru se přihlásí k odběru rozhraní API Pro Office 365 Outlook, poskytuje adresu URL zpětného volání koncovému bodu rozhraní API a čeká, až koncový bod odpoví při přijetí nového e-mailu.

"When_a_new_email_arrives_(webhook)": {
   "type": "ApiConnectionWebhook",
   "inputs": {
      "body": {
         "NotificationUrl": "@{listCallbackUrl()}" 
      },
      "host": {
         "connection": {
            "name": "@parameters('$connections')['office365']['connectionId']"
         }
      },
      "path": "/MailSubscription/$subscriptions",
      "queries": {
          "folderPath": "Inbox",
          "hasAttachment": "Any",
          "importance": "Any"
      }
   },
   "splitOn": "@triggerBody()?['value']"
}

Trigger HTTP

Tento trigger odešle požadavek na zadaný koncový bod HTTP nebo HTTPS na základě zadaného plánu opakování. Trigger pak zkontroluje odpověď a určí, jestli se pracovní postup spustí. Další informace najdete v tématu Volání koncových bodů služby přes HTTP nebo HTTPS z Azure Logic Apps.

"HTTP": {
   "type": "Http",
   "inputs": {
      "method": "<method-type>",
      "uri": "<HTTP-or-HTTPS-endpoint-URL>",
      "headers": { "<header-content>" },
      "queries": "<query-parameters>",
      "body": "<body-content>",
      "authentication": { "<authentication-type-and-property-values>" },
      "retryPolicy": {
         "type": "<retry-behavior>"
      }
   },
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-runs-queue>
      }
   },
   "operationOptions": "<operation-option>"
}

Povinní účastníci

Vlastnost Hodnota Typ Popis
method <typ metody> String Metoda, která se má použít k odesílání odchozího požadavku: GET, PUT, POST, PATCH nebo DELETE.
uri <ADRESA URL koncového bodu HTTP nebo HTTPS> String Adresa URL koncového bodu HTTP nebo HTTPS, kam chcete odeslat odchozí požadavek. Maximální velikost řetězce: 2 kB

U služby nebo prostředku Azure tato syntaxe identifikátoru URI obsahuje ID prostředku a cestu k prostředku, ke kterému chcete získat přístup.
frequency <časové jednotky> String Jednotka času, která popisuje, jak často se trigger aktivuje: "Sekunda", "Minuta", "Hodina", "Den", "Týden", "Měsíc"
interval <počet časových jednotek> Celé číslo Hodnota, která určuje, jak často se aktivační událost aktivuje na základě frekvence, což je počet časových jednotek, které mají čekat, až se aktivační událost znovu aktivuje.

Tady jsou minimální a maximální intervaly:

- Měsíc: 1-16 měsíců
- Den: 1-500 dní
- Hodina: 1-12 000 hodin
- Minuta: 1-72 000 minut
- Sekunda: 1-999,999 sekundy

Pokud je například interval 6 a frekvence je "Měsíc", opakování je každých 6 měsíců.

Volitelné

Vlastnost Hodnota Typ Popis
headers <header-content> JSON objekt Všechny hlavičky, které potřebujete zahrnout do požadavku

Pokud chcete například nastavit jazyk a typ:

"headers": { "Accept-Language": "en-us", "Content-Type": "application/json" }
queries <parametry dotazu> JSON objekt Všechny parametry dotazu, které potřebujete použít v požadavku

Například objekt "queries": { "api-version": "2018-01-01" } se přidá ?api-version=2018-01-01 do požadavku.
body <body-content> JSON objekt Obsah zprávy, který se má odeslat jako datová část s požadavkem
authentication <authentication-type-and-property-values> JSON objekt Model ověřování, který požadavek používá k ověřování odchozích požadavků. Další informace najdete v tématu Přidání ověřování pro odchozí volání. Kromě Scheduleru authority se tato vlastnost podporuje. Pokud není zadána, výchozí hodnota je https://management.azure.com/, ale můžete použít jinou hodnotu.
retryPolicy > type <chování opakování> JSON objekt Přizpůsobí chování opakování pro občasná selhání, která mají stavový kód 408, 429 a 5XX a případné výjimky připojení. Další informace najdete v tématu Zásady opakování.
runs <max-runs> Celé číslo Ve výchozím nastavení se instance pracovních postupů spouštějí současně (souběžně nebo paralelně) až do výchozího limitu. Pokud chcete tento limit změnit nastavením nové <hodnoty počtu> , přečtěte si téma Změna souběžnosti aktivační události.
maximumWaitingRuns <max-runs-queue> Celé číslo Pokud váš pracovní postup již spouští maximální počet instancí, které můžete změnit na runtimeConfiguration.concurrency.runs základě vlastnosti, všechny nové spuštění se umístí do této fronty až do výchozího limitu. Pokud chcete změnit výchozí limit, přečtěte si téma Změna limitu čekání na spuštění.
operationOptions <operation-option> String Výchozí chování můžete změnit nastavením operationOptions vlastnosti. Další informace naleznete v tématu Možnosti operace.

Výstupy

Element (Prvek) Typ Popis
headers JSON objekt Hlavičky z odpovědi
body JSON objekt Text odpovědi
status code Celé číslo Stavový kód z odpovědi

Požadavky na příchozí požadavky

Pokud chcete dobře pracovat s vaší aplikací logiky, musí koncový bod vyhovovat určitému vzoru triggeru nebo kontraktu a rozpoznat tyto vlastnosti odpovědi:

Vlastnost Požadováno Popis
Stavový kód Ano Stavový kód "200 OK" spustí spuštění. Žádné jiné stavové kódy nespustí spuštění.
Opakování hlavičky No Počet sekund, než se aplikace logiky znovu dotazuje koncového bodu
Záhlaví umístění No Adresa URL, která se má volat v dalším intervalu dotazování. Pokud není zadáno, použije se původní adresa URL.

Příklad chování pro různé požadavky

Stavový kód Opakovat po Chování
200 {none} Spusťte pracovní postup a po definovaném opakování znovu zkontrolujte další data.
200 10 sekund Spusťte pracovní postup a po 10 sekundách znovu zkontrolujte další data.
202 60 sekund Neaktivujte pracovní postup. Další pokus se provede za jednu minutu, v závislosti na definovaném opakování. Pokud je definované opakování menší než jedna minuta, má přednost před opakováním záhlaví. V opačném případě se použije definované opakování.
400 {none} Chybný požadavek, nespustí pracovní postup. Pokud není definována žádná retryPolicy , použije se výchozí zásada. Po dosažení počtu opakování trigger znovu zkontroluje data po definovaném opakování.
500 {none} Chyba serveru, nespustí pracovní postup. Pokud není definována žádná retryPolicy , použije se výchozí zásada. Po dosažení počtu opakování trigger znovu zkontroluje data po definovaném opakování.

Trigger HTTPWebhook

Tento trigger umožňuje volání aplikace logiky vytvořením koncového bodu, který může zaregistrovat předplatné voláním zadané adresy URL koncového bodu. Když tento trigger vytvoříte ve svém pracovním postupu, odchozí požadavek provede volání pro registraci předplatného. Trigger tak může začít naslouchat událostem. Když operace tuto aktivační událost zneplatní, odchozí požadavek automaticky zavolá zrušení předplatného. Další informace najdete v tématu Předplatná koncových bodů.

U triggeru HTTPWebhook můžete také zadat asynchronní omezení. Chování triggeru závisí na oddílech, které používáte nebo vynecháte.

"HTTP_Webhook": {
   "type": "HttpWebhook",
   "inputs": {
      "subscribe": {
         "method": "<method-type>",
         "uri": "<endpoint-subscribe-URL>",
         "headers": { "<header-content>" },
         "body": "<body-content>",
         "authentication": { "<authentication-type>" },
         "retryPolicy": { "<retry-behavior>" }
      },
      "unsubscribe": {
         "method": "<method-type>",
         "url": "<endpoint-unsubscribe-URL>",
         "headers": { "<header-content>" },
         "body": "<body-content>",
         "authentication": { "<authentication-type>" }
      }
   },
   "runTimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-runs-queue>
      }
   },
   "operationOptions": "<operation-option>"
}

Některé hodnoty, jako <je typ> metody, jsou k dispozici jak pro objekty "unsubscribe" "subscribe", tak pro objekty.

Povinní účastníci

Hodnota Typ Popis
<typ metody> String Metoda HTTP, která se má použít pro požadavek předplatného: GET, PUT, POST, PATCH nebo DELETE
<endpoint-subscribe-URL> String Adresa URL koncového bodu, kam se má odeslat žádost o předplatné

Volitelné

Hodnota Typ Popis
<typ metody> String Metoda HTTP, která se má použít pro požadavek zrušení: "GET", "PUT", "POST", "PATCH" nebo "DELETE"
<adresa URL pro odhlášení odběru koncového bodu> String Adresa URL koncového bodu, kam se má odeslat požadavek na zrušení
<body-content> String Jakýkoli obsah zprávy, který se má odeslat v předplatném nebo v žádosti o zrušení
<typ ověřování> JSON objekt Model ověřování, který požadavek používá k ověřování odchozích požadavků. Další informace najdete v tématu Přidání ověřování pro odchozí volání.
<chování opakování> JSON objekt Přizpůsobí chování opakování pro občasná selhání, která mají stavový kód 408, 429 a 5XX a případné výjimky připojení. Další informace najdete v tématu Zásady opakování.
<max-runs> Celé číslo Ve výchozím nastavení se instance pracovního postupu spouští současně (souběžně nebo paralelně) až do výchozího limitu. Pokud chcete tento limit změnit nastavením nové <hodnoty počtu> , přečtěte si téma Změna souběžnosti aktivační události.
<max-runs-queue> Celé číslo Pokud váš pracovní postup již spouští maximální počet instancí, které můžete změnit na runtimeConfiguration.concurrency.runs základě vlastnosti, všechny nové spuštění se umístí do této fronty až do výchozího limitu. Pokud chcete změnit výchozí limit, přečtěte si téma Změna limitu čekání na spuštění.
<operation-option> String Výchozí chování můžete změnit nastavením operationOptions vlastnosti. Další informace naleznete v tématu Možnosti operace.

Výstupy

Element (Prvek) Typ Popis
záhlaví JSON objekt Hlavičky z odpovědi
text JSON objekt Text odpovědi
stavový kód Celé číslo Stavový kód z odpovědi

Příklad

Tento trigger vytvoří odběr zadaného koncového bodu, poskytne jedinečnou adresu URL zpětného volání a čeká na nově publikované články o technologiích.

"HTTP_Webhook": {
   "type": "HttpWebhook",
   "inputs": {
      "subscribe": {
         "method": "POST",
         "uri": "https://pubsubhubbub.appspot.com/subscribe",
         "body": {
            "hub.callback": "@{listCallbackUrl()}",
            "hub.mode": "subscribe",
            "hub.topic": "https://pubsubhubbub.appspot.com/articleCategories/technology"
         },
      },
      "unsubscribe": {
         "method": "POST",
         "url": "https://pubsubhubbub.appspot.com/subscribe",
         "body": {
            "hub.callback": "@{workflow().endpoint}@{listCallbackUrl()}",
            "hub.mode": "unsubscribe",
            "hub.topic": "https://pubsubhubbub.appspot.com/articleCategories/technology"
         }
      }
   }
}

Trigger opakování

Tato aktivační událost se spustí na základě zadaného plánu opakování a poskytuje snadný způsob, jak vytvořit pravidelně spuštěný pracovní postup.

"Recurrence": {
   "type": "Recurrence",
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>,
      "startTime": "<start-date-time-with-format-YYYY-MM-DDThh:mm:ss>",
      "timeZone": "<time-zone>",
      "schedule": {
         // Applies only when frequency is Day or Week. Separate values with commas.
         "hours": [ <one-or-more-hour-marks> ], 
         // Applies only when frequency is Day or Week. Separate values with commas.
         "minutes": [ <one-or-more-minute-marks> ], 
         // Applies only when frequency is Week. Separate values with commas.
         "weekDays": [ "Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday" ] 
      }
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-runs-queue>
      }
   },
   "operationOptions": "<operation-option>"
}

Povinní účastníci

Hodnota Typ Popis
<časové jednotky> String Jednotka času, která popisuje, jak často se trigger aktivuje: "Sekunda", "Minuta", "Hodina", "Den", "Týden", "Měsíc"
<počet časových jednotek> Celé číslo Hodnota, která určuje, jak často se aktivační událost aktivuje na základě frekvence, což je počet časových jednotek, které mají čekat, až se aktivační událost znovu aktivuje.

Tady jsou minimální a maximální intervaly:

- Měsíc: 1-16 měsíců
- Den: 1-500 dní
- Hodina: 1-12 000 hodin
- Minuta: 1-72 000 minut
- Sekunda: 1-999,999 sekundy

Pokud je například interval 6 a frekvence je "Měsíc", opakování je každých 6 měsíců.

Volitelné

Hodnota Typ Popis
<start-date-time-with-format-RRRR-MM-DDThh:mm:ss> String Počáteční datum a čas v tomto formátu:

YYYY-MM-DDThh:mm:ss, pokud zadáte časové pásmo

-Nebo-

YYYY-MM-DDThh:mm:ssZ, pokud nezadáte časové pásmo

Pokud například chcete 18. září 2017 v 2:00, zadejte "2017-09-18T14:00:00" a zadejte časové pásmo, například "Tichomoří standardní čas", nebo zadejte "2017-09-18T14:00:00Z" bez časového pásma.

Poznámka: Tento počáteční čas má v budoucnu maximálně 49 let a musí dodržovat specifikaci data a času ISO 8601 ve formátu data a času UTC, ale bez posunu UTC. Pokud nezadáte časové pásmo, musíte na konec přidat písmeno "Z" bez mezer. Tento "Z" odkazuje na ekvivalentní námořní čas.

U jednoduchých plánů je počáteční čas prvním výskytem, zatímco u složitých plánů se trigger neaktivuje dříve než čas zahájení. Další informace o počátečních datech a časech najdete v tématu Vytváření a plánování pravidelně spuštěných úkolů.
<časové pásmo> String Platí jenom v případě, že zadáte počáteční čas, protože tento trigger nepřijímá posun UTC. Zadejte časové pásmo, které chcete použít.
<1 nebo více hodinových známek> Celé číslo nebo celočíselné pole Pokud zadáte "Den" nebo "Týden" pro frequency, můžete zadat jedno nebo více celých čísel od 0 do 23 oddělené čárkami jako hodiny dne, kdy chcete pracovní postup spustit.

Pokud například zadáte "10", "12" a "14", získáte jako značky hodin 10:00, 12:00 a 2:00.
<1 nebo víceminutových známek> Celé číslo nebo celočíselné pole Pokud zadáte "Den" nebo "Týden" pro frequency, můžete zadat jedno nebo více celých čísel od 0 do 59 oddělených čárkami jako minuty hodiny, kdy chcete pracovní postup spustit.

Můžete například zadat "30" jako znak minuty a použít předchozí příklad pro hodiny dne, získáte 10:30, 12:30 a 23:30.
weekDays Řetězcové nebo řetězcové pole Pokud zadáte "Týden" pro frequency, můžete zadat jeden nebo více dnů oddělených čárkami, pokud chcete pracovní postup spustit: "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota" a "Neděle"
<max-runs> Celé číslo Ve výchozím nastavení se instance pracovního postupu spouští současně (souběžně nebo paralelně) až do výchozího limitu. Pokud chcete tento limit změnit nastavením nové <hodnoty počtu> , přečtěte si téma Změna souběžnosti aktivační události.
<max-runs-queue> Celé číslo Pokud váš pracovní postup již spouští maximální počet instancí, které můžete změnit na runtimeConfiguration.concurrency.runs základě vlastnosti, všechny nové spuštění se umístí do této fronty až do výchozího limitu. Pokud chcete změnit výchozí limit, přečtěte si téma Změna limitu čekání na spuštění.
<operation-option> String Výchozí chování můžete změnit nastavením operationOptions vlastnosti. Další informace naleznete v tématu Možnosti operace.

Příklad 1

Tento základní trigger opakování se spouští každý den:

"Recurrence": {
   "type": "Recurrence",
   "recurrence": {
      "frequency": "Day",
      "interval": 1
   }
}

Příklad 2

Můžete zadat počáteční datum a čas pro aktivaci triggeru. Tato aktivační událost opakování se spustí v zadaném datu a pak se aktivuje každý den:

"Recurrence": {
   "type": "Recurrence",
   "recurrence": {
      "frequency": "Day",
      "interval": 1,
      "startTime": "2017-09-18T00:00:00Z"
   }
}

Příklad 3

Tato aktivační událost opakování začíná 9. září 2017 v 23:00 a každý týden se aktivuje každé pondělí v 10:30, 12:30 a 23:30 Tichomoří (standardní čas):

"Recurrence": {
   "type": "Recurrence",
   "recurrence": {
      "frequency": "Week",
      "interval": 1,
      "schedule": {
         "hours": [ 10, 12, 14 ],
         "minutes": [ 30 ],
         "weekDays": [ "Monday" ]
      },
      "startTime": "2017-09-07T14:00:00",
      "timeZone": "Pacific Standard Time"
   }
}

Další informace a příklady pro tento trigger najdete v tématu Vytváření a plánování pravidelně spouštěné úlohy.

Trigger požadavku

Tento trigger umožňuje volání aplikace logiky vytvořením koncového bodu, který může přijímat příchozí požadavky. Pro tento trigger zadejte schéma JSON, které popisuje a ověřuje datovou část nebo vstupy, které trigger přijímá z příchozího požadavku. Schéma také usnadňuje odkazování na vlastnosti triggeru z pozdějších akcí v pracovním postupu.

K volání tohoto triggeru listCallbackUrl musíte použít rozhraní API, které je popsáno v rozhraní REST API služby pracovního postupu. Informace o použití tohoto triggeru jako koncového bodu HTTP najdete v tématu Volání, aktivační událost nebo vnoření pracovních postupů s koncovými body HTTP.

"manual": {
   "type": "Request",
   "kind": "Http",
   "inputs": {
      "method": "<method-type>",
      "relativePath": "<relative-path-for-accepted-parameter>",
      "schema": {
         "type": "object",
         "properties": { 
            "<property-name>": {
               "type": "<property-type>"
            }
         },
         "required": [ "<required-properties>" ]
      }
   },
   "runTimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-run-queue>
      },
   },
   "operationOptions": "<operation-option>"
}

Povinní účastníci

Hodnota Typ Popis
<název vlastnosti> String Název vlastnosti ve schématu JSON, který popisuje datovou část
<property-type> String Typ vlastnosti

Volitelné

Hodnota Typ Popis
<typ metody> String Metoda, kterou příchozí požadavky musí použít k volání aplikace logiky: "GET", "PUT", "POST", "PATCH", "DELETE"
<relative-path-for-accepted-parameter> String Relativní cesta parametru, který může adresa URL koncového bodu přijmout
<required-properties> Pole Jedna nebo více vlastností, které vyžadují hodnoty
<max-runs> Celé číslo Ve výchozím nastavení se instance pracovního postupu spouští současně (souběžně nebo paralelně) až do výchozího limitu. Pokud chcete tento limit změnit nastavením nové <hodnoty počtu> , přečtěte si téma Změna souběžnosti aktivační události.
<max-runs-queue> Celé číslo Pokud váš pracovní postup již spouští maximální počet instancí, které můžete změnit na runtimeConfiguration.concurrency.runs základě vlastnosti, všechny nové spuštění se umístí do této fronty až do výchozího limitu. Pokud chcete změnit výchozí limit, přečtěte si téma Změna limitu čekání na spuštění.
<operation-option> String Výchozí chování můžete změnit nastavením operationOptions vlastnosti. Další informace naleznete v tématu Možnosti operace.

Příklad

Tento trigger určuje, že příchozí požadavek musí k volání triggeru použít metodu HTTP POST a obsahuje schéma, které ověřuje vstup z příchozího požadavku:

"manual": {
   "type": "Request",
   "kind": "Http",
   "inputs": {
      "method": "POST",
      "schema": {
         "type": "object",
         "properties": {
            "customerName": {
               "type": "String"
            },
            "customerAddress": { 
               "type": "Object",
               "properties": {
                  "streetAddress": {
                     "type": "string"
                  },
                  "city": {
                     "type": "string"
                  }
               }
            }
         }
      }
   }
}

Podmínky aktivační události

Pro všechny triggery a pouze triggery můžete zahrnout pole, které obsahuje jeden nebo více výrazů pro podmínky, které určují, zda má pracovní postup běžet. Pokud chcete přidat conditions vlastnost do triggeru v pracovním postupu, otevřete aplikaci logiky v editoru zobrazení kódu.

Můžete například určit, že se trigger aktivuje jenom v případě, že web vrátí vnitřní chybu serveru, a to odkazem na stavový kód triggeru conditions ve vlastnosti:

"Recurrence": {
   "type": "Recurrence",
   "recurrence": {
      "frequency": "Hour",
      "interval": 1
   },
   "conditions": [ {
      "expression": "@equals(triggers().code, 'InternalServerError')"
   } ]
}

Ve výchozím nastavení se trigger aktivuje až po získání odpovědi "200 OK". Když výraz odkazuje na stavový kód triggeru, výchozí chování triggeru se nahradí. Pokud tedy chcete trigger aktivovat pro více než jeden stavový kód, například stavový kód 200 a 201, musíte tento výraz zahrnout jako podmínku:

@or(equals(triggers().code, 200),equals(triggers().code, 201))

Aktivace více spuštění v poli

Pokud trigger obdrží pole pro zpracování pracovního postupu, může někdy zpracování každé položky pole trvat příliš dlouho. Místo toho můžete k debatování pole použít vlastnost SplitOn ve svém triggeru. Debatování rozdělí položky pole a spustí novou instanci pracovního postupu, která se spustí pro každou položku pole. Tento přístup je užitečný například v případě, že chcete dotazovat koncový bod, který může vracet více nových položek mezi intervaly dotazování.

Pokud soubor Swaggeru triggeru popisuje datovou část, která je polem, vlastnost SplitOn se automaticky přidá do triggeru. V opačném případě přidejte tuto vlastnost do datové části odpovědi, která má pole, které chcete debatovat.

Než použijete funkci SplitOn, projděte si následující aspekty:

  • Pokud je povolená souběžnost triggeru, limit SplitOn se výrazně sníží. Pokud počet položek překročí tento limit, funkce SplitOn je zakázaná.

  • Funkci SplitOn nemůžete použít se vzorem synchronní odpovědi. Libovolný pracovní postup, který používá vlastnost SplitOn a zahrnuje akci odpovědi, se spustí asynchronně a okamžitě odešle 202 ACCEPTED odpověď.

  • Maximální počet položek pole, které SplitOn může zpracovat při jednom spuštění pracovního postupu, najdete v tématu Omezení a konfigurace.

Příklad

Předpokládejme, že máte trigger HTTP, který volá rozhraní API a přijímá tuto odpověď:

{
   "Status": "Succeeded",
   "Rows": [ 
      { 
         "id": 938109380,
         "name": "customer-name-one"
      },
      {
         "id": 938109381,
         "name": "customer-name-two"
      }
   ]
}

Váš pracovní postup potřebuje jenom obsah z pole, Rowstakže můžete vytvořit trigger podobný tomuto příkladu:

"HTTP_Debatch": {
   "type": "Http",
    "inputs": {
        "uri": "https://mydomain.com/myAPI",
        "method": "GET"
    },
   "recurrence": {
      "frequency": "Second",
      "interval": 1
    },
    "splitOn": "@triggerBody()?.Rows"
}

Poznámka:

Pokud použijete SplitOn příkaz, nemůžete získat vlastnosti, které jsou mimo pole. V tomto příkladu status tedy nemůžete získat vlastnost v odpovědi vrácené z rozhraní API.

Chcete-li se vyhnout selhání, pokud Rows vlastnost neexistuje, tento příklad používá ? operátor.

Definice pracovního postupu teď může použít @triggerBody().name k získání name hodnot, které pocházejí "customer-name-one" z prvního spuštění a "customer-name-two" druhého spuštění. Výstupy triggeru tedy vypadají jako v těchto příkladech:

{
   "body": {
      "id": 938109380,
      "name": "customer-name-one"
   }
}
{
   "body": {
      "id": 938109381,
      "name": "customer-name-two"
   }
}

Přehled akcí

Azure Logic Apps poskytuje různé typy akcí – každý s různými vstupy, které definují jedinečné chování akce. Akce mají tyto základní prvky, i když některé jsou volitelné:

"<action-name>": {
   "type": "<action-type>",
   "inputs": { 
      "<input-name>": { "<input-value>" },
      "retryPolicy": "<retry-behavior>" 
   },
   "runAfter": { "<previous-trigger-or-action-status>" },
   "runtimeConfiguration": { "<runtime-config-options>" },
   "operationOptions": "<operation-option>"
},

Povinní účastníci

Hodnota Typ Popis
<název akce> String Název akce
<typ akce> String Typ akce, například Http nebo Api Připojení ion
<input-name> String Název vstupu, který definuje chování akce
<input-value> Různé Vstupní hodnota, která může být řetězec, celé číslo, objekt JSON atd.
<předchozí stav triggeru nebo akce> JSON objekt Název a výsledný stav triggeru nebo akce, které se musí spustit bezprostředně před spuštěním této aktuální akce

Volitelné

Hodnota Typ Popis
<chování opakování> JSON objekt Přizpůsobí chování opakování pro občasná selhání, která mají stavový kód 408, 429 a 5XX a případné výjimky připojení. Další informace najdete v tématu Zásady opakování.
<runtime-config-options> JSON objekt U některých akcí můžete změnit chování akce za běhu nastavením runtimeConfiguration vlastností. Další informace najdete v tématu Nastavení konfigurace modulu runtime.
<operation-option> String U některýchakcích operationOptions Další informace naleznete v tématu Možnosti operace.

Seznam typů akcí

Tady jsou některé běžně používané typy akcí:

Integrované akce

Typ akce Popis
Compose (Sestavení) Vytvoří jeden výstup ze vstupů, který může mít různé typy.
Spuštění javascriptového kódu Spusťte fragmenty kódu JavaScriptu, které odpovídají konkrétním kritériím. Další informace o požadavcích na kód najdete v tématu Přidání a spuštění fragmentů kódu pomocí vloženého kódu.
Funkce Volá funkci Azure Functions.
HTTP Volá koncový bod HTTP.
Join (Spojení) Vytvoří řetězec ze všech položek v poli a odděluje tyto položky zadaným znakem oddělovače.
Parsování formátu JSON Vytvoří uživatelsky přívětivé tokeny z vlastností v obsahu JSON. Tyto vlastnosti pak můžete odkazovat zahrnutím tokenů do aplikace logiky.
Dotaz Vytvoří pole z položek v jiném poli na základě podmínky nebo filtru.
Response Vytvoří odpověď na příchozí hovor nebo požadavek.
Vybrat Vytvoří pole s objekty JSON transformací položek z jiného pole na základě zadané mapy.
Tabulka Vytvoří z pole tabulku CSV nebo HTML.
Terminate (Ukončení) Zastaví aktivně spuštěný pracovní postup.
Wait (Čekání) Pozastaví pracovní postup po určitou dobu trvání nebo do zadaného data a času.
Workflow (Pracovní postup) Vnořuje pracovní postup do jiného pracovního postupu.

Akce spravovaného rozhraní API

Typ akce Popis
ApiConnection Volá koncový bod HTTP pomocí rozhraní API spravovaného Microsoftem.
Api Připojení ionWebhook Funguje jako HTTP Webhook, ale používá rozhraní API spravované Microsoftem.

Řízení akcí pracovního postupu

Tyto akce pomáhají řídit provádění pracovního postupu a zahrnují další akce. Mimo akci pracovního postupu ovládacího prvku můžete přímo odkazovat na akce v rámci této akce pracovního postupu řízení. Pokud Http máte například akci uvnitř oboru, můžete na výraz odkazovat @body('Http') odkudkoli v pracovním postupu. Akce, které existují uvnitř akce pracovního postupu ovládacího prvku, však mohou běžet pouze po dalších akcích, které jsou ve stejné struktuře pracovního postupu řízení.

Typ akce Popis
ForEach Spusťte stejné akce ve smyčce pro každou položku v poli.
Pokud Spusťte akce na základě toho, jestli je zadaná podmínka pravdivá nebo nepravda.
Scope Spouštění akcí na základě stavu skupiny ze sady akcí
Přepínač Spuštění akcí uspořádaných do případů, kdy hodnoty z výrazů, objektů nebo tokenů odpovídají hodnotám zadaným jednotlivými písmeny.
Dokud Spusťte akce ve smyčce, dokud není zadaná podmínka pravdivá.

Akce – podrobné referenční informace

Akce rozhraní API Připojení ion

Tato akce odešle požadavek HTTP do rozhraní API spravovaného Microsoftem a vyžaduje informace o rozhraní API a parametrech a odkaz na platné připojení.

"<action-name>": {
   "type": "ApiConnection",
   "inputs": {
      "host": {
         "connection": {
            "name": "@parameters('$connections')['<api-name>']['connectionId']"
         },
         "<other-action-specific-input-properties>"        
      },
      "method": "<method-type>",
      "path": "/<api-operation>",
      "retryPolicy": "<retry-behavior>",
      "queries": { "<query-parameters>" },
      "<other-action-specific-properties>"
    },
    "runAfter": {}
}

Povinní účastníci

Hodnota Typ Popis
<název akce> String Název akce poskytnuté konektorem
<api-name> String Název rozhraní API spravovaného Microsoftem, které se používá pro připojení
<typ metody> String Metoda HTTP pro volání rozhraní API: GET, PUT, POST, PATCH nebo DELETE
<api-operation> String Operace rozhraní API pro volání

Volitelné

Hodnota Typ Popis
<jiné vlastnosti vstupu specifické pro akci> JSON objekt Všechny další vstupní vlastnosti, které se vztahují na tuto konkrétní akci
<chování opakování> JSON objekt Přizpůsobí chování opakování pro občasná selhání, která mají stavový kód 408, 429 a 5XX a případné výjimky připojení. Další informace najdete v tématu Zásady opakování.
<parametry dotazu> JSON objekt Všechny parametry dotazu, které se mají zahrnout do volání rozhraní API.

Například objekt "queries": { "api-version": "2018-01-01" } se přidá ?api-version=2018-01-01 do volání.
<jiné vlastnosti specifické pro akci> JSON objekt Všechny ostatní vlastnosti, které se vztahují na tuto konkrétní akci

Příklad

Tato definice popisuje akci Odeslat e-mail pro konektor Office 365 Outlook, což je rozhraní API spravované Microsoftem:

"Send_an_email": {
   "type": "ApiConnection",
   "inputs": {
      "body": {
         "Body": "Thank you for your membership!",
         "Subject": "Hello and welcome!",
         "To": "Sophie.Owen@contoso.com"
      },
      "host": {
         "connection": {
            "name": "@parameters('$connections')['office365']['connectionId']"
         }
      },
      "method": "POST",
      "path": "/Mail"
    },
    "runAfter": {}
}

Akce rozhraní API Připojení ionWebhook

Tato akce odešle požadavek předplatného přes PROTOKOL HTTP do koncového bodu pomocí rozhraní API spravovaného Microsoftem , poskytne adresu URL zpětného volání, do které koncový bod může odeslat odpověď a čeká na odpověď koncového bodu. Další informace najdete v tématu Předplatná koncových bodů.

"<action-name>": {
   "type": "ApiConnectionWebhook",
   "inputs": {
      "subscribe": {
         "method": "<method-type>",
         "uri": "<api-subscribe-URL>",
         "headers": { "<header-content>" },
         "body": "<body-content>",
         "authentication": { "<authentication-type>" },
         "retryPolicy": "<retry-behavior>",
         "queries": { "<query-parameters>" },
         "<other-action-specific-input-properties>"
      },
      "unsubscribe": {
         "method": "<method-type>",
         "uri": "<api-unsubscribe-URL>",
         "headers": { "<header-content>" },
         "body": "<body-content>",
         "authentication": { "<authentication-type>" },
         "<other-action-specific-properties>"
      },
   },
   "runAfter": {}
}

Některé hodnoty, jako <je typ> metody, jsou k dispozici jak pro objekty "unsubscribe" "subscribe", tak pro objekty.

Povinní účastníci

Hodnota Typ Popis
<název akce> String Název akce poskytnuté konektorem
<typ metody> String Metoda HTTP, která se má použít pro přihlášení k odběru nebo zrušení odběru z koncového bodu: GET, PUT, POST, PATCH nebo DELETE
<api-subscribe-URL> String Identifikátor URI, který se má použít pro přihlášení k odběru rozhraní API

Volitelné

Hodnota Typ Popis
<api-unsubscribe-URL> String Identifikátor URI, který se má použít pro zrušení odběru z rozhraní API
<header-content> JSON objekt Všechny hlavičky, které se mají odeslat v požadavku

Pokud chcete například nastavit jazyk a zadat požadovaný jazyk:

"headers": { "Accept-Language": "en-us", "Content-Type": "application/json" }
<body-content> JSON objekt Veškerý obsah zprávy, který se má odeslat v požadavku
<typ ověřování> JSON objekt Model ověřování, který požadavek používá k ověřování odchozích požadavků. Další informace najdete v tématu Přidání ověřování pro odchozí volání.
<chování opakování> JSON objekt Přizpůsobí chování opakování pro občasná selhání, která mají stavový kód 408, 429 a 5XX a případné výjimky připojení. Další informace najdete v tématu Zásady opakování.
<parametry dotazu> JSON objekt Všechny parametry dotazu, které se mají zahrnout do volání rozhraní API

Například objekt "queries": { "api-version": "2018-01-01" } se přidá ?api-version=2018-01-01 do volání.
<jiné vlastnosti vstupu specifické pro akci> JSON objekt Všechny další vstupní vlastnosti, které se vztahují na tuto konkrétní akci
<jiné vlastnosti specifické pro akci> JSON objekt Všechny ostatní vlastnosti, které se vztahují na tuto konkrétní akci

Omezení pro akci Api Připojení ionWebhook můžete také zadat stejným způsobem jako asynchronní limity HTTP.

Vytvoření akce

Tato akce vytvoří jeden výstup z více vstupů, včetně výrazů. Výstup i vstupy můžou mít libovolný typ, který Azure Logic Apps nativně podporuje, jako jsou pole, objekty JSON, XML a binární soubory. Výstup akce pak můžete použít v jiných akcích.

"Compose": {
   "type": "Compose",
   "inputs": "<inputs-to-compose>",
   "runAfter": {}
},

Povinní účastníci

Hodnota Typ Popis
<vstupy do psaní> Všechny Vstupy pro vytvoření jednoho výstupu

Příklad 1

Tato definice akce se sloučí abcdefg s koncovou mezerou a hodnotou 1234:

"Compose": {
   "type": "Compose",
   "inputs": "abcdefg 1234",
   "runAfter": {}
},

Tady je výstup, který tato akce vytvoří:

abcdefg 1234

Příklad 2

Tato definice akce sloučí řetězcovou proměnnou, která obsahuje abcdefg , a celočíselnou proměnnou, která obsahuje 1234:

"Compose": {
   "type": "Compose",
   "inputs": "@{variables('myString')}@{variables('myInteger')}",
   "runAfter": {}
},

Tady je výstup, který tato akce vytvoří:

"abcdefg1234"

Provedení akce javascriptového kódu

Tato akce spustí fragment kódu JavaScriptu a vrátí výsledky prostřednictvím tokenu, na který můžou odkazovat následné akce v pracovním postupu.

"Execute_JavaScript_Code": {
   "type": "JavaScriptCode",
   "inputs": {
      "code": "<JavaScript-code-snippet>",
      "explicitDependencies": {
         "actions": [ <preceding-actions> ],
         "includeTrigger": true
      }
   },
   "runAfter": {}
}

Povinní účastníci

Hodnota Typ Popis
<JavaScript-code-snippet> Je to různé. Kód JavaScriptu, který chcete spustit. Další informace o požadavcích na kód najdete v tématu Spouštění fragmentů kódu v pracovních postupech.

V atributu code může fragment kódu jako vstup použít objekt jen pro workflowContext čtení. Tento objekt má dílčí výhody, které vašemu kódu poskytují přístup k výstupům z triggeru a všech předchozích akcí v pracovním postupu. Další informace o objektu workflowContext naleznete v tématu Odkaz aktivační událost a akce výsledky pomocí workflowContext objektu.

Požadováno v některých případech

Atribut explicitDependencies určuje, že chcete explicitně zahrnout výsledky z triggeru, předchozích akcí nebo obojího jako závislosti pro fragment kódu. Další informace o přidání těchto závislostí naleznete v tématu Přidání závislostí jako parametrů do vložené akce kódu.

includeTrigger Pro atribut můžete zadat true nebo false hodnoty.

Hodnota Typ Popis
<předchozí akce> Pole řetězců Pole s názvy akcí ve formátu JSON jako závislostmi. Nezapomeňte použít názvy akcí, které se zobrazují v definici pracovního postupu, kde názvy akcí používají podtržítka (_), nikoli mezery (" ").

Příklad 1

Tato akce spustí kód, který získá název pracovního postupu aplikace logiky a jako výsledek vrátí text Hello world z <názvu> aplikace logiky. V tomto příkladu kód odkazuje na název pracovního postupu přístupem k workflowContext.workflow.name vlastnosti prostřednictvím objektu jen workflowContext pro čtení. Další informace o použití objektu workflowContext naleznete v tématu Odkaz aktivační událost a akce výsledky v kódu.

"Execute_JavaScript_Code": {
   "type": "JavaScriptCode",
   "inputs": {
      "code": "var text = \"Hello world from \" + workflowContext.workflow.name;\r\n\r\nreturn text;"
   },
   "runAfter": {}
}

Příklad 2

Tato akce spustí kód v pracovním postupu aplikace logiky, který se aktivuje při příchodu nového e-mailu do účtu Outlooku. Pracovní postup také používá akci odeslání e-mailu pro schválení v Office 365 Outlooku, která předá obsah přijatého e-mailu spolu s žádostí o schválení.

Kód extrahuje e-mailové adresy z vlastnosti e-mailové zprávy Body a vrátí adresy spolu s SelectedOption hodnotou vlastnosti z akce schválení. Akce explicitně obsahuje akci Odeslat schvalovací e-mail jako závislost v objektu actions uvnitř objektu explicitDependencies .

"Execute_JavaScript_Code": {
   "type": "JavaScriptCode",
   "inputs": {
      "code": "var myResult = /(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/g;\r\n\r\nvar email = workflowContext.trigger.outputs.body.Body;\r\n\r\nvar reply = workflowContext.actions.Send_approval_email.outputs.body.SelectedOption;\r\n\r\nreturn email.match(myResult) + \" - \" + reply;\r\n;",
      "explicitDependencies": {
         "actions": [
            "Send_approval_email"
         ]
      }
   },
   "runAfter": {}
}

Akce funkce

Tato akce volá dříve vytvořenou funkci Azure.

"<Azure-function-name>": {
   "type": "Function",
   "inputs": {
     "function": {
        "id": "<Azure-function-ID>"
      },
      "method": "<method-type>",
      "headers": { "<header-content>" },
      "body": { "<body-content>" },
      "queries": { "<query-parameters>" } 
   },
   "runAfter": {}
}

Povinní účastníci

Hodnota Typ Popis
<Azure-function-ID> String ID prostředku pro funkci Azure, kterou chcete volat. Tady je formát této hodnoty:

"/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group>/providers/Microsoft.Web/sites/<Azure-function-app-name>/functions/<Azure-function-name>"
<typ metody> String Metoda HTTP, která se má použít pro volání funkce: "GET", "PUT", "POST", "PATCH" nebo "DELETE"

Pokud není zadán, výchozí je metoda POST.

Volitelné

Hodnota Typ Popis
<header-content> JSON objekt Všechna záhlaví, která se mají posílat s voláním

Pokud chcete například nastavit jazyk a zadat požadovaný jazyk:

"headers": { "Accept-Language": "en-us", "Content-Type": "application/json" }
<body-content> JSON objekt Veškerý obsah zprávy, který se má odeslat v požadavku
<parametry dotazu> JSON objekt Všechny parametry dotazu, které se mají zahrnout do volání rozhraní API

Například objekt "queries": { "api-version": "2018-01-01" } se přidá ?api-version=2018-01-01 do volání.
<jiné vlastnosti vstupu specifické pro akci> JSON objekt Všechny další vstupní vlastnosti, které se vztahují na tuto konkrétní akci
<jiné vlastnosti specifické pro akci> JSON objekt Všechny ostatní vlastnosti, které se vztahují na tuto konkrétní akci

Když uložíte aplikaci logiky, Azure Logic Apps provede tyto kontroly u odkazované funkce:

  • Váš pracovní postup musí mít přístup k funkci.

  • Váš pracovní postup může používat pouze standardní trigger HTTP nebo obecný trigger webhooku JSON.

    Azure Logic Apps získá a ukládá do mezipaměti adresu URL triggeru, která se používá za běhu. Pokud však nějaká operace zneplatní adresu URL uloženou v mezipaměti, akce funkce selže za běhu. Pokud chcete tento problém vyřešit, uložte aplikaci logiky znovu, aby aplikace logiky znovu získala a uložila adresu URL triggeru do mezipaměti.

  • Funkce nemůže mít definovanou žádnou trasu.

  • Jsou povoleny pouze úrovně autorizace "function" a "anonymous".

Příklad

Tato definice akce volá dříve vytvořenou funkci GetProductID:

"GetProductID": {
   "type": "Function",
   "inputs": {
     "function": {
        "id": "/subscriptions/<XXXXXXXXXXXXXXXXXXXX>/resourceGroups/myLogicAppResourceGroup/providers/Microsoft.Web/sites/InventoryChecker/functions/GetProductID"
      },
      "method": "POST",
      "headers": { 
          "x-ms-date": "@utcnow()"
       },
      "body": { 
          "Product_ID": "@variables('ProductID')"
      }
   },
   "runAfter": {}
}

Akce HTTP

Tato akce odešle požadavek na zadaný koncový bod HTTP nebo HTTPS a zkontroluje odpověď a určí, jestli se pracovní postup spustí. Další informace najdete v tématu Volání koncových bodů služby přes HTTP nebo HTTPS z Azure Logic Apps.

"HTTP": {
   "type": "Http",
   "inputs": {
      "method": "<method-type>",
      "uri": "<HTTP-or-HTTPS-endpoint-URL>",
      "headers": { "<header-content>" },
      "queries": { "<query-parameters>" },
      "body": "<body-content>",
      "authentication": { "<authentication-type-and-property-values>" },
      "retryPolicy": {
         "type": "<retry-behavior>"
      },
   },
   "runAfter": {}
}

Povinní účastníci

Vlastnost Hodnota Typ Popis
method <typ metody> String Metoda, která se má použít k odesílání odchozího požadavku: GET, PUT, POST, PATCH nebo DELETE.
uri <ADRESA URL koncového bodu HTTP nebo HTTPS> String Adresa URL koncového bodu HTTP nebo HTTPS, kam chcete odeslat odchozí požadavek. Maximální velikost řetězce: 2 kB

U služby nebo prostředku Azure tato syntaxe identifikátoru URI obsahuje ID prostředku a cestu k prostředku, ke kterému chcete získat přístup.

Volitelné

Vlastnost Hodnota Typ Popis
headers <header-content> JSON objekt Všechny hlavičky, které potřebujete zahrnout do požadavku

Pokud chcete například nastavit jazyk a typ:

"headers": { "Accept-Language": "en-us", "Content-Type": "application/json" }
queries <parametry dotazu> JSON objekt Všechny parametry dotazu, které potřebujete použít v požadavku

Například objekt "queries": { "api-version": "2018-01-01" } se přidá ?api-version=2018-01-01 do volání.
body <body-content> JSON objekt Obsah zprávy, který se má odeslat jako datová část s požadavkem
authentication <authentication-type-and-property-values> JSON objekt Model ověřování, který požadavek používá k ověřování odchozích požadavků. Další informace najdete v tématu Přidání ověřování pro odchozí volání. Kromě Scheduleru authority se tato vlastnost podporuje. Pokud není zadána, výchozí hodnota je https://management.azure.com/, ale můžete použít jinou hodnotu.
retryPolicy > type <chování opakování> JSON objekt Přizpůsobí chování opakování pro občasná selhání, která mají stavový kód 408, 429 a 5XX a případné výjimky připojení. Další informace najdete v tématu Zásady opakování.
<jiné vlastnosti vstupu specifické pro akci> <input-property> JSON objekt Všechny další vstupní vlastnosti, které se vztahují na tuto konkrétní akci
<jiné vlastnosti specifické pro akci> <property-value> JSON objekt Všechny ostatní vlastnosti, které se vztahují na tuto konkrétní akci

Příklad

Tato definice akce získá nejnovější zprávy odesláním požadavku do zadaného koncového bodu:

"HTTP": {
   "type": "Http",
   "inputs": {
      "method": "GET",
      "uri": "https://mynews.example.com/latest"
   }
}

Akce Spojit

Tato akce vytvoří řetězec ze všech položek v poli a odděluje tyto položky zadaným znakem oddělovače.

"Join": {
   "type": "Join",
   "inputs": {
      "from": <array>,
      "joinWith": "<delimiter>"
   },
   "runAfter": {}
}

Povinní účastníci

Hodnota Typ Popis
<Pole> Pole Pole nebo výraz, který poskytuje zdrojové položky. Pokud zadáte výraz, uzavřete tento výraz do dvojitých uvozovek.
<Oddělovač> Řetězec s jedním znakem Znak, který odděluje jednotlivé položky v řetězci

Příklad

Předpokládejme, že máte dříve vytvořenou proměnnou myIntegerArray, která obsahuje toto celočíselné pole:

[1,2,3,4]

Tato definice akce získá hodnoty z proměnné pomocí variables() funkce ve výrazu a vytvoří tento řetězec s těmito hodnotami, které jsou oddělené čárkou: "1,2,3,4"

"Join": {
   "type": "Join",
   "inputs": {
      "from": "@variables('myIntegerArray')",
      "joinWith": ","
   },
   "runAfter": {}
}

Parsovat akci JSON

Tato akce vytvoří uživatelsky přívětivá pole nebo tokeny z vlastností v obsahu JSON. K těmto vlastnostem v aplikaci logiky pak můžete přistupovat pomocí tokenů. Pokud například chcete použít výstup JSON ze služeb, jako je Azure Service Bus a Azure Cosmos DB, můžete tuto akci zahrnout do aplikace logiky, abyste mohli snadněji odkazovat na data v tomto výstupu.

"Parse_JSON": {
   "type": "ParseJson",
   "inputs": {
      "content": "<JSON-source>",
         "schema": { "<JSON-schema>" }
      },
      "runAfter": {}
},

Povinní účastníci

Hodnota Typ Popis
<Zdroj JSON> JSON objekt Obsah JSON, který chcete analyzovat
<JSON-schema> JSON objekt Schéma JSON, které popisuje podkladový obsah JSON, který akce používá k analýze zdrojového obsahu JSON.

Tip: V návrháři pracovního postupu můžete buď zadat schéma, nebo zadat ukázkovou datovou část, aby akce mohla vygenerovat schéma.

Příklad

Tato definice akce vytvoří tyto tokeny, které můžete použít ve svém pracovním postupu, ale pouze v akcích, které se spouští po akci Parsovat JSON :

FirstName, LastNamea Email

"Parse_JSON": {
   "type": "ParseJson",
   "inputs": {
      "content": {
         "Member": {
            "Email": "Sophie.Owen@contoso.com",
            "FirstName": "Sophie",
            "LastName": "Owen"
         }
      },
      "schema": {
         "type": "object",
         "properties": {
            "Member": {
               "type": "object",
               "properties": {
                  "Email": {
                     "type": "string"
                  },
                  "FirstName": {
                     "type": "string"
                  },
                  "LastName": {
                     "type": "string"
                  }
               }
            }
         }
      }
   },
   "runAfter": { }
},

V tomto příkladu vlastnost content určuje obsah JSON pro akci, která se má analyzovat. Tento obsah JSON můžete také poskytnout jako ukázkovou datovou část pro generování schématu.

"content": {
   "Member": { 
      "FirstName": "Sophie",
      "LastName": "Owen",
      "Email": "Sophie.Owen@contoso.com"
   }
},

Vlastnost schema určuje schéma JSON použité k popisu obsahu JSON:

"schema": {
   "type": "object",
   "properties": {
      "Member": {
         "type": "object",
         "properties": {
            "FirstName": {
               "type": "string"
            },
            "LastName": {
               "type": "string"
            },
            "Email": {
               "type": "string"
            }
         }
      }
   }
}

Akce dotazu

Tato akce vytvoří pole z položek v jiné matici na základě zadané podmínky nebo filtru.

"Filter_array": {
   "type": "Query",
   "inputs": {
      "from": <array>,
      "where": "<condition-or-filter>"
   },
   "runAfter": {}
}

Povinní účastníci

Hodnota Typ Popis
<Pole> Pole Pole nebo výraz, který poskytuje zdrojové položky. Pokud zadáte výraz, uzavřete tento výraz do dvojitých uvozovek.
<condition-or-filter> String Podmínka použitá pro filtrování položek ve zdrojovém poli

Poznámka: Pokud žádné hodnoty nesplňují podmínku, akce vytvoří prázdné pole.

Příklad

Tato definice akce vytvoří pole, které má hodnoty větší než zadaná hodnota, což je dvě:

"Filter_array": {
   "type": "Query",
   "inputs": {
      "from": [ 1, 3, 0, 5, 4, 2 ],
      "where": "@greater(item(), 2)"
   }
}

Response action

Tato akce vytvoří datovou část pro odpověď na požadavek HTTP.

"Response" {
    "type": "Response",
    "kind": "http",
    "inputs": {
        "statusCode": 200,
        "headers": { <response-headers> },
        "body": { <response-body> }
    },
    "runAfter": {}
},

Povinní účastníci

Hodnota Typ Popis
<response-status-code> Celé číslo Stavový kód HTTP, který se odešle příchozímu požadavku. Výchozí kód je 200 OK, ale kód může být jakýkoli platný stavový kód, který začíná 2xx, 4xx nebo 5xx, ale ne s 3xxx.

Volitelné

Hodnota Typ Popis
<hlavičky odpovědi> JSON objekt Jedna nebo více hlaviček, která se mají zahrnout do odpovědi
<text odpovědi> Různé Text odpovědi, který může být řetězec, objekt JSON nebo dokonce binární obsah z předchozí akce

Příklad

Tato definice akce vytvoří odpověď na požadavek HTTP se zadaným stavovým kódem, textem zprávy a hlavičkami zprávy:

"Response": {
   "type": "Response",
   "inputs": {
      "statusCode": 200,
      "body": {
         "ProductID": 0,
         "Description": "Organic Apples"
      },
      "headers": {
         "x-ms-date": "@utcnow()",
         "content-type": "application/json"
      }
   },
   "runAfter": {}
}

Omezení

Na rozdíl od jiných akcí má akce Odpovědi zvláštní omezení:

  • Váš pracovní postup může použít akci Odpověď pouze v případě, že pracovní postup začíná triggerem požadavku HTTP, což znamená, že pracovní postup musí být aktivován požadavkem HTTP.

  • Váš pracovní postup může použít akci Odpovědi kdekoli kromě uvnitř smyčky Foreach , until loops, včetně sekvenčních smyček a paralelních větví.

  • Původní požadavek získá odpověď pracovního postupu pouze v případě, že všechny akce vyžadované akcí Odpovědi jsou dokončeny v rámci limitu časového limitu HTTP.

    Pokud však pracovní postup volá jinou aplikaci logiky jako vnořený pracovní postup, nadřazený pracovní postup počká, dokud se vnořený pracovní postup nedokončí, bez ohledu na to, kolik času před dokončením vnořeného pracovního postupu projde.

  • Pokud váš pracovní postup používá akci Odpověď a synchronní vzor odpovědi, pracovní postup také nemůže použít příkaz splitOn v definici triggeru, protože tento příkaz vytvoří více spuštění. Zkontrolujte tento případ, když se použije metoda PUT a pokud je true, vrátí odpověď "chybný požadavek".

    Jinak platí, že pokud váš pracovní postup používá příkaz splitOn a akci Odpovědi , pracovní postup se spustí asynchronně a okamžitě vrátí odpověď 202 ACCEPTED.

  • Když provádění pracovního postupu dosáhne akce Odpověď , ale příchozí požadavek už obdržel odpověď, akce Odpověď se kvůli konfliktu označí jako Neúspěšná. A v důsledku toho se vaše aplikace logiky také označí stavem Selhání.

Výběr akce

Tato akce vytvoří pole s objekty JSON transformací položek z jiného pole na základě zadané mapy. Výstupní pole a zdrojové pole mají vždy stejný počet položek. I když nemůžete změnit počet objektů ve výstupním poli, můžete přidat nebo odebrat vlastnosti a jejich hodnoty napříč těmito objekty. Vlastnost select určuje alespoň jeden pár klíč-hodnota, který definuje mapu pro transformaci položek ve zdrojovém poli. Pár klíč-hodnota představuje vlastnost a její hodnotu ve všech objektech ve výstupním poli.

"Select": {
   "type": "Select",
   "inputs": {
      "from": <array>,
      "select": { 
          "<key-name>": "<expression>",
          "<key-name>": "<expression>"        
      }
   },
   "runAfter": {}
},

Povinní účastníci

Hodnota Typ Popis
<Pole> Pole Pole nebo výraz, který poskytuje zdrojové položky. Ujistěte se, že výraz uzavřete do dvojitých uvozovek.

Poznámka: Pokud je zdrojové pole prázdné, akce vytvoří prázdné pole.
<název klíče> String Název vlastnosti přiřazený výsledku z <výrazu>

Pokud chcete přidat novou vlastnost napříč všemi objekty ve výstupním poli, zadejte <název> klíče pro danou <vlastnost a výraz> pro hodnotu vlastnosti.

Chcete-li odebrat vlastnost ze všech objektů v poli, vynecháte <název> klíče pro danou vlastnost.
<Výraz> String Výraz, který transformuje položku ve zdrojovém poli a přiřadí výsledek názvu klíče.<>

Akce Vybrat vytvoří jako výstup pole, takže každá akce, která chce tento výstup použít, musí buď přijmout pole, nebo musíte pole převést na typ, který akce příjemce akce přijímá. Pokud chcete například převést výstupní pole na řetězec, můžete toto pole předat akci Vytvořit a pak odkazovat na výstup akce Vytvořit v ostatních akcích.

Příklad

Tato definice akce vytvoří pole objektů JSON z celočíselného pole. Akce iteruje prostřednictvím zdrojového pole, získá každou celočíselnou hodnotu pomocí výrazu @item() a přiřadí každou hodnotu vlastnosti "number" v každém objektu JSON:

"Select": {
   "type": "Select",
   "inputs": {
      "from": [ 1, 2, 3 ],
      "select": { 
         "number": "@item()" 
      }
   },
   "runAfter": {}
},

Toto je pole, které tato akce vytvoří:

[ { "number": 1 }, { "number": 2 }, { "number": 3 } ]

Pokud chcete tento výstup pole použít v jiných akcích, předejte tento výstup do akce Vytvořit :

"Compose": {
   "type": "Compose",
   "inputs": "@body('Select')",
   "runAfter": {
      "Select": [ "Succeeded" ]
   }
},

Pak můžete použít výstup z akce Vytvořit v dalších akcích, například v Office 365 Outlooku – Odeslání e-mailové akce:

"Send_an_email": {
   "type": "ApiConnection",
   "inputs": {
      "body": {
         "Body": "@{outputs('Compose')}",
         "Subject": "Output array from Select and Compose actions",
         "To": "<your-email@domain>"
      },
      "host": {
         "connection": {
            "name": "@parameters('$connections')['office365']['connectionId']"
         }
      },
      "method": "post",
      "path": "/Mail"
   },
   "runAfter": {
      "Compose": [ "Succeeded" ]
   }
},

Akce tabulky

Tato akce vytvoří z pole tabulku CSV nebo HTML. U polí s objekty JSON tato akce automaticky vytvoří záhlaví sloupců z názvů vlastností objektů. U polí s jinými datovými typy je nutné zadat záhlaví a hodnoty sloupců. Toto pole například obsahuje vlastnosti ID a Product_Name, které tato akce může použít pro názvy záhlaví sloupců:

[ {"ID": 0, "Product_Name": "Apples"}, {"ID": 1, "Product_Name": "Oranges"} ]

"Create_<CSV | HTML>_table": {
   "type": "Table",
   "inputs": {
      "format": "<CSV | HTML>",
      "from": <array>,
      "columns": [ 
         {
            "header": "<column-name>",
            "value": "<column-value>"
         },
         {
            "header": "<column-name>",
            "value": "<column-value>"
         } 
      ]
   },
   "runAfter": {}
}

Povinní účastníci

Hodnota Typ Popis
<CSV nebo HTML> String Formát tabulky, kterou chcete vytvořit
<Pole> Pole Pole nebo výraz, který poskytuje zdrojové položky tabulky.

Poznámka: Pokud je zdrojové pole prázdné, akce vytvoří prázdnou tabulku.

Volitelné

K určení nebo přizpůsobení záhlaví a hodnot sloupců použijte columns pole. Pokud header-value mají páry stejný název záhlaví, jejich hodnoty se zobrazí ve stejném sloupci pod názvem záhlaví. V opačném případě každá jedinečná hlavička definuje jedinečný sloupec.

Hodnota Typ Popis
<název sloupce> String Název záhlaví sloupce
<column-value> Všechny Hodnota v daném sloupci

Příklad 1

Předpokládejme, že máte dříve vytvořenou proměnnou myItemArray, která aktuálně obsahuje toto pole:

[ {"ID": 0, "Product_Name": "Apples"}, {"ID": 1, "Product_Name": "Oranges"} ]

Tato definice akce vytvoří tabulku CSV z proměnné myItemArray. Výraz použitý from vlastností získá pole z "myItemArray" pomocí variables() funkce:

"Create_CSV_table": {
   "type": "Table",
   "inputs": {
      "format": "CSV",
      "from": "@variables('myItemArray')"
   },
   "runAfter": {}
}

Tady je tabulka CSV, kterou tato akce vytvoří:

ID,Product_Name 
0,Apples 
1,Oranges 

Příklad 2

Tato definice akce vytvoří tabulku HTML z proměnné myItemArray. Výraz použitý from vlastností získá pole z "myItemArray" pomocí variables() funkce:

"Create_HTML_table": {
   "type": "Table",
   "inputs": {
      "format": "HTML",
      "from": "@variables('myItemArray')"
   },
   "runAfter": {}
}

Tady je tabulka HTML, kterou tato akce vytvoří:

IDProduct_Name
0Jablka
0Pomeranče

Příklad 3

Tato definice akce vytvoří tabulku HTML z proměnné myItemArray. Tento příklad však přepíše výchozí názvy záhlaví sloupců na "Stock_ID" a "Description" a přidá slovo "Organic" do hodnot ve sloupci Popis.

"Create_HTML_table": {
   "type": "Table",
   "inputs": {
      "format": "HTML",
      "from": "@variables('myItemArray')",
      "columns": [ 
         {
            "header": "Stock_ID",
            "value": "@item().ID"
         },
         {
            "header": "Description",
            "value": "@concat('Organic ', item().Product_Name)"
         }
      ]
    },
   "runAfter": {}
},

Tady je tabulka HTML, kterou tato akce vytvoří:

Stock_IDPopis
0Organické jablka
0Organické pomeranče

Ukončit akci

Tato akce zastaví spuštění instance pracovního postupu, zruší všechny probíhající akce, přeskočí všechny zbývající akce a vrátí zadaný stav. Akci Ukončit můžete například použít, když se aplikace logiky musí úplně ukončit ze stavu chyby. Tato akce nemá vliv na již dokončené akce a nemůže se objevit uvnitř smyčky Foreach a Until , včetně sekvenčních smyček.

"Terminate": {
   "type": "Terminate",
   "inputs": {
       "runStatus": "<status>",
       "runError": {
            "code": "<error-code-or-name>",
            "message": "<error-message>"
       }
   },
   "runAfter": {}
}

Povinní účastníci

Hodnota Typ Popis
<status> Řetězcové Stav, který se má vrátit pro spuštění: "Selhání", "Zrušeno" nebo "Úspěšné"

Volitelné

Vlastnosti objektu runStatus platí pouze v případě, že vlastnost runStatus je nastavena na stav "Failed".

Hodnota Typ Popis
<error-code-or-name> String Kód nebo název chyby
<error-message> String Zpráva nebo text, který popisuje chybu a všechny akce, které může uživatel aplikace provést

Příklad

Tato definice akce zastaví spuštění pracovního postupu, nastaví stav spuštění na "Selhání" a vrátí stav, kód chyby a chybovou zprávu:

"Terminate": {
    "type": "Terminate",
    "inputs": {
        "runStatus": "Failed",
        "runError": {
            "code": "Unexpected response",
            "message": "The service received an unexpected response. Please try again."
        }
   },
   "runAfter": {}
}

Akce čekání

Tato akce pozastaví provádění pracovního postupu pro zadaný interval nebo do zadaného času, ale ne obojího.

Zadaný interval

"Delay": {
   "type": "Wait",
   "inputs": {
      "interval": {
         "count": <number-of-units>,
         "unit": "<interval>"
      }
   },
   "runAfter": {}
},

Zadaný čas

"Delay_until": {
   "type": "Wait",
   "inputs": {
      "until": {
         "timestamp": "<date-time-stamp>"
      }
   },
   "runAfter": {}
},

Povinní účastníci

Hodnota Typ Popis
<počet jednotek> Celé číslo U akce Zpoždění počet jednotek, které se mají čekat
<interval> String V případě akce Zpoždění interval čekání: "Sekunda", "Minuta", "Hodina", "Den", "Týden", "Měsíc"
<Datum a časové razítko> String V případě akce Pozdržet do doby, kdy datum a čas obnovení provádění obnovíte. Tato hodnota musí používat formát data a času UTC.

Příklad 1

Tato definice akce pozastaví pracovní postup po dobu 15 minut:

"Delay": {
   "type": "Wait",
   "inputs": {
      "interval": {
         "count": 15,
         "unit": "Minute"
      }
   },
   "runAfter": {}
},

Příklad 2

Tato definice akce pozastaví pracovní postup do zadaného času:

"Delay_until": {
   "type": "Wait",
   "inputs": {
      "until": {
         "timestamp": "2017-10-01T00:00:00Z"
      }
   },
   "runAfter": {}
},

Akce pracovního postupu

Tato akce volá jinou dříve vytvořenou aplikaci logiky, což znamená, že můžete zahrnout a znovu použít jiné pracovní postupy aplikace logiky. Výstupy z podřízené nebo vnořené aplikace logiky můžete použít také v akcích, které následují za vnořenou aplikací logiky za předpokladu, že podřízená aplikace logiky vrací odpověď.

Azure Logic Apps kontroluje přístup k triggeru, který chcete volat, takže se ujistěte, že k této aktivační události máte přístup. Vnořená aplikace logiky musí také splňovat tato kritéria:

"<nested-logic-app-name>": {
   "type": "Workflow",
   "inputs": {
      "body": { "<body-content" },
      "headers": { "<header-content>" },
      "host": {
         "triggerName": "<trigger-name>",
         "workflow": {
            "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group>/providers/Microsoft.Logic/<nested-logic-app-name>"
         }
      }
   },
   "runAfter": {}
}

Povinní účastníci

Hodnota Typ Popis
<nested-logic-app-name> String Název aplikace logiky, kterou chcete volat
<název triggeru> String Název triggeru v vnořené aplikaci logiky, kterou chcete volat
<Azure-subscription-ID> String ID předplatného Azure pro vnořenou aplikaci logiky
<Skupina prostředků Azure> String Název skupiny prostředků Azure pro vnořenou aplikaci logiky

Volitelné

Hodnota Typ Popis
<header-content> JSON objekt Všechna záhlaví, která se mají posílat s voláním
<body-content> JSON objekt Veškerý obsah zprávy, který se má odeslat s hovorem

Výstupy

Výstupy této akce se liší v závislosti na akci Odpovědi vnořené aplikace logiky. Pokud vnořená aplikace logiky neobsahuje akci Odpovědi, výstupy jsou prázdné.

Příklad

Po úspěšném dokončení akce "Start_search" tato definice akce pracovního postupu zavolá jinou aplikaci logiky s názvem "Get_product_information", která předává zadané vstupy:

"actions": {
   "Start_search": { <action-definition> },
   "Get_product_information": {
      "type": "Workflow",
      "inputs": {
         "body": {
            "ProductID": "24601",
         },
         "host": {
            "id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/InventoryManager-RG/providers/Microsoft.Logic/Get_product_information",
            "triggerName": "Find_product"
         },
         "headers": {
            "content-type": "application/json"
         }
      },
      "runAfter": { 
         "Start_search": [ "Succeeded" ]
      }
   }
},

Podrobnosti o akci pracovního postupu řízení

Akce foreach

Tato akce smyčky prochází polem a provádí akce pro každou položku pole. Ve výchozím nastavení se smyčka "for each" spouští paralelně až do maximálního počtu smyček. Maximální počet najdete v tématu Omezení a konfigurace. Naučte se vytvářet smyčky "pro každou" smyčku.

"For_each": {
   "type": "Foreach",
   "actions": { 
      "<action-1>": { "<action-definition-1>" },
      "<action-2>": { "<action-definition-2>" }
   },
   "foreach": "<for-each-expression>",
   "runAfter": {},
   "runtimeConfiguration": {
      "concurrency": {
         "repetitions": <count>
      }
    },
    "operationOptions": "<operation-option>"
}

Povinní účastníci

Hodnota Typ Popis
<action-1... N> String Názvy akcí, které se spouštějí u každé položky pole
<action-definition-1... N> JSON objekt Definice akcí, které se spouští
<for-each-expression> String Výraz, který odkazuje na každou položku v zadaném poli

Volitelné

Hodnota Typ Popis
<count> Celé číslo Ve výchozím nastavení se iterace smyčky "for each" spouští současně (souběžně nebo paralelně) až do výchozího limitu. Pokud chcete tento limit změnit nastavením nové <hodnoty počtu> , přečtěte si téma Změna souběžnosti smyčky pro každou smyčku.
<operation-option> String Pokud chcete spouštět smyčku "for each" postupně, nikoli paralelně, nastavte <možnost> operace na Sequential hodnotu nebo <počet> na 1, ale ne na obě. Další informace najdete v tématu Postupné spuštění smyčky "for each".

Příklad

Tato smyčka "for each" odešle e-mail pro každou položku v poli, která obsahuje přílohy z příchozího e-mailu. Smyčka odešle e-mail, včetně přílohy, osobě, která přílohu zkontroluje.

"For_each": {
   "type": "Foreach",
   "actions": {
      "Send_an_email": {
         "type": "ApiConnection",
         "inputs": {
            "body": {
               "Body": "@base64ToString(items('For_each')?['Content'])",
               "Subject": "Review attachment",
               "To": "Sophie.Owen@contoso.com"
                },
            "host": {
               "connection": {
                  "id": "@parameters('$connections')['office365']['connectionId']"
               }
            },
            "method": "post",
            "path": "/Mail"
         },
         "runAfter": {}
      }
   },
   "foreach": "@triggerBody()?['Attachments']",
   "runAfter": {}
}

Chcete-li zadat pouze pole, které je předáno jako výstup z triggeru, tento výraz získá <pole s názvem> pole z těla triggeru. Pokud pole neexistuje, vyhnete se selhání, použije výraz ? operátor:

@triggerBody()?['<array-name>']

Pokud akce

Tato akce, což je podmíněný příkaz, vyhodnotí výraz představující podmínku a spustí jinou větev na základě toho, jestli je podmínka pravdivá nebo nepravda. Pokud je podmínka pravdivá, podmínka se označí stavem Úspěch. Naučte se vytvářet podmíněné příkazy.

"Condition": {
   "type": "If",
   "expression": { "<condition>" },
   "actions": {
      "<action-1>": { "<action-definition>" }
   },
   "else": {
      "actions": {
        "<action-2>": { "<action-definition" }
      }
   },
   "runAfter": {}
}
Hodnota Typ Popis
<Podmínka> JSON objekt Podmínka, která může být výrazem, která se má vyhodnotit
<action-1> JSON objekt Akce, která se má spustit, když <se podmínka> vyhodnotí jako true
<definice akce> JSON objekt Definice akce
<action-2> JSON objekt Akce, která se má spustit, když <se podmínka> vyhodnotí jako nepravda

Akce v objektech actions mají else tyto stavy:

  • "Úspěch" při spuštění a úspěchu
  • Chyba při spuštění a selhání
  • "Vynecháno", když se příslušná větev nespustí

Příklad

Tato podmínka určuje, že pokud má celočíselná proměnná hodnotu větší než nula, pracovní postup zkontroluje web. Pokud je proměnná nulová nebo menší, pracovní postup zkontroluje jiný web.

"Condition": {
   "type": "If",
   "expression": {
      "and": [ {
         "greater": [ "@variables('myIntegerVariable')", 0 ] 
      } ]
   },
   "actions": { 
      "HTTP - Check this website": {
         "type": "Http",
         "inputs": {
         "method": "GET",
            "uri": "http://this-url"
         },
         "runAfter": {}
      }
   },
   "else": {
      "actions": {
         "HTTP - Check this other website": {
            "type": "Http",
            "inputs": {
               "method": "GET",
               "uri": "http://this-other-url"
            },
            "runAfter": {}
         }
      }
   },
   "runAfter": {}
}

Jak podmínky používají výrazy

Tady je několik příkladů, které ukazují, jak můžete výrazy používat v podmínkách:

JSON Výsledek
"expression": "@parameters('<hasSpecialAction>')" Pouze u logických výrazů podmínka předává pro libovolnou hodnotu, která se vyhodnotí jako true.

Chcete-li převést jiné typy na logickou hodnotu, použijte tyto funkce: empty() nebo equals().
"expression": "@greater(actions('<action>').output.value, parameters('<threshold>')) U srovnávacích funkcí se akce spustí jenom v případě, že výstup z <akce> je větší než <prahová> hodnota.
"expression": "@or(greater(actions('<action>').output.value; parameters('<threshold>')), less('<same-action>').output.value; 100)) U logických funkcí a vytváření vnořených logických výrazů se akce spustí, když je výstup z <akce> větší než <prahová> hodnota nebo pod 100.
"expression": "@equals(length(actions('<action>').outputs.errors); 0)" Pomocí maticových funkcí můžete zkontrolovat, jestli pole obsahuje nějaké položky. Akce se spustí, když errors je pole prázdné.

Akce oboru

Tato akce logicky seskupí akce do oborů, které po dokončení spuštění akcí v daném oboru získají svůj vlastní stav. Stav oboru pak můžete použít k určení, jestli se spustí jiné akce. Naučte se vytvářet obory.

"Scope": {
   "type": "Scope",
   "actions": {
      "<inner-action-1>": {
         "type": "<action-type>",
         "inputs": { "<action-inputs>" },
         "runAfter": {}
      },
      "<inner-action-2>": {
         "type": "<action-type>",
         "inputs": { "<action-inputs>" },
         "runAfter": {}
      }
   }
}

Povinní účastníci

Hodnota Typ Popis
<inner-action-1... N> JSON objekt Jedna nebo více akcí, které se spouštějí v rámci oboru
<vstupy akcí> JSON objekt Vstupy pro každou akci

Akce Switch

Tato akce, označovaná také jako příkaz switch, uspořádá další akce do případů a přiřadí hodnotu každému případu s výjimkou výchozího případu, pokud existuje. Při spuštění pracovního postupu akce Switch porovná hodnotu z výrazu, objektu nebo tokenu s hodnotami zadanými pro každý případ. Pokud akce Přepnout najde odpovídající případ, spustí se v pracovním postupu pouze akce pro tento případ. Při každém spuštění akce Přepnout existuje pouze jeden odpovídající případ nebo neexistují žádné shody. Pokud žádné shody neexistují, akce Přepnout spustí výchozí akce. Naučte se vytvářet příkazy switch.

"Switch": {
   "type": "Switch",
   "expression": "<expression-object-or-token>",
   "cases": {
      "Case": {
         "actions": {
           "<action-name>": { "<action-definition>" }
         },
         "case": "<matching-value>"
      },
      "Case_2": {
         "actions": {
           "<action-name>": { "<action-definition>" }
         },
         "case": "<matching-value>"
      }
   },
   "default": {
      "actions": {
         "<default-action-name>": { "<default-action-definition>" }
      }
   },
   "runAfter": {}
}

Povinní účastníci

Hodnota Typ Popis
<expression-object-or-token> Je to různé. Výraz, objekt JSON nebo token k vyhodnocení
<název akce> String Název akce, která se má spustit pro odpovídající případ
<definice akce> JSON objekt Definice akce, která se má spustit pro odpovídající případ
<odpovídající hodnota> Je to různé. Hodnota, která se má porovnat s vyhodnoceným výsledkem

Volitelné

Hodnota Typ Popis
<default-action-name> String Název výchozí akce, která se má spustit, pokud neexistuje žádná odpovídající malá a malá písmena
<default-action-definition> JSON objekt Definice akce, která se má spustit, pokud neexistuje žádný odpovídající případ

Příklad

Tato definice akce vyhodnotí, jestli osoba reagující na e-mail žádosti o schválení vybrali možnost Schválit nebo Možnost Odmítnout. Na základě této volby akce Přepnout spustí akce pro odpovídající případ, což je odeslání dalšího e-mailu respondéru, ale s odlišným zněním v každém případě.

"Switch": {
   "type": "Switch",
   "expression": "@body('Send_approval_email')?['SelectedOption']",
   "cases": {
      "Case": {
         "actions": {
            "Send_an_email": { 
               "type": "ApiConnection",
               "inputs": {
                  "Body": "Thank you for your approval.",
                  "Subject": "Response received", 
                  "To": "Sophie.Owen@contoso.com"
               },
               "host": {
                  "connection": {
                     "name": "@parameters('$connections')['office365']['connectionId']"
                  }
               },
               "method": "post",
               "path": "/Mail"
            },
            "runAfter": {}
         },
         "case": "Approve"
      },
      "Case_2": {
         "actions": {
            "Send_an_email_2": { 
               "type": "ApiConnection",
               "inputs": {
                  "Body": "Thank you for your response.",
                  "Subject": "Response received", 
                  "To": "Sophie.Owen@contoso.com"
               },
               "host": {
                  "connection": {
                     "name": "@parameters('$connections')['office365']['connectionId']"
                  }
               },
               "method": "post",
               "path": "/Mail"
            },
            "runAfter": {}     
         },
         "case": "Reject"
      }
   },
   "default": {
      "actions": { 
         "Send_an_email_3": { 
            "type": "ApiConnection",
            "inputs": {
               "Body": "Please respond with either 'Approve' or 'Reject'.",
               "Subject": "Please respond", 
               "To": "Sophie.Owen@contoso.com"
            },
            "host": {
               "connection": {
                  "name": "@parameters('$connections')['office365']['connectionId']"
               }
            },
            "method": "post",
            "path": "/Mail"
         },
         "runAfter": {} 
      }
   },
   "runAfter": {
      "Send_approval_email": [ 
         "Succeeded"
      ]
   }
}

Do akce

Tato akce smyčky obsahuje akce, které se spouští, dokud zadaná podmínka není pravdivá. Smyčka zkontroluje podmínku jako poslední krok po spuštění všech ostatních akcí. Do objektu "actions" můžete zahrnout více než jednu akci a akce musí definovat alespoň jeden limit. Naučte se vytvářet smyčky "until".

 "Until": {
   "type": "Until",
   "actions": {
      "<action-name>": {
         "type": "<action-type>",
         "inputs": { "<action-inputs>" },
         "runAfter": {}
      },
      "<action-name>": {
         "type": "<action-type>",
         "inputs": { "<action-inputs>" },
         "runAfter": {}
      }
   },
   "expression": "<condition>",
   "limit": {
      "count": <loop-count>,
      "timeout": "<loop-timeout>"
   },
   "runAfter": {}
}
Hodnota Typ Popis
<název akce> String Název akce, kterou chcete spustit uvnitř smyčky
<typ akce> String Typ akce, který chcete spustit
<vstupy akcí> Různé Vstupy pro akci ke spuštění
<Podmínka> String Podmínka nebo výraz, který se má vyhodnotit po dokončení všech akcí ve smyčce
<počet smyček> Celé číslo Omezení maximálního počtu smyček, které může akce spustit. Další informace o výchozím limitu a maximálním limitu najdete v tématu Omezení a konfigurace pro Azure Logic Apps.
<časový limit smyčky> String Omezení nejdelší doby, po kterou může smyčka běžet. Výchozí timeout hodnota je PT1H, což je požadovaný formát ISO 8601.

Poznámka:

Pokud výraz závisí na výstupu jakékoli akce ve smyčce Until, ujistěte se, že přihlížíte k selhání, která má za následek danou akci.

Příklad

Definice akce smyčky odešle požadavek HTTP na zadanou adresu URL, dokud nebude splněna jedna z těchto podmínek:

  • Požadavek obdrží odpověď se stavovým kódem "200 OK".
  • Smyčka se spustila 60krát.
  • Smyčka se spustila po dobu jedné hodiny.
 "Run_until_loop_succeeds_or_expires": {
    "type": "Until",
    "actions": {
        "HTTP": {
            "type": "Http",
            "inputs": {
                "method": "GET",
                "uri": "http://myurl"
            },
            "runAfter": {}
        }
    },
    "expression": "@equals(outputs('HTTP')['statusCode'], 200)",
    "limit": {
        "count": 60,
        "timeout": "PT1H"
    },
    "runAfter": {}
}

Webhooky a předplatná

Triggery a akce založené na webhooku nekontrolují pravidelně koncové body, ale místo toho počkejte na konkrétní události nebo data v těchto koncových bodech. Tyto triggery a akce se přihlásí k odběru koncových bodů poskytnutím adresy URL zpětného volání, kde koncový bod může odesílat odpovědi.

K subscribe volání dojde, když se pracovní postup změní jakýmkoli způsobem, například při obnovení přihlašovacích údajů nebo při změně vstupních parametrů pro trigger nebo akci. Toto volání používá stejné parametry jako standardní akce HTTP.

Volání unsubscribe se automaticky provede, když operace aktivuje trigger nebo akci jako neplatnou, například:

  • Odstranění nebo zakázání triggeru
  • Odstranění nebo zakázání pracovního postupu
  • Odstranění nebo zakázání předplatného

Pro podporu těchto volání @listCallbackUrl() výraz vrátí jedinečnou adresu URL zpětného volání pro trigger nebo akci. Tato adresa URL představuje jedinečný identifikátor koncových bodů, které používají rozhraní REST API služby. Parametry této funkce jsou stejné jako trigger nebo akce webhooku.

Změna asynchronní doby trvání

U triggerů i akcí můžete dobu trvání asynchronního vzoru omezit na určitý časový interval přidáním limit.timeout vlastnosti. Pokud se akce po uplynutí intervalu nedokončila, stav akce se označí jako Cancelled ActionTimedOut kód. Vlastnost timeout používá formát ISO 8601.

"<trigger-or-action-name>": {
   "type": "Workflow | Webhook | Http | ApiConnectionWebhook | ApiConnection",
   "inputs": {},
   "limit": {
      "timeout": "PT10S"
   },
   "runAfter": {}
}

Nastavení konfigurace modulu runtime

Výchozí chování modulu runtime pro triggery a akce můžete změnit přidáním těchto runtimeConfiguration vlastností do definice triggeru nebo akce.

Vlastnost Type Popis Aktivační událost nebo akce
runtimeConfiguration.concurrency.runs Celé číslo Změňte výchozí limit počtu instancí pracovního postupu, které se můžou spouštět současně (souběžně nebo paralelně). Úprava této hodnoty může pomoct omezit počet požadavků, které back-endové systémy přijímají.

runs Nastavení vlastnosti tak, aby 1 fungovalo stejně jako nastavení operationOptions vlastnosti na SingleInstancehodnotu . Můžete nastavit kteroukoli vlastnost, ale ne obě.

Pokud chcete změnit výchozí limit, přečtěte si téma Změna souběžnosti aktivačních událostí nebo instancí triggerů postupně.
Všechny triggery
runtimeConfiguration.concurrency.maximumWaitingRuns Celé číslo Změňte výchozí limit počtu instancí pracovního postupu, které musí čekat na spuštění, když aplikace logiky už spouští maximální počet souběžných instancí.

Pokud chcete změnit výchozí limit, přečtěte si téma Změna limitu čekání na spuštění.
Všechny triggery
runtimeConfiguration.concurrency.repetitions Celé číslo Změňte výchozí limit počtu iterací smyčky pro každou smyčku, která se můžou spouštět současně (souběžně nebo paralelně).

repetitions Nastavení vlastnosti tak, aby 1 fungovalo stejně jako nastavení operationOptions vlastnosti na SingleInstancehodnotu . Můžete nastavit kteroukoli vlastnost, ale ne obě.

Pokud chcete změnit výchozí limit, přečtěte si téma Změna souběžnosti pro každý z nich nebo postupné spuštění smyčky "for each".
Akce:

Foreach
runtimeConfiguration.paginationPolicy.minimumItemCount Celé číslo Pro konkrétní akce, které podporují a mají zapnutou stránkování, určuje tato hodnota minimální počet výsledků, které se mají načíst.

Pokud chcete zapnout stránkování, přečtěte si téma Získání hromadných dat, položek nebo výsledků pomocí stránkování.
Akce: Různá
runtimeConfiguration.secureData.properties Pole U mnoha triggerů a akcí tato nastavení skryjí vstupy, výstupy nebo obojí z historie spuštění aplikace logiky.

Další informace o ochraně těchto dat najdete v tématu Skrytí vstupů a výstupů z historie spuštění.
Většina triggerů a akcí
runtimeConfiguration.staticResult JSON objekt Pro akce, které podporují a mají zapnuté nastavení statického výsledku, staticResult má objekt tyto atributy:

- name, který odkazuje na název definice statického výsledku aktuální akce, který se zobrazí uvnitř atributu staticResults v atributu pracovního postupu aplikace logiky definition . Další informace naleznete v tématu Statické výsledky – referenční informace ke schématu jazyka definice pracovního postupu.

- staticResultOptions– určuje, zda jsou Enabled statické výsledky pro aktuální akci nebo ne.

Pokud chcete zapnout statické výsledky, přečtěte si téma Testování aplikací logiky s napodobenými daty nastavením statických výsledků.
Akce: Různá

Možnosti operace

U aktivačních událostí a akcí můžete změnit výchozí chování s operationOptions vlastností v definici triggeru nebo akce.

Možnost operace Typ Popis Aktivační událost nebo akce
DisableAsyncPattern String Synchronně spouštějte akce založené na protokolu HTTP, nikoli asynchronně.



Pokud chcete tuto možnost nastavit, podívejte se na synchronní spuštění akcí.
Akce:

Rozhraní API Připojení ion,
HTTP,
Response
IncludeAuthorizationHeadersInOutputs String U aplikací logiky, které umožňují ověřování OAuth s MICROSOFT Entra ID k autorizaci přístupu pro příchozí volání do koncového bodu triggeru založeného na požadavku, zahrňte hlavičku Authorization z přístupového tokenu OAuth do výstupů triggeru. Další informace najdete v tématu Zahrnutí hlavičky Autorizace do výstupů triggeru požadavku. Aktivační události:

Žádost,
HTTP Webhook
Sequential String Postupně spouštět iterace smyčky "for each" (pro každou smyčku) a ne všechny paralelně.

Tato možnost funguje stejně jako nastavení runtimeConfiguration.concurrency.repetitions vlastnosti na 1. Můžete nastavit kteroukoli vlastnost, ale ne obě.



Pokud chcete tuto možnost nastavit, přečtěte si téma Sekvenčně spustit smyčky "for each".
Akce:

Foreach
SingleInstance String Před aktivací další instance aplikace logiky spusťte trigger pro každou instanci aplikace logiky postupně a počkejte na dokončení dříve aktivního spuštění.



Tato možnost funguje stejně jako nastavení runtimeConfiguration.concurrency.runs vlastnosti na 1. Můžete nastavit kteroukoli vlastnost, ale ne obě.

Pokud chcete tuto možnost nastavit, přečtěte si téma Instance triggeru postupně.
Všechny triggery
SuppressWorkflowHeaders String Neposílejte x-ms-* hlavičky metadat v odchozích požadavcích. Azure Logic Apps ve výchozím nastavení obsahuje další hlavičky metadat s předponou x-ms- v názvu hlavičky jako součást odchozích požadavků. Některé starší služby ale nepřijímají požadavky s dalšími neznámými hlavičkami, což vede k neúspěšným požadavkům. Akce:

HTTP,
Funkce,
ApiManagement
SuppressWorkflowHeadersOnResponse String Neodesílejte x-ms-* hlavičky metadat v odpovědích na příchozí aktivační požadavky. Azure Logic Apps ve výchozím nastavení odesílá odpovědi na příchozí požadavky, které obsahují hlavičky s dalšími metadaty s předponou x-ms- v názvu hlavičky. Některé starší služby ale nepřijímají žádosti ani odpovědi s dalšími neznámými hlavičkami, což vede k neúspěšným požadavkům. Aktivační události:

Žádost,
HTTP Webhook

Změna souběžnosti triggeru

Ve výchozím nastavení se instance pracovního postupu aplikace logiky spouští současně (souběžně nebo paralelně). Toto chování znamená, že každá instance triggeru se aktivuje před dokončením spuštění dříve aktivní instance pracovního postupu. Počet souběžně spuštěných instancí má ale výchozí limit. Když počet současně spuštěných instancí pracovního postupu dosáhne tohoto limitu, musí všechny ostatní nové instance počkat na spuštění. Tento limit pomáhá řídit počet požadavků, které back-endové systémy přijímají.

Když zapnete řízení souběžnosti triggeru, instance triggerů se spouští paralelně až do výchozího limitu. Pokud chcete změnit tento výchozí limit souběžnosti, můžete použít editor zobrazení kódu nebo návrhář pracovního postupu, protože změna nastavení souběžnosti prostřednictvím návrháře přidá nebo aktualizuje runtimeConfiguration.concurrency.runs vlastnost v základní definici triggeru a naopak. Tato vlastnost řídí maximální počet nových instancí pracovního postupu, které lze spustit paralelně.

Než u triggeru povolíte souběžnost, projděte si následující aspekty:

  • Po povolení řízení souběžnosti nemůžete souběžnost zakázat.

  • Pokud maximální počet souběžných spuštění aktivačních událostí dosáhne maximálního stupně paralelismu, může docházet k chybám omezování nebo chyby 429 – Příliš mnoho požadavků. Pokud nastavíte zásadu opakování, která zpracovává chyby 429, může trigger zaznamenat cyklus opakování a chování omezování, které způsobuje dlouhá zpoždění při zpracování nových požadavků triggeru.

  • Pokud je povolena souběžnost, je limit SplitOn výrazně snížen pro pole debaty. Pokud počet položek překročí tento limit, funkce SplitOn je zakázaná.

  • Pokud je povolená souběžnost, může dlouhotrvající instance aplikace logiky způsobit, že nové instance aplikace logiky zadají stav čekání. Tento stav brání službě Azure Logic Apps v vytváření nových instancí a stává se i v případě, že je počet souběžných spuštění menší než zadaný maximální počet souběžných spuštění.

    • Pokud chcete tento stav přerušit, zrušte nejstarší instance, které jsou stále spuštěné.

      1. V nabídce aplikace logiky vyberte Přehled.

      2. V části Historie spuštění vyberte nejstarší instanci, která je stále spuštěná, například:

        Výběr nejstarší spuštěné instance

        Tip

        Pokud chcete zobrazit pouze instance, které jsou stále spuštěné, otevřete seznam Všechny a vyberte Spuštěno.

      3. V části Spuštění aplikace logiky vyberte Zrušit spuštění.

        Vyhledání nejstarší spuštěné instance

    • Pokud chcete tuto možnost obejít, přidejte časový limit k jakékoli akci, která by mohla tato spuštění obsahovat. Pokud pracujete v editoru kódu, přečtěte si téma Změna asynchronní doby trvání. Jinak pokud používáte návrháře, postupujte takto:

      1. V pracovním postupu aplikace logiky vyberte akci, do které chcete přidat časový limit. V pravém horním rohu akce vyberte tlačítko se třemi tečkami (...) a pak vyberte Nastavení.

        Otevřít nastavení akcí

      2. V části Časový limit zadejte dobu časového limitu ve formátu ISO 8601.

        Zadání doby trvání časového limitu

  • Pokud chcete aplikaci logiky spouštět postupně, nastavte souběžnost 1 triggeru pomocí editoru zobrazení kódu nebo návrháře. Ujistěte se, že jste také nenastavili vlastnost SingleInstance triggeru operationOptions v editoru zobrazení kódu. V opačném případě se zobrazí chyba ověření. Další informace naleznete v tématu Trigger instance sekvenční.

Upravit v zobrazení kódu

V základní definici triggeru runtimeConfiguration.concurrency.runs přidejte vlastnost a nastavte hodnotu na základě limitů souběžnosti triggeru. Pokud chcete pracovní postup sekvenčně spustit, nastavte hodnotu vlastnosti na 1hodnotu .

Tento příklad omezuje souběžná spuštění na 10 instancí:

"<trigger-name>": {
   "type": "<trigger-name>",
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>,
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": 10
      }
   }
}

Další informace najdete v tématu Nastavení konfigurace modulu runtime.

Upravit v návrháři pracovního postupu

  1. V pravém horním rohu triggeru vyberte tlačítko se třemi tečkami (...) a pak vyberte Nastavení.

  2. V části Řízení souběžnosti nastavte možnost Limit na Zapnuto.

  3. Přetáhněte posuvník Stupeň paralelismu na požadovanou hodnotu. Pokud chcete aplikaci logiky spustit postupně, přetáhněte hodnotu posuvníku na 1.

Změna souběžnosti "pro každý"

Ve výchozím nastavení se iterace smyčky "for each" spustí ve stejnou dobu (souběžně nebo paralelně). Toto chování znamená, že každá iterace se spustí před dokončením předchozí iterace. Počet souběžně spuštěných iterací má ale výchozí limit. Když počet souběžně spuštěných iterací dosáhne tohoto limitu, musí všechny ostatní iterace počkat, až se spustí.

Pokud chcete změnit výchozí limit, můžete použít editor zobrazení kódu nebo návrhář pracovního postupu, protože změna nastavení souběžnosti prostřednictvím návrháře přidá nebo aktualizuje runtimeConfiguration.concurrency.repetitions vlastnost v podkladové definici akce "pro každý" a naopak. Tato vlastnost řídí maximální počet iterací, které lze spustit paralelně.

Poznámka:

Pokud nastavíte akci "for each" tak, aby se spouštěla postupně buď pomocí návrháře, nebo editoru zobrazení kódu, nenastavujte vlastnost akce operationOptions v Sequential editoru zobrazení kódu. V opačném případě se zobrazí chyba ověření. Další informace najdete v tématu Postupné spuštění smyčky "for each".

Upravit v zobrazení kódu

V podkladové definici "pro každý" přidejte nebo aktualizujte runtimeConfiguration.concurrency.repetitions vlastnost, která může mít hodnotu, která se pohybuje od 1 a 50.

Tady je příklad, který omezuje souběžná spuštění na 10 iterací:

"For_each" {
   "type": "Foreach",
   "actions": { "<actions-to-run>" },
   "foreach": "<for-each-expression>",
   "runAfter": {},
   "runtimeConfiguration": {
      "concurrency": {
         "repetitions": 10
      }
   }
}

Další informace najdete v tématu Nastavení konfigurace modulu runtime.

Upravit v návrháři pracovního postupu

  1. V pravém horním rohu každé akce vyberte tlačítko se třemi tečkami (...) a pak vyberte Nastavení.

  2. V části Řízení souběžnosti nastavte řízení souběžnosti na Zapnuto.

  3. Přetáhněte posuvník Stupeň paralelismu na požadovanou hodnotu. Pokud chcete aplikaci logiky spustit postupně, přetáhněte hodnotu posuvníku na 1.

Změna limitu čekajících spuštění

Ve výchozím nastavení se instance pracovního postupu aplikace logiky spouští současně (souběžně nebo paralelně). Toto chování znamená, že každá instance triggeru se aktivuje před dokončením spuštění dříve aktivní instance pracovního postupu. Výchozí limit však existuje u počtu souběžně spuštěných instancí pracovního postupu. Když počet souběžných spuštění dosáhne tohoto limitu, musí všechny ostatní nové instance pracovního postupu čekat na spuštění. Výchozí limit existuje také u počtu instancí čekajících pracovních postupů. Když počet čekajících instancí dosáhne tohoto limitu, Azure Logic Apps už nepřijímá nové instance pracovních postupů ke spuštění. Triggery požadavků a webhooků vrací chybu 429 – Příliš mnoho chyb požadavků a opakované triggery začnou přeskakovat pokusy o dotazování.

Můžete změnit výchozí limit souběžnosti triggerů a také výchozí limit pro čekající spuštění. Tato změna ale hlavně zpomaluje aktivační událost, aby se zmírnit tlak kvůli souběžnosti. Pokud máte například trigger dotazování a fronta čekajících spuštění je plná kvůli probíhajícím spuštěním, Azure Logic Apps zastaví dotazování. Pokud váš pracovní postup používá trigger založený na požadavku a fronta čekajících spuštění je plná, Azure Logic Apps začne vracet chybu 429. Existují některé scénáře, kdy Azure Logic Apps nemůže zastavit dotazování triggeru bez zavedení selhání a rozhodne se přidat taková spuštění do fronty čekajících spuštění, aniž by selhávající spuštění volání.

V podkladové definici triggeru runtimeConfiguration.concurrency.maximumWaitingRuns přidejte vlastnost, která může mít hodnotu, která se pohybuje od 1 do 100.

"<trigger-name>": {
   "type": "<trigger-name>",
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>,
   },
   "runtimeConfiguration": {
      "concurrency": {
         "maximumWaitingRuns": 50
      }
   }
}

Další informace najdete v tématu Nastavení konfigurace modulu runtime.

Sekvenčně aktivované instance

Pokud chcete spustit každou instanci pracovního postupu aplikace logiky až po dokončení spuštění předchozí instance, nastavte trigger tak, aby se spouštěl postupně. Můžete použít editor zobrazení kódu nebo návrhář pracovního postupu, protože změna nastavení souběžnosti prostřednictvím návrháře také přidá nebo aktualizuje runtimeConfiguration.concurrency.runs vlastnost v podkladové definici triggeru a naopak.

Poznámka:

Pokud nastavíte trigger tak, aby se sekvenčně spouštěl buď pomocí návrháře, nebo editoru zobrazení kódu, nenastavujte vlastnost triggeru operationOptions v Sequential editoru zobrazení kódu. V opačném případě se zobrazí chyba ověření.

Upravit v zobrazení kódu

V definici triggeru nastavte některou z těchto vlastností, ale ne obě.

runtimeConfiguration.concurrency.runs Nastavte vlastnost na 1:

"<trigger-name>": {
   "type": "<trigger-name>",
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>,
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": 1
      }
   }
}

-Nebo-

operationOptions Nastavte vlastnost na SingleInstance:

"<trigger-name>": {
   "type": "<trigger-name>",
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>,
   },
   "operationOptions": "SingleInstance"
}

Další informace naleznete v tématu Nastavení konfigurace modulu runtime a možnosti operace.

Upravit v návrháři pracovního postupu

  1. V pravém horním rohu triggeru vyberte tlačítko se třemi tečkami (...) a pak vyberte Nastavení.

  2. V části Řízení souběžnosti nastavte možnost Limit na Zapnuto.

  3. Přetáhněte posuvník Stupně paralelismu na číslo 1.

Postupně spouštět smyčky "for each"

Pokud chcete spustit iteraci smyčky for each až po dokončení předchozí iterace, nastavte akci "for each" tak, aby se spouštěla postupně. Můžete použít editor zobrazení kódu nebo návrhář pracovního postupu, protože změna souběžnosti akce prostřednictvím návrháře také přidá nebo aktualizuje runtimeConfiguration.concurrency.repetitions vlastnost v definici podkladové akce a naopak.

Poznámka:

Když nastavíte akci pro každou akci tak, aby se spouštěla postupně buď pomocí návrháře, nebo editoru zobrazení kódu, nenastavujte vlastnost akce operationOptions v Sequential editoru zobrazení kódu. V opačném případě se zobrazí chyba ověření.

Upravit v zobrazení kódu

V definici akce nastavte některou z těchto vlastností, ale ne obě.

runtimeConfiguration.concurrency.repetitions Nastavte vlastnost na 1:

"For_each" {
   "type": "Foreach",
   "actions": { "<actions-to-run>" },
   "foreach": "<for-each-expression>",
   "runAfter": {},
   "runtimeConfiguration": {
      "concurrency": {
         "repetitions": 1
      }
   }
}

-Nebo-

operationOptions Nastavte vlastnost na Sequential:

"For_each" {
   "type": "Foreach",
   "actions": { "<actions-to-run>" },
   "foreach": "<for-each-expression>",
   "runAfter": {},
   "operationOptions": "Sequential"
}

Další informace naleznete v tématu Nastavení konfigurace modulu runtime a možnosti operace.

Upravit v návrháři pracovního postupu

  1. V pravém horním rohu každé akce vyberte tlačítko se třemi tečkami (...) a pak vyberte Nastavení.

  2. V části Řízení souběžnosti nastavte řízení souběžnosti na Zapnuto.

  3. Přetáhněte posuvník Stupně paralelismu na číslo 1.

Spouštění akcí v synchronním vzoru operace

Ve výchozím nastavení se akce HTTP a rozhraní API Připojení ion v Azure Logic Apps řídí standardním vzorem asynchronní operace, zatímco akce Odpovědi se řídí synchronním vzorem operace. Asynchronní vzor určuje, že po volání akce nebo odeslání požadavku na zadaný koncový bod, službu, systém nebo rozhraní API příjemce okamžitě vrátí odpověď 202 ACCEPTED . Tento kód potvrdí, že příjemce přijal požadavek, ale nedokončil zpracování. Odpověď může obsahovat hlavičkulocation, která určuje adresu URL a ID aktualizace, které volající může použít k neustálému dotazování nebo kontrole stavu asynchronního požadavku, dokud příjemce nezastaví zpracování a nevrátí odpověď na úspěch 200 OK nebo jinou odpověď, která není 202. Další informace najdete v tématu Asynchronní integrace mikroslužeb vynucuje autonomii mikroslužeb.

  • V Návrháři aplikace logiky mají akce HTTP, rozhraní API Připojení ion akce a akce Odpovědi nastavení asynchronního vzoru. Pokud je toto nastavení povolené, určuje, že volající nečeká na dokončení zpracování a může přejít na další akci, ale pokračuje v kontrole stavu, dokud se zpracování nezastaví. Pokud je toto nastavení zakázané, určuje, že volající čeká na dokončení zpracování před přechodem na další akci. Pokud chcete toto nastavení najít, postupujte takto:

    1. Na záhlaví akce HTTP vyberte tlačítko se třemi tečkami (...), které otevře nastavení akce.

    2. Vyhledejte nastavení asynchronního vzoru .

      Nastavení Asynchronní vzor

  • V základní definici JAVAScript Object Notation (JSON) akce HTTP a rozhraní API Připojení ion implicitně sledují vzor asynchronní operace.

V některých scénářích můžete chtít, aby akce dodržovala synchronní vzor. Když například použijete akci HTTP, můžete chtít:

V těchtopřípadechch

Vypnutí nastavení asynchronního vzoru

  1. V Návrháři aplikace logiky na záhlaví akce vyberte tlačítko se třemi tečkami (...), které otevře nastavení akce.

  2. Najděte nastavení Asynchronní vzor, vypněte nastavení na Vypnuto, pokud je povoleno, a vyberte Hotovo.

    Vypnutí nastavení Asynchronní vzor

Zakázání asynchronního vzoru v definici JSON akce

V podkladové definici JSON akce přidejte a nastavte vlastnost operationOptions na "DisableAsyncPattern" pod oddíl akce "inputs" , například:

"<some-long-running-action>": {
   "type": "Http",
   "inputs": { "<action-inputs>" },
   "operationOptions": "DisableAsyncPattern",
   "runAfter": {}
}

Ověřování triggerů a akcí

Koncové body HTTP a HTTPS podporují různé druhy ověřování. Na základě triggeru nebo akce, kterou používáte k odchozím voláním nebo žádostem o přístup k těmto koncovým bodům, můžete vybrat z různých rozsahů typů ověřování. Další informace najdete v tématu Přidání ověřování pro odchozí volání.

Další kroky