Řešení chyb a výjimek pracovního postupu v Azure Logic Apps

Platí pro: Azure Logic Apps (Consumption + Standard)

Způsob, jakým jakákoli architektura integrace odpovídajícím způsobem zpracovává výpadky nebo problémy způsobené závislými systémy, může představovat výzvu. Azure Logic Apps poskytuje prvotřídní prostředí pro zpracování chyb a výjimek, které vám pomůžou vytvářet robustní a odolné integrace, které elegantně zpracovávají problémy a selhání.

Zásady opakování pokusů

Pro nejzákladnější zpracování výjimek a chyb můžete použít zásadu opakování , pokud tato funkce existuje u triggeru nebo akce, jako je akce HTTP. Pokud u původního požadavku aktivační události nebo akce dojde k vypršení časového limitu nebo k selhání, což vede k odpovědi 408, 429 nebo 5xx, zásada opakování určuje, že aktivační událost nebo akce požadavek znovu odešle podle nastavení zásady.

Omezení zásad opakování

Další informace o zásadách opakování, nastaveních, limitech a dalších možnostech najdete v tématu Omezení zásad opakování.

Typy zásad opakování

Operace konektoru, které podporují zásady opakování, používají výchozí zásady, pokud nevyberete jinou zásadu opakování.

Zásady opakování Popis
Výchozí Pro většinu operací je zásada opakování Default zásadou exponenciálních intervalů, která provede až 4 opakované pokusy v exponenciálně se prodlužujících intervalech. Tyto intervaly se škálují o 7,5 sekund, ale jsou omezeny mezi 5 a 45 sekundami. Několik operací používá jinou výchozí zásadu opakování, například zásadu s pevným intervalem. Další informace najdete v článku Typ výchozí zásady opakování.
Nic Neposílejte žádost znovu. Další informace naleznete v části Žádné – bez zásady opakování.
Exponenciální interval Tato strategie před odesláním dalšího požadavku vyčkává náhodně dlouhý interval, který je zvolen z intervalu, jehož velikost exponenciálně roste. Další informace najdete v článku typ zásad exponenciálního intervalu.
Pevný interval Tato zásada před odesláním dalšího požadavku počká na zadaný interval. Další informace najdete v tématu typ zásady pevného intervalu.

Změnit typ zásady opakování v návrháři

  1. V portálu Azure otevřete prostředek logické aplikace.

  2. Na bočním panelu prostředku pomocí následujícího postupu otevřete návrháře pracovního postupu na základě vaší aplikace logiky:

    • Spotřeba: V části Vývojové nástroje vyberte návrháře a otevřete svůj pracovní postup.

    • Standard

      1. V části Pracovní postupy vyberte Pracovní postupy.

      2. Na stránce Pracovní postupy vyberte svůj pracovní postup.

      3. V části Nástroje vyberte návrháře a otevřete pracovní postup.

  3. Na triggeru nebo akci, ve které chcete změnit typ zásady opakování, otevřete nastavení pomocí následujícího postupu:

    1. V návrháři vyberte operaci.

    2. V podokně s informacemi o operaci vyberte Nastavení.

    3. V části Sítě v části Zásady opakování vyberte požadovaný typ zásady.

Změna typu zásady opakování v editoru zobrazení kódu

  1. Ověřte, jestli spouštěcí prvek nebo akce podporuje zásady opakování dokončením předchozích kroků v návrháři.

  2. Otevřete pracovní postup aplikace logiky v editoru zobrazení kódu.

  3. V definici triggeru nebo akce přidejte retryPolicy objekt JSON do objektu triggeru nebo akce inputs . Pokud neexistuje žádný retryPolicy objekt, trigger nebo akce použije zásadu default opakování.

    "inputs": {
       <...>,
       "retryPolicy": {
          "type": "<retry-policy-type>",
          // The following properties apply to specific retry policies.
          "count": <retry-attempts>,
          "interval": "<retry-interval>",
          "maximumInterval": "<maximum-interval>",
          "minimumInterval": "<minimum-interval>"
       },
       <...>
    },
    "runAfter": {}
    

    Povinné

    Vlastnost Hodnota Typ Popis
    type < typ zásady pro opakované pokusy> Řetězec Typ zásady opakování, který se má použít: default, none, fixednebo exponential
    count < počet opakování> Celé číslo Pro typy zásad fixed a exponential je počet pokusů o opakování hodnota v rozsahu od 1 do 90. Další informace najdete v tématu Pevný interval a Exponenciální interval.
    interval < interval opakování> Řetězec Pro typy zásad fixed a exponential je hodnota intervalu opakování ve formátu ISO 8601. Pro zásadu exponential můžete také zadat volitelné maximální a minimální intervaly. Další informace najdete v tématu Pevný interval a Exponenciální interval.

    Spotřeba: 5 sekund (PT5S) až 1 den (P1D).
    Standardní: Pro stavové pracovní postupy 5 sekund (PT5S) až 1 den (P1D). V případě bezstavových pracovních postupů 1 sekunda (PT1S) až 1 minuta (PT1M).

    Volitelné

    Vlastnost Hodnota Typ Popis
    maximumInterval < maximální interval> Řetězec Pro zásadu exponential je největší interval pro náhodně vybraný interval v formátu ISO 8601. Výchozí hodnota je 1 den (P1D). Další informace najdete v tématu Exponential Interval.
    minimumInterval < minimální interval> Řetězec Pro zásadu exponential nejmenší interval pro náhodně zvolený interval ve formátu ISO 8601. Výchozí hodnota je 5 sekund (PT5S). Další informace najdete v tématu Exponential Interval.

Výchozí zásada opakovaných pokusů

Operace konektoru, které podporují zásady opakování, používají výchozí zásady, pokud nevyberete jinou zásadu opakování. Pro většinu operací je zásada opakování Výchozí zásadou s exponenciálními intervaly, která provede až 4 opakované pokusy v exponenciálně se prodlužujících intervalech. Tyto intervaly se škálují o 7,5 sekund, ale jsou omezeny mezi 5 a 45 sekundami. Několik operací používá jinou výchozí zásadu opakování, například zásadu s pevným intervalem.

V definici pracovního postupu definice triggeru nebo akce explicitně nedefinuje výchozí zásady, ale následující příklad ukazuje, jak se výchozí zásady opakování chovají pro akci HTTP:

"HTTP": {
   "type": "Http",
   "inputs": {
      "method": "GET",
      "uri": "http://myAPIendpoint/api/action",
      "retryPolicy" : {
         "type": "exponential",
         "interval": "PT7S",
         "count": 4,
         "minimumInterval": "PT5S",
         "maximumInterval": "PT1H"
      }
   },
   "runAfter": {}
}

Žádné – žádné zásady opakování

Pokud chcete zadat, aby akce nebo aktivační událost neopakovala neúspěšné požadavky, nastavte <typ zásady opakování> na none.

Zásada opakování s pevným intervalem

Chcete-li určit, aby akce nebo aktivační událost před odesláním dalšího požadavku počkala zadaný interval, nastavte <retry-policy-type> na fixed.

Příklad

Tato zásada opakování se pokusí získat nejnovější zprávy dvakrát po prvním neúspěšném požadavku s 30sekundovým zpožděním mezi jednotlivými pokusy:

"Get_latest_news": {
   "type": "Http",
   "inputs": {
      "method": "GET",
      "uri": "https://mynews.example.com/latest",
      "retryPolicy": {
         "type": "fixed",
         "interval": "PT30S",
         "count": 2
      }
   }
}

Zásada opakování s exponenciálními intervaly

Zásada opakování exponenciálního intervalu určuje, že trigger nebo akce před odesláním dalšího požadavku počká na náhodný interval. Tento náhodný interval je vybrán z exponenciálně rostoucího rozsahu. Volitelně můžete výchozí minimální a maximální intervaly přepsat zadáním vlastního minimálního a maximálního intervalu na základě toho, jestli máte pracovní postup aplikace logiky Consumption nebo Standard.

Název Limit spotřeby Standardní limit Poznámky
Maximální zpoždění Výchozí hodnota: 1 den Výchozí hodnota: 1 hodina Pokud chcete změnit výchozí limit v pracovním postupu aplikace logiky Consumption, použijte parametr zásady opakování.

Pokud chcete změnit výchozí limit v pracovním postupu standardní aplikace logiky, přečtěte si téma Upravit nastavení hostitele a aplikace pro aplikace logiky v Azure Logic Apps s jedním tenantem.

Minimální zpoždění Výchozí hodnota: 5 sekund Výchozí hodnota: 5 sekund Pokud chcete změnit výchozí limit v pracovním postupu aplikace logiky Consumption, použijte parametr zásady opakování.

Pokud chcete změnit výchozí limit v pracovním postupu standardní aplikace logiky, přečtěte si téma Upravit nastavení hostitele a aplikace pro aplikace logiky v Azure Logic Apps s jedním tenantem.

Náhodné rozsahy proměnných

V případě zásad opakování exponenciálního intervalu uvádí následující tabulka obecný algoritmus, který Azure Logic Apps používá k vygenerování jednotné náhodné proměnné v zadaném rozsahu pro každé opakování. Zadaný rozsah může sahat až k počtu opakování včetně.

Počet opakování Minimální interval Maximální interval
1 max(0, <minimální interval>) min(interval, <maximální-interval>)
2 max(interval, <minimální interval>) min(2 * interval, <maximální interval>)
3 max(2 * interval, <minimální-interval>) min(4 * interval, <maximální interval>)
4 max(4 * interval, <minimální interval>) min(8 * interval, <maximální interval>)
.... .... ....

Správa chování „spustit po“

Když přidáte akce v návrháři pracovního postupu, implicitně deklarujete posloupnost pro spuštění těchto akcí. Po dokončení akce je tato akce označena stavem, například Úspěšná, Neúspěšná, Přeskočená nebo Vypršel časový limit. Jinými slovy, předchozí akce musí nejprve skončit jedním z povolených stavů, než může proběhnout následná akce.

Ve výchozím nastavení se akce, kterou přidáte v návrháři, spustí pouze v případě, že předchozí akce bude dokončena se stavem Úspěch. Toto následné spuštění chování přesně určuje pořadí spuštění pro akce v pracovním postupu.

V návrháři můžete změnit výchozí chování možnosti Spustit po úpravou nastavení akce. Toto nastavení je k dispozici pouze u následných akcí, které následují první akci v pracovním postupu. První akce v pracovním postupu se vždy spustí po úspěšném spuštění triggeru. Takže nastavení Spustit po není k dispozici a nevztahuje se na první akci.

V podkladové definici JSON akce je nastavení Spustit po stejné jako vlastnost runAfter. Tato vlastnost určuje jednu nebo více akcí předchůdců, které se musí nejprve dokončit s konkrétními povolenými stavy před spuštěním následné akce. Vlastnost runAfter je objekt JSON, který poskytuje flexibilitu tím, že umožňuje zadat všechny předchůdce akce, které musí být dokončeny před spuštěním následníka akce. Tento objekt také definuje pole přijatelných stavů.

Pokud například chcete mít akci spuštěnou po úspěšném provedení akce A a také po úspěšném provedení akce B nebo selhání, když pracujete na definici JSON akce, nastavte následující runAfter vlastnost:

{
   // Other parts in action definition
   "runAfter": {
      "Action A": ["Succeeded"],
      "Action B": ["Succeeded", "Failed"]
    }
}

Chování „běh po“ pro zpracování chyb

Když akce vyvolá neošetřenou chybu nebo výjimku, označí se jako Neúspěšná a jakákoli následná akce se označí jako Přeskočená. Pokud k tomuto chování dojde u akce s paralelními větvemi, modul Azure Logic Apps se řídí dalšími větvemi a určí jejich stav dokončení. Pokud například větev končí akcí Přeskočeno, stav dokončení této větve se řídí stavem předcházející akce. Po dokončení běhu pracovního postupu engine určí stav celého běhu vyhodnocením stavů všech větví. Pokud nějaká větev skončí v selhání, označí se celé spuštění pracovního postupu jako Neúspěšné.

Koncepční diagram s příklady, které ukazují, jak se vyhodnocují stavy spuštění

Pokud chcete zajistit, aby bylo možné akci spustit bez ohledu na stav předchozí akce, můžete změnit chování „run after“ této akce tak, aby zpracovávalo neúspěšné stavy předchozí akce. Tímto způsobem se akce spustí, když je stav předchůdce úspěšný, neúspěšný, přeskočený, vypršel časový limit nebo když platí všechny tyto stavy.

Pokud chcete například spustit akci Office 365 Outlook Odeslat e-mail poté, co je předchozí akce Excel Online Přidat řádek do tabulky označena jako Neúspěšné, a nikoli Úspěšné, změňte chování možnosti „spustit po“ pomocí návrháře nebo editoru zobrazení kódu.

Změna chování možnosti „spustit po“ v návrháři

  1. V portálu Azure otevřete prostředek logické aplikace.

  2. Na bočním panelu prostředku pomocí následujícího postupu otevřete návrháře pracovního postupu na základě vaší aplikace logiky:

    • Spotřeba: V části Vývojové nástroje vyberte návrháře a otevřete svůj pracovní postup.

    • Standard

      1. V postranním panelu zdroje v části Pracovní postupy vyberte Pracovní postupy.

      2. Na stránce Pracovní postupy vyberte svůj pracovní postup.

      3. V části Nástroje vyberte návrháře a otevřete pracovní postup.

  3. Na spouštěči nebo akci, kde chcete změnit chování 'spustit po', postupujte podle následujících kroků k otevření nastavení operace:

    1. V návrháři vyberte operaci.

    2. V podokně s informacemi o operaci vyberte Nastavení.

      Oddíl Spustit po obsahuje Seznam akcí, který zobrazuje dostupné operace předchůdce pro aktuálně vybranou operaci, například:

      Snímek obrazovky se seznamem pro výběr akcí s předchozími operacemi

    3. V seznamu Vybrat akce rozbalte operaci aktuálního předchůdce, což je v tomto příkladu HTTP:

      Snímek obrazovky znázorňující aktuální operaci předchůdce

      Ve výchozím nastavení je možnost „spustit po“ nastavena na Je úspěšné. Tato hodnota znamená, že operace předchůdce musí být úspěšně dokončena před spuštěním aktuální akce.

      Snímek obrazovky zobrazuje aktuální spuštění po nastavení stavu na úspěšný.

  4. Pokud chcete změnit chování "spustit po" na požadované stavy, vyberte tyto stavy.

    V následujícím příkladu se vybere Selhalo.

    Snímek obrazovky ukazuje aktuální běh po nastavení chování na nezdařilo.

  5. Pokud chcete určit, že se aktuální operace spustí jenom v případě, že se akce předchůdce dokončí se stavem Došlo k chybě, vynechá se nebo vypršel časový limit , vyberte tyto stavy a pak zrušte výchozí stav, například:

    Snímek obrazovky ukazuje aktuální akci a vybrané stavy po více spuštěních.

    Poznámka:

    Než vymažete výchozí stav, ujistěte se, že jste nejdřív vybrali jiný stav. Vždy musíte mít vybraný aspoň jeden stav.

  6. Pokud chcete vyžadovat, aby se spustilo a dokončilo několik předchozích operací, každý se stavem "Spustit po" postupujte takto:

    1. Otevřete seznam Vybrat akce a vyberte požadované předcházející operace.

    2. Vyberte stav "spustit po" pro každou operaci.

    Snímek obrazovky ukazuje aktuální akci a k dispozici několik předchozích akcí.

  7. Po dokončení zavřete podokno informací o operaci.


Změna chování „spustit po“ v editoru zobrazení kódu

  1. Na bočním panelu prostředku pomocí následujícího postupu otevřete editor zobrazení kódu na základě vaší aplikace logiky:

    • Spotřeba: V části Vývojové nástroje vyberte zobrazení kódu a otevřete svůj pracovní postup v editoru JSON.

    • Standard

      1. V části Pracovní postupy vyberte Pracovní postupy.

      2. Na stránce Pracovní postupy vyberte svůj pracovní postup.

      3. V části Nástroje vyberte zobrazení kódu a otevřete pracovní postup v editoru JSON.

  2. V definici JSON akce upravte runAfter vlastnost, která má následující syntaxi:

    "<action-name>": {
       "inputs": {
          "<action-specific-inputs>"
       },
       "runAfter": {
          "<preceding-action>": [
             "Succeeded"
          ]
       },
       "type": "<action-type>"
    }
    
  3. V tomto příkladu změňte vlastnost runAfter z Succeeded na Failed:

    "Send_an_email_(V2)": {
       "inputs": {
          "body": {
             "Body": "<p>Failed to add row to table: @{body('Add_a_row_into_a_table')?['Terms']}</p>",
             "Subject": "Add row to table failed: @{body('Add_a_row_into_a_table')?['Terms']}",
             "To": "Sophia.Owen@fabrikam.com"
          },
          "host": {
             "connection": {
                "name": "@parameters('$connections')['office365']['connectionId']"
             }
          },
          "method": "post",
          "path": "/v2/Mail"
       },
       "runAfter": {
          "Add_a_row_into_a_table": [
             "Failed"
          ]
       },
       "type": "ApiConnection"
    }
    
  4. Chcete-li určit, zda je akce spuštěna bez ohledu na to, zda je akce předchůdce označena jako Failednebo SkippedTimedOut, přidejte další stavy:

    "runAfter": {
       "Add_a_row_into_a_table": [
          "Failed", "Skipped", "TimedOut"
       ]
    },
    

Vyhodnoťte akce s rozsahy a jejich výsledky

Podobně jako při spouštění kroků po jednotlivých akcích pomocí nastavení „spustit po“ můžete akce seskupit v oblasti. Obory můžete použít, když chcete logicky seskupit akce dohromady, posoudit agregovaný stav oboru a provádět akce na základě tohoto stavu. Jakmile se všechny akce v oboru dokončí, získá samotný obor svůj vlastní stav.

Pokud chcete zkontrolovat stav oblasti, můžete použít stejná kritéria, která používáte pro kontrolu stavu spuštění pracovního postupu, například Úspěch, Selhání atd.

Pokud jsou všechny akce oboru úspěšné, stav oboru je ve výchozím nastavení označený jako Úspěch. Pokud je konečná akce v oboru označena jako Neúspěšná nebo přerušená, stav oboru se označí jako Neúspěšný.

Pokud chcete zachytit výjimky v oboru Failed a spustit akce, které tyto chyby zpracují, můžete pro tento obor Failed použít nastavení „spustit po“. Tímto způsobem, pokud libovolné akce v rámci oboru selžou a pro tento obor použijete nastavení „Spustit po“, můžete vytvořit jednu akci, která zachytí selhání.

Omezení oborů najdete v tématu Omezení a konfigurace.

Nastavte rozsah s možností „spustit po“ pro zpracování výjimek

  1. V portálu Azure otevřete prostředek logické aplikace a pracovní postup v návrhovém prostředí.

    Váš pracovní postup už musí mít aktivační událost, která spustí pracovní postup.

  2. V návrháři podle těchto obecných kroků přidejte do vašeho pracovního postupu akci Řízení s názvem Rozsah.

  3. V akci Rozsah postupujte podle těchto obecných kroků a přidejte akce, které se mají spustit, například:

    Snímek obrazovky zobrazuje návrháře pracovního postupu s akcemi seskupenými uvnitř oblasti.

    Následující seznam zobrazuje některé příklady akcí, které můžete zahrnout do akce Scope:

    • Získání dat z rozhraní API
    • Zpracování dat
    • Uložte data do databáze.
  4. Teď definujte pravidla "spustit po" pro spuštění akcí v oboru.

    1. V návrháři vyberte nadpis Scope. Když se otevře informační podokno oboru, vyberte možnost Nastavení.

    2. Pokud máte v pracovním postupu více než jednu předchozí akci, vyberte v seznamu Vybrat akce akci, po které chcete spustit vymezené akce.

    3. U vybrané akce vyberte všechny stavy akcí, které můžou spouštět akce s vymezeným oborem.

      Jinými slovy, jakýkoli z vybraných stavů, které jsou výsledkem vybrané akce, způsobí spuštění akcí v oboru.

      V následujícím příkladu se akce s vymezeným oborem spustí po dokončení akce HTTP se všemi vybranými stavy:

      Snímek obrazovky zobrazuje kartu Nastavení akce Scope, oddíl Spustit po a vybrané stavy akce, které spouštějí akce v rámci oboru.

Získejte kontext a výsledky neúspěšných operací

I když je zachycení chyb z oboru užitečné, můžete také chtít další kontext, který vám pomůže zjistit přesné neúspěšné akce a případné chyby nebo stavové kódy. Funkce result() vrátí výsledky z akcí nejvyšší úrovně v omezené akci. Tato funkce přijme název oboru jako jediný parametr a vrátí pole s výsledky z těchto akcí nejvyšší úrovně. Tyto objekty akcí mají stejné atributy jako atributy vrácené actions() funkcí, jako je počáteční čas akce, čas ukončení, stav, vstupy, ID korelace a výstupy.

Poznámka:

Funkce result() vrátí výsledky pouze z akcí nejvyšší úrovně a ne z hlubších vnořených akcí, jako jsou akce přepínače nebo podmínky.

Pokud chcete získat informace o akcích, které v rozsahu selhaly, můžete použít výraz @result() s názvem rozsahu a nastavením „Spustit po“. Chcete-li vyfiltrovat vrácené pole tak, aby obsahovalo jen akce se stavem Selhalo, můžete přidat akci Filtrovat pole. Pokud chcete spustit akci pro vrácenou neúspěšnou akci, vezměte vrácené filtrované pole a použijte smyčku For each.

Následující příklad JSON odešle požadavek HTTP POST s textem odpovědi pro všechny akce, které selhaly v rámci akce oboru s názvem My_Scope. Podrobné vysvětlení následuje v příkladu.

"Filter_array": {
   "type": "Query",
   "inputs": {
      "from": "@result('My_Scope')",
      "where": "@equals(item()['status'], 'Failed')"
   },
   "runAfter": {
      "My_Scope": [
         "Failed"
      ]
    }
},
"For_each": {
   "type": "foreach",
   "actions": {
      "Log_exception": {
         "type": "Http",
         "inputs": {
            "method": "POST",
            "body": "@item()['outputs']['body']",
            "headers": {
               "x-failed-action-name": "@item()['name']",
               "x-failed-tracking-id": "@item()['clientTrackingId']"
            },
            "uri": "http://requestb.in/"
         },
         "runAfter": {}
      }
   },
   "foreach": "@body('Filter_array')",
   "runAfter": {
      "Filter_array": [
         "Succeeded"
      ]
   }
}

Následující kroky popisují, co se stane v tomto příkladu:

  1. Chcete-li získat výsledek ze všech akcí uvnitř My_Scope, akce Filtrovat pole používá tento výraz filtru: @result('My_Scope')

  2. Podmínkou pro Filter Array je libovolná @result() položka, která má stav rovný Failed. Tato podmínka filtruje pole, které má výsledky všech akcí z My_Scope dolů na pole s pouze neúspěšnými výsledky akce.

  3. Proveďte For_each akci ve smyčce na výstupech filtrovaného pole. Tento krok provede akci pro každý výsledek neúspěšné akce, který byl dříve filtrován.

    Pokud jedna z akcí v rámci oboru selže, akce ve smyčce For_each se spustí pouze jednou. Více neúspěšných akcí vyvolá jednu akci za každé selhání.

  4. Odešle požadavek HTTP POST do textu odpovědi položky For_each, který je výrazem @item()['outputs']['body'].

    Obrazec @result() položky je stejný jako @actions() obrazec a dá se analyzovat stejným způsobem.

  5. Zahrňte dvě vlastní hlavičky s názvem neúspěšné akce (@item()['name']) a ID sledování neúspěšného spuštění klienta (@item()['clientTrackingId']).

Tady je příklad jedné @result() položky, která ukazuje namebody, a clientTrackingId vlastnosti, které jsou analyzovány v předchozím příkladu. Mimo akci For_each vrací @result() pole těchto objektů.

{
   "name": "Example_Action_That_Failed",
   "inputs": {
      "uri": "https://myfailedaction.azurewebsites.net",
      "method": "POST"
   },
   "outputs": {
      "statusCode": 404,
      "headers": {
         "Date": "Thu, 11 Aug 2016 03:18:18 GMT",
         "Server": "Microsoft-IIS/8.0",
         "X-Powered-By": "ASP.NET",
         "Content-Length": "68",
         "Content-Type": "application/json"
      },
      "body": {
         "code": "ResourceNotFound",
         "message": "/docs/folder-name/resource-name does not exist"
      }
   },
   "startTime": "2016-08-11T03:18:19.7755341Z",
   "endTime": "2016-08-11T03:18:20.2598835Z",
   "trackingId": "bdd82e28-ba2c-4160-a700-e3a8f1a38e22",
   "clientTrackingId": "08587307213861835591296330354",
   "code": "NotFound",
   "status": "Failed"
}

Pokud chcete provádět různé vzory zpracování výjimek, můžete použít výrazy popsané v tomto článku. Můžete se rozhodnout spustit jednu akci pro zpracování výjimek mimo tento rozsah, která přijímá celé filtrované pole neúspěšných položek, a odstranit akci For_each. Můžete také zahrnout další užitečné vlastnosti z \@result() odpovědi, jak jsme popsali dříve.

Nastavení protokolů služby Azure Monitor

Předchozí vzory jsou užitečné způsoby zpracování chyb a výjimek, ke kterým dochází během spuštění. Můžete ale také identifikovat chyby, ke kterým dochází nezávisle na spuštění, a reagovat na ně. Pokud chcete vyhodnotit stav spuštění, můžete monitorovat protokoly a metriky spuštění nebo je publikovat do libovolného nástroje pro monitorování, který dáváte přednost.

Azure Monitor například nabízí zjednodušený způsob odesílání všech událostí pracovního postupu, včetně všech stavů spuštění a akcí, do cíle. Ve službě Azure Monitor můžete nastavit upozornění na konkrétní metriky a prahové hodnoty. Události pracovního postupu můžete také odesílat do pracovního prostoru služby Log Analytics nebo do účtu úložiště Azure. Nebo můžete streamovat všechny události prostřednictvím služby Azure Event Hubs do Azure Stream Analytics. V Stream Analytics můžete psát živé dotazy na základě jakýchkoli anomálií, průměrů nebo selhání z diagnostických protokolů. Stream Analytics můžete použít k odesílání informací do jiných zdrojů dat, jako jsou fronty, témata, SQL, Azure Cosmos DB nebo Power BI.

Další informace najdete v tématu Nastavení protokolů služby Azure Monitor a shromažďování diagnostických dat pro Azure Logic Apps.