Munkafolyamatok vagy műveletek futtatása szolgáltatásvégpont-események alapján HTTP-webhookok használatával a Azure Logic Apps

A következőkre vonatkozik: Azure Logic Apps (Felhasználás + Standard)

Ha azt szeretné, hogy egy munkafolyamat-eseményindító vagy -művelet megvárja, amíg az események vagy adatok meg fognak érkezni a célszolgáltatás végpontjához a futtatás előtt, használja a HTTP Webhook eseményindítót vagy műveletet ahelyett, hogy proaktív módon ellenőriznénk a végpontot egy ütemezés szerint. A HTTP Webhook-eseményindító vagy -művelet feliratkozik a szolgáltatásvégpontra, és a futtatás előtt új eseményekre vagy adatokra vár. A webhookmintát hosszú ideig futó feladatokhoz és aszinkron feldolgozáshoz használhatja.

Az alábbi lista a webhookalapú példákat ismerteti:

  • Egy HTTP Webhook eseményindító megvárja, amíg egy esemény megérkezik Azure Event Hubs a munkafolyamat futtatása előtt.
  • Egy HTTP Webhook művelet megvárja a jóváhagyást a Office 365 Outlook, mielőtt folytatná a munkafolyamat következő műveletét.

Ez az útmutató bemutatja, hogyan állíthatja be a HTTP Webhook-eseményindítót és a HTTP Webhook műveletet, hogy a munkafolyamat fogadhassa és válaszolhassa meg az új eseményeket vagy adatokat egy szolgáltatásvégponton.

Hogyan működnek a webhookok?

A webhook-eseményindítók vagy -műveletek nem kérdezik le vagy nem ellenőrzik proaktívan az új eseményeket vagy adatokat a célszolgáltatás végpontján. Ehelyett az eseményindító vagy a művelet megvárja, amíg az új események vagy adatok meg nem érkeznek a szolgáltatásvégpontra a futtatás előtt. Miután hozzáadott egy webhook-eseményindítót vagy -műveletet a munkafolyamathoz, majd mentette a munkafolyamatot, vagy miután újra üzembe helyezett egy letiltott logikai alkalmazás-erőforrást, a webhook-eseményindító vagy -művelet előfizet a szolgáltatásvégpontra egy visszahívási URL-cím létrehozásával és a végponttal való regisztrálásával. Az eseményindító vagy művelet ezután megvárja, amíg a szolgáltatásvégpont meghívja az ESEMÉNYINDÍTÓt vagy műveletet futtató URL-címet. A Kérelem eseményindítóhoz hasonlóan egy HTTP Webhook-eseményindító is azonnal aktiválódik.

A Office 365 Outlook összekötő művelet neve például Send jóváhagyási e-mail a webhook mintát követi, de csak a Office 365 Outlook működik. A webhookmintát bármely szolgáltatásra kiterjesztheti a HTTP Webhook-eseményindítóval vagy a kívánt szolgáltatásvégponttal végzett művelettel.

A webhook-eseményindítók addig maradnak előfizetve egy szolgáltatásvégpontra, amíg manuálisan nem hajtja végre az alábbi műveletek egyikét:

  • Módosítsa az eseményindító paraméterértékeit.
  • Törölje az eseményindítót, majd mentse a munkafolyamatot.
  • Tiltsa le a logikai alkalmazás erőforrását.

A webhook-műveletek csak akkor maradnak előfizetve egy szolgáltatásvégpontra, ha az alábbi feltételek valamelyike teljesül:

  • A webhook művelet sikeresen befejeződött.
  • A válaszra való várakozás közben megszakítja a munkafolyamat futtatását.
  • A munkafolyamat túllépi az időkorlátot.
  • A webhook-eseményindítók által bemenetként használt webhook műveleti paraméter értékeit módosíthatja.

További információkért lásd:

Előfeltételek

  • Egy Azure fiók és előfizetés. Ingyenes Azure fiók létrehozása.

  • Egy üzembe helyezett szolgáltatásvégpont vagy API URL-címe.

    Ennek az elemnek támogatnia kell a "feliratkozás és leiratkozás" mintát a munkafolyamatokban lévő webhook-eseményindítókhoz vagy a munkafolyamatok webhookműveleteihez.

  • A Standard vagy a Consumption logikai alkalmazás munkafolyamata, ahol a HTTP Webhook-eseményindítót vagy -műveletet szeretné használni.

    • A HTTP Webhook-eseményindító használatához hozzon létre egy logikaialkalmazás-erőforrást egy üres munkafolyamattal.
    • A HTTP Webhook művelet használatához indítsa el a munkafolyamatot a forgatókönyvéhez legjobban megfelelő eseményindítóval. A példák a HTTP Webhook eseményindítót használják.

HTTP Webhook-eseményindító hozzáadása

Ez a beépített eseményindító meghívja a feliratkozási végpontot a célszolgáltatáson, és regisztrál egy visszahívási URL-címet a célszolgáltatásban. A munkafolyamat ezután megvárja, amíg a célszolgáltatás kérést HTTP POST küld a visszahívási URL-címre. Amikor ez az esemény bekövetkezik, az eseményindító aktiválódik, és átadja a kérelemben szereplő adatokat a munkafolyamatnak.

  1. A Azure portálon nyissa meg a logikai alkalmazás erőforrását. Nyissa meg az üres munkafolyamatot a tervezőben.

  2. Az általános lépéseket követve adja hozzá a HTTP Webhook nevű eseményindítót a munkafolyamathoz.

    Ez a példa leíróbb névként nevezi át az eseményindítót Run HTTP Webhook trigger . A példa később egy HTTP Webhook-műveletet is hozzáad. Mindkét névnek egyedinek kell lennie.

  3. A HTTP Webhook eseményindító paramétereinél adja meg a feliratkozási és leiratkozási hívások értékeit:

    Paraméter Kötelező Leírás
    Feliratkozási módszer Igen A célvégpontra való feliratkozáshoz használt módszer.
    URI feliratkozás Igen A célvégpontra való feliratkozáshoz használandó URL-cím.
    Feliratkozási szövegtörzs Nem Az előfizetési kérelemhez mellékelhető bármely üzenettörzs. Ez a példa magában foglalja a visszahívási URL-címet, amely egyedileg azonosítja az előfizetést, vagyis az Ön munkafolyamatát. Ez a kifejezésfüggvény használatávallistCallbackUrl() történik, az eseményindító visszahívási URL-címének lekéréséhez.
    Leiratkozási szöveg Nem Bármilyen üzenettörzs, amelyet bele kell foglalni a leiratkozási kérelembe. A kifejezésfüggvény használatávallistCallbackUrl() lekérheti a művelet visszahívási URL-címét. Az eseményindító azonban automatikusan tartalmazza és elküldi a fejléceket, x-ms-client-tracking-id és x-ms-workflow-operation-name, amelyeket a célszolgáltatás az előfizető egyedi azonosítására használhat.
  4. Egyéb triggerparaméterek hozzáadásához nyissa meg a Speciális paraméterek listát.

    Ha például a Leiratkozás metódust és a Leiratkozás URI-paramétereket szeretné használni, vegye fel őket a Speciális paraméterek listából.

    Az alábbi példa egy eseményindítót mutat be, amely tartalmazza a feliratkozási és leiratkozási metódusokhoz használandó metódusokat, URI-kat és üzenettörzseket:

    Képernyőkép a HTTP Webhook eseményindító paramétereit tartalmazó munkafolyamatról.

  5. Ha hitelesítést kell használnia, adja hozzá a Feliratkozási hitelesítés és a Leiratkozás hitelesítési paramétereit a Speciális paraméterek listájából.

    A HTTP Webhook által elérhető hitelesítési típusokkal kapcsolatos további információkért lásd: Hitelesítés hozzáadása kimenő hívásokhoz.

  6. Adjon hozzá minden egyéb olyan műveletet, amire a forgatókönyvnek szüksége van.

  7. Ha végzett, mentse a munkafolyamatot. A tervező eszköztárán válassza a Mentés lehetőséget.

A munkafolyamat mentése meghívja a feliratkozási végpontot a célszolgáltatásban, és regisztrálja a visszahívási URL-címet. A munkafolyamat megvárja, amíg a célszolgáltatás kérést HTTP POST küld a visszahívási URL-címre. Amikor ez az esemény bekövetkezik, az eseményindító elindítja és átadja a kérelemben szereplő adatokat a munkafolyamatnak. Ha a művelet sikeresen befejeződött, az eseményindító leiratkozik a végpontról, és a munkafolyamat a következő műveletig folytatódik.

HTTP-webhook-művelet hozzáadása

Ez a beépített művelet meghívja az előfizetési végpontot a célszolgáltatáson, és regisztrál egy visszahívási URL-címet a célszolgáltatásban. A munkafolyamat ezután megszakítja magát, és megvárja, amíg a célszolgáltatás egy HTTP POST kérést küld a visszahívási URL-címre. Amikor ez az esemény bekövetkezik, a művelet átadja a kérelemben szereplő adatokat a munkafolyamatnak. Ha a művelet sikeresen befejeződött, a művelet leiratkozik a végpontról, és a munkafolyamat a következő műveletet folytatja.

  1. A Azure portálon nyissa meg a logikai alkalmazás erőforrását. A tervezőben nyissa meg a munkafolyamatot.

  2. Az általános lépéseket követve adja hozzá a HTTP Webhook nevű műveletet a munkafolyamathoz.

    Ez a példa leíróbb névként nevezi át a műveletet Run HTTP Webhook action . Ha a munkafolyamat a HTTP Webhook-eseményindítót is használja, mindkét névnek egyedinek kell lennie.

  3. A HTTP Webhook műveleti paramétereihez adja meg a feliratkozási és leiratkozási hívásokhoz használandó értékeket:

    Paraméter Kötelező Leírás
    Feliratkozási módszer Igen A célvégpontra való feliratkozáshoz használt módszer.
    URI feliratkozás Igen A célvégpontra való feliratkozáshoz használandó URL-cím.
    Feliratkozási szövegtörzs Nem Az előfizetési kérelemhez mellékelhető bármely üzenettörzs. Ez a példa magában foglalja a visszahívási URL-címet, amely egyedileg azonosítja az előfizetőt, vagyis a munkafolyamatot a kifejezésfüggvény használatávallistCallbackUrl() a művelet visszahívási URL-címének lekéréséhez.
    Leiratkozási szöveg Nem Bármilyen üzenettörzs, amelyet bele kell foglalni a leiratkozási kérelembe. A kifejezésfüggvény használatávallistCallbackUrl() lekérheti a művelet visszahívási URL-címét. A művelet azonban automatikusan tartalmazza és elküldi a fejléceket, x-ms-client-tracking-id, x-ms-workflow-operation-name, amelyeket a célszolgáltatás felhasználhat az előfizető egyedi azonosítására.
  4. További műveleti paraméterek hozzáadásához nyissa meg a Speciális paraméterek listáját.

    Ha például a Leiratkozás metódust és a Leiratkozás URI-paramétereket szeretné használni, vegye fel őket a Speciális paraméterek listából.

    Az alábbi példa egy olyan műveletet mutat be, amely tartalmazza a feliratkozási és leiratkozási metódusokhoz használandó metódusokat, URI-kat és üzenettörzseket:

    Képernyőkép a Standard munkafolyamatról HTTP Webhook műveleti paraméterekkel.

  5. Ha hitelesítést kell használnia, adja hozzá a Feliratkozási hitelesítés és a Leiratkozás hitelesítési paramétereit a Speciális paraméterek listájából.

    A HTTP Webhook által elérhető hitelesítési típusokkal kapcsolatos további információkért lásd: Hitelesítés hozzáadása kimenő hívásokhoz.

  6. Adjon hozzá minden egyéb olyan műveletet, amire a forgatókönyvnek szüksége van.

  7. Ha végzett, mentse a munkafolyamatot. A tervező eszköztárán válassza a Mentés lehetőséget.

A művelet futtatásakor a munkafolyamat meghívja a célszolgáltatás előfizetési végpontját, és regisztrálja a visszahívási URL-címet. A munkafolyamat szünetel, és várakozik, amíg a célszolgáltatás egy kérést HTTP POST küld a visszahívási URL-címre. Amikor ez az esemény bekövetkezik, a művelet átadja a kérelemben szereplő adatokat a munkafolyamatnak. Ha a művelet sikeresen befejeződött, a művelet leiratkozik a végpontról, és a munkafolyamat a következő műveletet folytatja.

Összekötők műszaki referenciája

A HTTP Webhook eseményindítóiról és műveleti paramétereiről további információt a HTTP Webhook-paraméterekben talál. Az eseményindító és a művelet ugyanazokat a paramétereket használja.

A közös hozzáférésű jogosultságkód (SAS) jogkivonatának lejárata

A HTTP webhook eseményindító vagy művelet visszahívási URL-címét a rendszer automatikusan létrehozza a List Callback Url - REST API metódussal. Alapértelmezés szerint a visszahívási URL-cím SAS-jogkivonata nem rendelkezik időalapú lejárattal. A visszahívási URL-cím a munkafolyamat-futtatás időtartamára érvényes marad.

Időtúllépés határértékei

Az alábbi táblázat a HTTP Webhook-művelet időtúllépési korlátait ismerteti a logikai alkalmazás üzemeltetése lehetőség alapján:

Üzemeltetési lehetőség Munkafolyamat típusa Időtartam
Fogyasztás Stateful Legfeljebb 90 nap.
Standard Stateful Legfeljebb 30 nap.
Standard Állapot nélküli 5 perc
(rögzített korlát)

A HTTP Webhook-művelet visszahívási URL-címe érvénytelenné válik a következő események bekövetkezésekor:

  • Megszakítja a munkafolyamatot.
  • Törölheti vagy letilthatja a munkafolyamat- vagy logikaialkalmazás-erőforrást.
  • Elforgathatja a munkafolyamat hozzáférési kulcsait.
  • A munkafolyamat túllépi az időkorlátot.

További HTTP-korlátokért lásd: HTTP-korlátok a Azure Logic Apps.

Időtúllépési korlát módosítása

Ha a HTTP Webhook műveletre vonatkozó korlátot szeretné módosítani az állapotalapú munkafolyamatokban a Azure portál használatával, tekintse meg a kimenő HTTP-kérelmek Időkorlátjának táblázatát. Vagy a művelet JSON-definíciójában adja hozzá az limit.timeout objektumot, és állítsa be az értéket a kívánt időtartamra, például:

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

Trigger- és műveletkimenetek

Az alábbi táblázatok további információt nyújtanak a HTTP Webhook-eseményindító vagy -művelet által visszaadott kimenetekről:

JSON-név Típus Leírás
headers JSON-objektum A kérés fejlécei.
body JSON-objektum A kérelem törzstartalmat tartalmazó objektum.
status code egész A kérés állapotkódja.
Állapotkód Leírás
200 OKÉ
202 Elfogadva
400 Hibás kérés
401 Nem engedélyezett
403 hibakód Tiltott
404 Nem található
ötszáz Belső kiszolgálóhiba. Ismeretlen hiba történt.

Visszahívási URL-cím létrehozása másodlagos hozzáférési kulccsal

A logikai alkalmazás munkafolyamata két hozzáférési kulcsból áll: elsődleges és másodlagos. Alapértelmezés szerint Azure Logic Apps az elsődleges kulccsal hozza létre a HTTP-webhook-eseményindító visszahívási URL-címét.

Ha a másodlagos kulcsot szeretné használni a visszahívási URL-cím generálásához, kövesse az alábbi lépéseket:

  1. Ha a munkafolyamat-tervezőben van, váltson kódnézetre.

  2. HttpWebhook Az eseményindító definíciójában keresse meg a paramétertaccessKeyType.

  3. Adja meg a szót Secondary paraméterértékként.

  4. Mentse a módosításokat.

Az alábbi példa a webhook triggerdefinícióját mutatja be a accessKeyType következő paraméterrel Secondary:

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