Spouštění pracovních postupů nebo akcí na základě událostí koncového bodu služby pomocí webhooků HTTP v Azure Logic Apps

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

Pokud chcete, aby trigger nebo akce pracovního postupu čekaly na události nebo data do cílového koncového bodu služby před spuštěním, použijte trigger či akci webhooku HTTP než proaktivně kontrolujte koncový bod podle plánu. Trigger nebo akce HTTP webhook se přihlásí k odběru koncového bodu služby a čeká na nové události nebo data před spuštěním. Model webhooku můžete použít pro dlouhotrvající úlohy a asynchronní zpracování.

Následující seznam popisuje příklady pracovních postupů založených na webhoocích:

  • Trigger HTTP Webhook čeká na přijetí události z Azure Event Hubs před spuštěním pracovního postupu.
  • Akce HTTP Webhook čeká na schválení v Office 365 Outlook a teprve potom pokračuje v další akci v pracovním postupu.

Tento průvodce ukazuje, jak nastavit trigger webhooku HTTP a akci webhooku HTTP , aby váš pracovní postup mohl přijímat a reagovat na nové události nebo data v koncovém bodu služby.

Jak fungují webhooky?

Trigger nebo akce webhooku neprovádí pravidelné dotazování ani proaktivně nekontroluje nové události nebo data v cílovém koncovém bodu služby. Místo toho trigger nebo akce čeká, dokud dorazí nové události nebo data do koncového bodu služby, než se spustí. Po přidání spouštěče webhooku nebo akce do pracovního postupu a uložení pracovního postupu, nebo po opětovném povolení zakázaného prostředku logické aplikace, se spouštěč webhooku nebo akce přihlásí k odběru koncového bodu služby vygenerováním a registrací adresy URL zpětného volání s koncovým bodem. Trigger nebo akce pak počká, až koncový bod služby zavolá adresu URL, která spustí trigger nebo akci. Podobně jako trigger požadavku se trigger HTTP Webhook aktivuje okamžitě.

Například akce konektoru Office 365 Outlook s názvem Odeslat schvalovací e-mail se řídí webhookovým vzorem, ale funguje pouze s Office 365 Outlook. Model webhooku můžete rozšířit do libovolné služby pomocí triggeru webhooku HTTP nebo akce s požadovaným koncovým bodem služby.

Webhookový trigger zůstane připojený ke koncovému bodu služby, dokud ručně neprovedete jednu z následujících akcí:

  • Změňte hodnoty parametrů triggeru.
  • Odstraňte trigger a pak pracovní postup uložte.
  • Zakažte zdroj logické aplikace.

Akce webhooku zůstává přihlášena k odběru koncového bodu služby, dokud nenastane jedna z následujících podmínek:

  • Akce webhooku se úspěšně dokončila.
  • Při čekání na odpověď zrušíte spuštění pracovního postupu.
  • Časový limit pracovního postupu vypršel.
  • Změníte hodnoty parametrů akce webhooku, které trigger webhooku používá jako vstupy.

Další informace najdete tady:

Požadavky

  • Účet Azure a předplatné. Přičte si bezplatný účet Azure.

  • Adresa URL nasazeného koncového bodu služby nebo rozhraní API

    Tato položka musí podporovat vzor „přihlášení k odběru a odhlášení“ pro triggery webhooků v pracovních postupech nebo akce webhooku v pracovních postupech.

  • Pracovní postup logické aplikace Standard nebo Consumption, ve kterém chcete použít trigger nebo akci HTTP Webhook.

    • Pro použití spouštěče HTTP webhook vytvořte prostředek logické aplikace s prázdným pracovním postupem.
    • Pokud chcete použít akci webhooku HTTP , spusťte pracovní postup s libovolným triggerem, který je pro váš scénář nejvhodnější. Příklady používají HTTP webhook jako trigger.

Přidejte HTTP webhookový spouštěč

Tato integrovaná aktivační událost volá koncový bod odběru cílové služby a zaregistruje adresu URL zpětného volání do cílové služby. Pak váš pracovní postup čeká, až cílová služba odešle HTTP POST požadavek na zpětnou URL adresu. Když k této události dojde, spouštěč se aktivuje a předá veškerá data z požadavku do pracovního postupu.

  1. Na portálu Azure otevřete prostředek Logic App. V návrháři si otevřete prázdný pracovní postup.

  2. Postupujte podle obecných kroků a přidejte do pracovního postupu trigger s názvem HTTP Webhook .

    Tento příklad přejmenuje spouštěč na Run HTTP Webhook trigger na popisnější název. Příklad také později přidá akci HTTP webhook. Oba názvy musí být jedinečné.

  3. Pro parametry spouštěče webhooku HTTP zadejte hodnoty pro volání přihlášení a odhlášení:

    Parameter Požadováno Popis
    Metoda Přihlášení k odběru Ano Metoda použitá pro subskripci cílového koncového bodu.
    Odebírat URI Ano URL adresa, která se má použít pro propojení s cílovým koncovým bodem.
    Text odběru Ne Text zprávy, který se má zahrnout do žádosti o přihlášení k odběru. Tento příklad obsahuje adresu URL zpětného volání, která jednoznačně identifikuje odběratele, což je váš pracovní postup, pomocí funkce výrazulistCallbackUrl() k načtení adresy URL zpětného volání triggeru.
    Text odhlášení Ne Text zprávy, který se má zahrnout do žádosti o odhlášení odběru. Pomocí funkce výrazulistCallbackUrl() můžete načíst adresu URL zpětného volání akce. Trigger ale také automaticky zahrne a odešle hlavičky x-ms-client-tracking-id a x-ms-workflow-operation-name, které může cílová služba použít k jedinečné identifikaci odběratele.
  4. Pokud chcete přidat další parametry triggeru, otevřete seznam rozšířených parametrů .

    Pokud chcete například použít metodu odhlášení odběru a parametry identifikátoru URI odhlášení odběru , přidejte je ze seznamu Rozšířených parametrů .

    Následující příklad ukazuje trigger, který obsahuje metody, URI a těla zpráv k použití pro metody přihlášení a odhlášení z odběru.

    Snímek obrazovky znázorňující pracovní postup s parametry triggeru webhooku HTTP

  5. Pokud potřebujete použít ověřování, přidejte parametry ověřování přihlášení k odběru a odhlášení odběru ze seznamu Rozšířených parametrů .

    Další informace o typech ověřování dostupných pro http Webhook naleznete v tématu Přidání ověřování do odchozích volání.

  6. Přidejte všechny další akce, které váš scénář potřebuje.

  7. Po dokončení uložte pracovní postup. Na panelu nástrojů návrháře vyberte Uložit.

Uložení pracovního postupu volá koncový bod odběru cílové služby a zaregistruje adresu URL zpětného volání. Váš pracovní postup čeká na odeslání HTTP POST požadavku na adresu URL zpětného volání. Když k této události dojde, spouštěč se aktivuje a předá do pracovního postupu všechna data v požadavku. Pokud se tato operace úspěšně dokončí, trigger se z koncového bodu odhlásí a pracovní postup pokračuje k dalšímu kroku.

Přidejte akci webhooku HTTP

Tato integrovaná akce volá koncový bod odběru u cílové služby a registruje zpětnou URL adresu u cílové služby. Pracovní postup se pak pozastaví a počká, až cílová služba odešle HTTP POST požadavek na adresu URL zpětného volání. Když k této události dojde, akce předá do pracovního postupu všechna data v rámci požadavku. Pokud se operace úspěšně dokončí, akce se odhlásí z koncového bodu a váš pracovní postup pokračuje k následující akci.

  1. Na portálu Azure otevřete prostředek Logic App. V návrháři otevřete svůj pracovní postup.

  2. Podle obecných kroků přidejte do pracovního postupu akci s názvem HTTP Webhook .

    Tento příklad přejmenuje akci na Run HTTP Webhook action na popisnější název. Pokud váš pracovní postup používá také spouštěč HTTP webhooku, oba názvy musí být jedinečné.

  3. Pro parametry akce webhooku HTTP zadejte hodnoty, které se mají použít pro odběr a odhlášení odběru volání:

    Parameter Požadováno Popis
    Metoda Přihlášení k odběru Ano Metoda použitá pro subskripci cílového koncového bodu.
    Odebírat URI Ano URL adresa, která se má použít pro propojení s cílovým koncovým bodem.
    Text odběru Ne Text zprávy, který se má zahrnout do žádosti o přihlášení k odběru. Tento příklad obsahuje adresu URL zpětného volání, která jednoznačně identifikuje odběratele, což je váš pracovní postup, pomocí funkce výrazulistCallbackUrl() k načtení adresy URL zpětného volání akce.
    Text odhlášení Ne Text zprávy, který se má zahrnout do žádosti o odhlášení odběru. Pomocí funkce výrazulistCallbackUrl() můžete načíst adresu URL zpětného volání akce. Akce ale také automaticky zahrne a odešle hlavičky x-ms-client-tracking-id a x-ms-workflow-operation-name, které může cílová služba použít k jednoznačné identifikaci odběratele.
  4. Pokud chcete přidat další parametry akce, otevřete seznam Rozšířených parametrů .

    Pokud chcete například použít metodu odhlášení odběru a parametry identifikátoru URI odhlášení odběru , přidejte je ze seznamu Rozšířených parametrů .

    Následující příklad ukazuje akci, která zahrnuje metody, identifikátory URI a těla zpráv, které se mají použít pro přihlášení k odběru a odhlášení odběru metod:

    Snímek obrazovky znázorňující standardní pracovní postup s parametry akce HTTP Webhooku

  5. Pokud potřebujete použít ověřování, přidejte parametry ověřování přihlášení k odběru a odhlášení odběru ze seznamu Rozšířených parametrů .

    Další informace o typech ověřování dostupných pro http Webhook naleznete v tématu Přidání ověřování do odchozích volání.

  6. Přidejte všechny další akce, které váš scénář potřebuje.

  7. Po dokončení uložte pracovní postup. Na panelu nástrojů návrháře vyberte Uložit.

Když se tato akce spustí, váš pracovní postup zavolá koncový bod odběru cílové služby a zaregistruje adresu URL zpětného volání. Pracovní postup se pozastaví a čeká, aby cílová služba odeslala HTTP POST požadavek na adresu URL zpětného volání. Když k této události dojde, akce předá do pracovního postupu všechna data v rámci požadavku. Pokud se operace úspěšně dokončí, akce se odhlásí z koncového bodu a váš pracovní postup pokračuje k následující akci.

Technické reference ke konektoru

Další informace o triggeru webhooku HTTP a parametrech akce naleznete v tématu Parametry webhooku HTTP. Aktivační událost a akce mají stejné parametry.

Vypršení platnosti tokenu sdíleného přístupového podpisu (SAS)

Adresa URL zpětného volání pro trigger nebo akci HTTP Webhook se automaticky generuje metodou List Callback Url – REST API. Ve výchozím nastavení token SAS v adrese URL zpětného volání nemá vypršení platnosti na základě času. Adresa URL zpětného volání zůstane platná pro dobu trvání běhu pracovního postupu.

Limity časového limitu

Následující tabulka popisuje časové limity pro akci HTTP Webhook na základě možností hostování logické aplikace:

Možnost hostování Typ pracovního postupu Doba trvání
Spotřeba Stateful Až 90 dní.
Standard Stateful Až 30 dní.
Standard Bezstavové 5 minut
(pevný limit)

Adresa URL zpětného volání akce webhooku HTTP se stane neplatnou, když dojde k následujícím událostem:

  • Pracovní postup zrušíte.
  • Pracovní postup nebo prostředek aplikace logiky odstraníte nebo zakážete.
  • Měníte přístupové klíče pracovního postupu.
  • Časový limit pracovního postupu vypršel.

Další limity HTTP najdete v tématu HTTP omezení v Azure Logic Apps.

Změna časového limitu

Pokud chcete změnit tento limit pro HTTP Webhook akci ve stavových pracovních postupech pomocí portálu Azure, přečtěte si tabulku doby trvání Čas pro odchozí požadavky HTTP. Nebo v definici JSON akce přidejte limit.timeout objekt a nastavte hodnotu na požadovanou dobu, například:

{
   "actions": {
      "Run_HTTP_Webhook_action": {
         "type": "HttpWebhook",
         "inputs": {
            "subscribe": {
               "method": "POST",
               "uri": "https://<external-service>.com/subscribe",
               "body": {
                  "callbackUrl": "@{listCallBackUrl()}"
               }
            },
            "unsubscribe": {}
         },
         "limit": {
            "timeout": "PT1H"
         }
      }
   }
}

Výstupy triggeru a akce

Následující tabulky obsahují další informace o výstupech vrácených triggerem nebo akcí webhooku HTTP :

Název JSON Typ Popis
headers Objekt JSON Hlavičky požadavku.
body Objekt JSON Objekt s základním obsahem požadavku.
status code int (integer) Stavový kód z požadavku.
Stavový kód Popis
200 OK
202 Přijato
400 Chybný požadavek
401 Neautorizováno
403 Zakázáno
404 Nenalezeno
500 Vnitřní chyba serveru. Došlo k neznámé chybě.

Generování adresy URL zpětného volání pomocí sekundárního přístupového klíče

Pracovní postup aplikace logiky má dva přístupové klíče: primární a sekundární. Ve výchozím nastavení Azure Logic Apps používá primární klíč k vygenerování adresy URL zpětného volání pro trigger webhooku HTTP.

Chcete-li místo toho použít sekundární klíč pro generování adresy URL zpětného volání, postupujte takto:

  1. Pokud jste v návrháři pracovního postupu, přepněte do zobrazení kódu.

  2. V definici triggeru HttpWebhook vyhledejte accessKeyType parametr.

  3. Zadejte slovo Secondary jako hodnotu parametru.

  4. Uložte provedené změny.

Následující příklad ukazuje definici triggeru webhooku s parametrem nastaveným accessKeyType na Secondary:

{
  "type": "HttpWebhook",
  "inputs": {
    "subscribe": {
      "method": "POST",
      "uri": "<subscription-URL>",
      "body": "@listCallbackUrl()"
    },
    "accessKeyType": "Secondary"
  },
  "runAfter": {}
}