Külső HTTP- vagy HTTPS-végpontok meghívása munkafolyamatokból az Azure Logic Appsben
A következőkre vonatkozik: Azure Logic Apps (Használat + Standard)
Egyes forgatókönyvek esetében előfordulhat, hogy létre kell hoznia egy logikai alkalmazás munkafolyamatát, amely kimenő kéréseket küld más szolgáltatások vagy rendszerek végpontjainak HTTP-n vagy HTTPS-en keresztül. Tegyük fel például, hogy egy szolgáltatásvégpontot szeretne figyelni a webhelye számára úgy, hogy a végpontot egy adott ütemezés szerint ellenőrzi. Ha egy adott esemény történik azon a végponton, például a webhely leáll, az esemény elindítja a munkafolyamatot, és futtatja a munkafolyamat műveleteit.
Feljegyzés
Ha olyan munkafolyamatot szeretne létrehozni, amely fogad és válaszol a bejövő HTTPS-hívásokra, olvassa el az Azure Logic Apps HTTPS-végpontjaival meghívható, aktiválható vagy beágyazott munkafolyamatok létrehozása, valamint a beépített kérelem-eseményindító és válaszművelet című témakört.
Ez az útmutató bemutatja, hogyan használhatja a HTTP-eseményindítót és a HTTP-műveletet, hogy a munkafolyamat kimenő hívásokat küldjön más szolgáltatásoknak és rendszereknek, például:
Ha egy végpontot ismétlődő ütemezés szerint szeretne ellenőrizni vagy lekérdezni , adja hozzá a HTTP-eseményindítót a munkafolyamat első lépéseként. Minden alkalommal, amikor az eseményindító ellenőrzi a végpontot, az eseményindító meghív vagy kérést küld a végpontnak. A végpont válasza határozza meg, hogy fut-e a munkafolyamat. Az eseményindító átadja a végpont válaszából származó tartalmat a munkafolyamat műveleteinek.
Ha a munkafolyamat bármely más pontjáról szeretne végpontot meghívni, adja hozzá a HTTP-műveletet. A végpont válasza határozza meg, hogyan futnak a munkafolyamat hátralévő műveletei.
Előfeltételek
Azure-fiók és -előfizetés. Ha nem rendelkezik Azure-előfizetéssel, regisztráljon egy ingyenes Azure-fiókra.
A meghívni kívánt célvégpont URL-címe
A logikai alkalmazás munkafolyamata, ahonnan a célvégpontot meg szeretné hívni. A HTTP-eseményindítóval való kezdéshez üres munkafolyamatra van szükség. A HTTP-művelet használatához indítsa el a munkafolyamatot a kívánt eseményindítóval. Ez a példa első lépésként a HTTP-eseményindítót használja.
Csatlakozás or műszaki referencia
Az eseményindító és a műveleti paraméterekkel kapcsolatos technikai információkért tekintse meg a következő szakaszokat:
HTTP-eseményindító hozzáadása
Ez a beépített eseményindító HTTP-hívást indít egy végpont megadott URL-címére, és választ ad vissza.
Az Azure Portalon nyissa meg a Standard logikai alkalmazás erőforrását és az üres munkafolyamatot a tervezőben.
-
Ez a példa átnevezi az eseményindítót HTTP-eseményindítóra – Meghívja a végpont URL-címét , hogy az eseményindítónak leíróbb neve legyen. A későbbi példa egy HTTP-műveletet is hozzáad, és a munkafolyamat műveletneveinek egyedinek kell lenniük.
Adja meg a célvégpont hívásában szerepeltetni kívánt HTTP-triggerparaméterek értékeit. Állítsa be az ismétlődést, hogy az eseményindító milyen gyakran ellenőrizze a célvégpontot.
Ha a Nincs típustól eltérő hitelesítési típust választ, a hitelesítési beállítások a kijelöléstől függően eltérnek. A HTTP-hez elérhető hitelesítési típusokkal kapcsolatos további információkért tekintse meg az alábbi témaköröket:
További elérhető paraméterek hozzáadásához nyissa meg a Speciális paraméterek listát, és válassza ki a kívánt paramétereket.
Adjon hozzá minden más műveletet, amelyet az eseményindító aktiválásakor futtatni szeretne.
Ha végzett, mentse a munkafolyamatot. A tervező eszköztárán válassza a Mentés lehetőséget.
HTTP-művelet hozzáadása
Ez a beépített művelet HTTP-hívást indít egy végpont megadott URL-címére, és választ ad vissza.
Az Azure Portalon nyissa meg a Consumption logikai alkalmazást és a munkafolyamatot a tervezőben.
Ez a példa az előző szakaszban hozzáadott HTTP-eseményindítót használja első lépésként.
Az alábbi általános lépéseket követve adja hozzá a HTTP nevű beépített műveletet a munkafolyamathoz.
Ez a példa HTTP-műveletre átnevezi a műveletet – Meghívja a végpont URL-címét , hogy a lépésnek leíróbb neve legyen. Emellett a munkafolyamat műveletneveinek egyedinek kell lenniük.
Adja meg a célvégpont hívásában felvenni kívánt HTTP-műveleti paraméterek értékeit.
Ha a Nincs típustól eltérő hitelesítési típust választ, a hitelesítési beállítások a kijelöléstől függően eltérnek. A HTTP-hez elérhető hitelesítési típusokkal kapcsolatos további információkért tekintse meg az alábbi témaköröket:
További elérhető paraméterek hozzáadásához nyissa meg a Speciális paraméterek listát, és válassza ki a kívánt paramétereket.
Ha végzett, mentse a munkafolyamatot. A tervező eszköztárán válassza a Mentés lehetőséget.
Trigger- és műveletkimenetek
Az alábbiakban további információt talál a HTTP-eseményindítók vagy -műveletek kimeneteiről, amelyek a következő információkat adják vissza:
Tulajdonság | Típus | Leírás |
---|---|---|
headers |
JSON-objektum | A kérelem 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 | Forbidden |
404 | Nem található |
500 | Belső kiszolgálóhiba. Ismeretlen hiba történt. |
Kimenő hívások URL-biztonsága
A munkafolyamatból kimenő hívások titkosításáról, biztonságáról és engedélyezéséről, például a Transport Layer Securityről (TLS), korábbi nevén Secure Sockets Layerről (SSL), önaláírt tanúsítványokról vagy a Microsoft Entra ID Open Authenticationről (Microsoft Entra ID OAuth) szóló információkért lásd: Biztonságos hozzáférés és adatok – Hozzáférés más szolgáltatásokba és rendszerekbe irányuló kimenő hívásokhoz.
Hitelesítés egybérlős környezethez
Ha standard logikaialkalmazás-erőforrással rendelkezik az egybérlős Azure Logic Appsben, és HTTP-műveletet szeretne használni az alábbi hitelesítési típusok bármelyikével, mindenképpen végezze el a megfelelő hitelesítési típushoz szükséges további beállítási lépéseket. Ellenkező esetben a hívás meghiúsul.
TLS/SSL-tanúsítvány: Adja hozzá az alkalmazásbeállítást,
WEBSITE_LOAD_ROOT_CERTIFICATES
és állítsa be az értéket a TLS/SSL-tanúsítvány ujjlenyomatára.Ügyféltanúsítvány vagy Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth) "Certificate" hitelesítő adattípussal: Adja hozzá az alkalmazásbeállítást,
WEBSITE_LOAD_USER_PROFILE
és állítsa az értéket a következőre1
.
TLS/SSL-tanúsítványhitelesítés
A logikaialkalmazás-erőforrás alkalmazásbeállításaiban adja hozzá vagy frissítse az alkalmazásbeállítást.
WEBSITE_LOAD_ROOT_CERTIFICATES
A beállítási értékhez adja meg a TLS/SSL-tanúsítvány ujjlenyomatát a megbízható főtanúsítványként.
"WEBSITE_LOAD_ROOT_CERTIFICATES": "<thumbprint-for-TLS/SSL-certificate>"
Ha például a Visual Studio Code-ban dolgozik, kövesse az alábbi lépéseket:
Nyissa meg a logikaialkalmazás-projekt local.settings.json fájlját.
Values
A JSON-objektumban adja hozzá vagy frissítse aWEBSITE_LOAD_ROOT_CERTIFICATES
beállítást:{ "IsEncrypted": false, "Values": { <...> "AzureWebJobsStorage": "UseDevelopmentStorage=true", "WEBSITE_LOAD_ROOT_CERTIFICATES": "<thumbprint-for-TLS/SSL-certificate>", <...> } }
Feljegyzés
Az ujjlenyomat megkereséséhez kövesse az alábbi lépéseket:
A logikai alkalmazás erőforrásmenüjének Gépház területén válassza a TLS/SSL-beállítások>privát kulcstanúsítványok (.pfx) vagy nyilvános kulcsú tanúsítványok (.cer) lehetőséget.
Keresse meg a használni kívánt tanúsítványt, és másolja ki az ujjlenyomatot.
További információ: Az ujjlenyomat megkeresése – Azure-alkalmazás szolgáltatás.
További információkért tekintse át a következő dokumentációt:
- A logikai alkalmazások gazdagép- és alkalmazásbeállításainak szerkesztése az egybérlős Azure Logic Appsben
- Privát ügyféltanúsítványok – Azure-alkalmazás szolgáltatás
Ügyféltanúsítvány vagy Microsoft Entra ID OAuth "Tanúsítvány" típusú hitelesítő adatok hitelesítésével
A logikaialkalmazás-erőforrás alkalmazásbeállításaiban adja hozzá vagy frissítse az alkalmazásbeállítást.
WEBSITE_LOAD_USER_PROFILE
A beállítási értékhez adja meg a következőt
1
: ."WEBSITE_LOAD_USER_PROFILE": "1"
Ha például a Visual Studio Code-ban dolgozik, kövesse az alábbi lépéseket:
Nyissa meg a logikaialkalmazás-projekt local.settings.json fájlját.
Values
A JSON-objektumban adja hozzá vagy frissítse aWEBSITE_LOAD_USER_PROFILE
beállítást:{ "IsEncrypted": false, "Values": { <...> "AzureWebJobsStorage": "UseDevelopmentStorage=true", "WEBSITE_LOAD_USER_PROFILE": "1", <...> } }
További információkért tekintse át a következő dokumentációt:
- A logikai alkalmazások gazdagép- és alkalmazásbeállításainak szerkesztése az egybérlős Azure Logic Appsben
- Privát ügyféltanúsítványok – Azure-alkalmazás szolgáltatás
Többrészes/űrlap-adattípusú tartalom
A HTTP-kérelmekbe beírt tartalom multipart/form-data
kezeléséhez hozzáadhat egy JSON-objektumot, amely tartalmazza a $content-type
HTTP-kérés törzsét és $multipart
attribútumait ezzel a formátummal.
"body": {
"$content-type": "multipart/form-data",
"$multipart": [
{
"body": "<output-from-trigger-or-previous-action>",
"headers": {
"Content-Disposition": "form-data; name=file; filename=<file-name>"
}
}
]
}
Tegyük fel például, hogy van egy munkafolyamata, amely http POST-kérelmet küld egy Excel-fájlhoz egy webhelyre a webhely API-jával, amely támogatja a típust multipart/form-data
. Az alábbi minta bemutatja, hogyan jelenhet meg ez a művelet:
Standard munkafolyamat
Használati munkafolyamat
Az alábbi példa a HTTP-művelet JSON-definícióját mutatja be a mögöttes munkafolyamat-definícióban:
"HTTP_action": {
"inputs": {
"body": {
"$content-type": "multipart/form-data",
"$multipart": [
{
"body": "@trigger()",
"headers": {
"Content-Disposition": "form-data; name=file; filename=myExcelFile.xlsx"
}
}
]
},
"method": "POST",
"uri": "https://finance.contoso.com"
},
"runAfter": {},
"type": "Http"
}
Tartalom alkalmazással/x-www-form-urlencoded típussal
Ha egy HTTP-kérés törzsében urlencoded formátumú adatokat szeretne megadni, meg kell adnia, hogy az adatok tartalomtípussal rendelkeznek-e application/x-www-form-urlencoded
. A HTTP-eseményindítóban vagy műveletben adja hozzá a fejlécet content-type
. Állítsa a fejléc értékét a következőre application/x-www-form-urlencoded
: .
Tegyük fel például, hogy van egy logikai alkalmazása, amely HTTP POST-kérelmet küld egy webhelyre, amely támogatja a típust application/x-www-form-urlencoded
. A művelet a következőképpen nézhet ki:
Standard munkafolyamat
Használati munkafolyamat
Aszinkron kérés-válasz viselkedése
A több- és egybérlős Azure Logic Apps állapotalapú munkafolyamatai esetében az összes HTTP-alapú művelet alapértelmezett viselkedésként a szabványos aszinkron műveleti mintát követi. Ez a minta azt határozza meg, hogy miután egy HTTP-művelet meghív vagy kérést küld egy végpontnak, szolgáltatásnak, rendszernek vagy API-nak, a fogadó azonnal "202 ACCEPTED" választ ad vissza. Ez a kód megerősíti, hogy a fogadó elfogadta a kérést, de még nem fejezte be a feldolgozást. A válasz tartalmazhat egy location
fejlécet, amely megadja az URI-t és egy frissítési azonosítót, amellyel a hívó lekérdezheti vagy ellenőrizheti az aszinkron kérés állapotát, amíg a fogadó le nem állítja a feldolgozást, és visszaad egy "200 OK" sikeres választ vagy más, nem 202-től eltérő választ. A hívónak azonban nem kell megvárnia a kérés feldolgozásának befejezését, és továbbra is futtathatja a következő műveletet. További információ: Aszinkron mikroszolgáltatás-integráció kényszeríti a mikroszolgáltatások autonómiáját.
Az egybérlős Azure Logic Apps állapot nélküli munkafolyamatai esetében a HTTP-alapú műveletek nem használják az aszinkron műveleti mintát. Ehelyett csak szinkron módon futnak, a "202 ELFOGADVA" választ adják vissza, és folytassa a munkafolyamat végrehajtásának következő lépésével. Ha a válasz fejlécet location
tartalmaz, egy állapot nélküli munkafolyamat nem kérdezi le a megadott URI-t az állapot ellenőrzéséhez. A szabványos aszinkron műveleti minta követéséhez használjon inkább állapotalapú munkafolyamatot.
A HTTP-művelet mögöttes JavaScript Object Notation (JSON) definíciója implicit módon követi az aszinkron műveleti mintát.
A HTTP-művelet, de az eseményindító nem aszinkron mintabeállítással rendelkezik, amely alapértelmezés szerint engedélyezve van. Ez a beállítás azt határozza meg, hogy a hívó nem várja meg a feldolgozás befejezését, és továbbléphet a következő műveletre, de a feldolgozás befejezéséig folytatja az állapot ellenőrzését. Ha le van tiltva, ez a beállítás azt határozza meg, hogy a hívó megvárja a feldolgozás befejezését, mielőtt továbblépne a következő műveletre.
Az Aszinkron minta beállítás megkereséséhez kövesse az alábbi lépéseket attól függően, hogy standard vagy használati munkafolyamattal rendelkezik-e:
Standard munkafolyamat*
A munkafolyamat-tervezőben válassza ki a HTTP-műveletet. A megnyíló információs panelen válassza a Gépház.
A Hálózatkezelés területen keresse meg az Aszinkron minta beállítást.
Használati munkafolyamat
A munkafolyamat-tervezőben a HTTP-művelet címsorában válassza a három pont (...) gombot, amely megnyitja a művelet beállításait.
Keresse meg az Aszinkron minta beállítást.
Aszinkron műveletek letiltása
Előfordulhat, hogy bizonyos helyzetekben le szeretné tiltani a HTTP-művelet aszinkron viselkedését, például a következő esetekben:
Az Aszinkron minta beállítás kikapcsolása
A munkafolyamat-tervezőben válassza ki a HTTP-műveletet, majd a megnyíló információs panelen válassza a Gépház.
A Hálózatkezelés területen keresse meg az Aszinkron minta beállítást. Ha engedélyezve van, kapcsolja ki a beállítást.
Aszinkron minta letiltása a művelet JSON-definíciójában
A HTTP-művelet mögöttes JSON-definíciójában adja hozzá a "DisableAsyncPattern"
műveleti beállítást a művelet definíciójához, hogy a művelet inkább a szinkron műveleti mintát kövesse. További információ: Műveletek futtatása szinkron műveleti mintában.
A hosszan futó tevékenységek HTTP-időtúllépéseinek elkerülése
A HTTP-kérések időtúllépési korlátot szabnak. Ha hosszú ideig futó HTTP-művelete van, amely a korlát miatt túllépi az időkorlátot, az alábbi lehetőségek közül választhat:
Tiltsa le a HTTP-művelet aszinkron műveleti mintáját , hogy a művelet ne kérdezhesse le vagy ellenőrizze a kérés állapotát. Ehelyett a művelet megvárja, amíg a fogadó válaszol az állapottal és az eredményekkel, miután a kérés feldolgozása befejeződött.
Cserélje le a HTTP-műveletet a HTTP Webhook műveletre, amely megvárja, amíg a fogadó válaszol az állapotra és az eredményekre a kérés feldolgozása után.
Az újrapróbálkozási kísérletek közötti időköz beállítása az Újrapróbálkozás után fejléccel
Az újrapróbálkozási kísérletek közötti másodpercek számának megadásához hozzáadhatja a Retry-After
fejlécet a HTTP-művelet válaszához. Ha például a célvégpont visszaadja az 429 - Too many requests
állapotkódot, megadhatja az újrapróbálkozások közötti hosszabb időközt. A Retry-After
fejléc az 202 - Accepted
állapotkóddal is működik.
Az alábbi példában a HTTP-művelet válasza látható, amely a következőket tartalmazza Retry-After
:
{
"statusCode": 429,
"headers": {
"Retry-After": "300"
}
}
Lapozás támogatása
Néha a célszolgáltatás úgy válaszol, hogy egyszerre egy oldalon adja vissza az eredményeket. Ha a válasz a következő oldalt adja meg a nextLink vagy @odata.nextLink tulajdonsággal, bekapcsolhatja a Lapozás beállítást a HTTP-műveletben. Ez a beállítás azt eredményezi, hogy a HTTP-művelet automatikusan követi ezeket a hivatkozásokat, és lekéri a következő oldalt. Ha azonban a válasz a következő lapot adja meg bármely más címkével, előfordulhat, hogy hurkot kell hozzáadnia a munkafolyamathoz. Kövesse ezt a hurkot, és kérje le manuálisan az egyes lapokat, amíg a címke null értékű.
Helyfejlécek ellenőrzésének letiltása
Egyes végpontok, szolgáltatások, rendszerek vagy API-k olyan választ adnak vissza 202 ACCEPTED
, amely nem tartalmaz fejlécet location
. Ha szeretné elkerülni, hogy a HTTP-művelet folyamatosan ellenőrizze a kérés állapotát, ha a location
fejléc nem létezik, az alábbi lehetőségek közül választhat:
Tiltsa le a HTTP-művelet aszinkron műveleti mintáját , hogy a művelet ne kérdezhesse le vagy ellenőrizze a kérés állapotát. Ehelyett a művelet megvárja, amíg a fogadó válaszol az állapottal és az eredményekkel, miután a kérés feldolgozása befejeződött.
Cserélje le a HTTP-műveletet a HTTP Webhook műveletre, amely megvárja, amíg a fogadó válaszol az állapotra és az eredményekre a kérés feldolgozása után.
Ismert problémák
Kihagyott HTTP-fejlécek
Ha egy HTTP-eseményindító vagy művelet tartalmazza ezeket a fejléceket, az Azure Logic Apps figyelmeztetés vagy hiba nélkül eltávolítja ezeket a fejléceket a létrehozott kérelemüzenetből:
Accept-*
fejlécek kivételévelAccept-version
Allow
Content-*
fejlécek kivételévelContent-Disposition
Content-Encoding
, amelyek a POST ésContent-Type
a PUT műveletek használatakor teljesülnek. Az Azure Logic Apps azonban a GET művelet használatakor elveti ezeket a fejléceket.Cookie
fejlécet, de az Azure Logic Apps a Cookie tulajdonság használatával megadott értékeket tiszteletben tartja.Expires
Host
Last-Modified
Origin
Set-Cookie
Transfer-Encoding
Bár az Azure Logic Apps nem akadályozza meg, hogy HTTP-eseményindítót vagy műveletet használó logikai alkalmazásokat mentsen ezekkel a fejlécekkel, az Azure Logic Apps figyelmen kívül hagyja ezeket a fejléceket.
A válasz tartalma nem felel meg a várt tartalomtípusnak
A HTTP-művelet BadRequest-hibát okoz, ha a HTTP-művelet meghívja a háttér API-t az application/json fejléckészlettel Content-Type
, de a háttérrendszer válasza valójában nem tartalmaz JSON formátumú tartalmat, ami nem felel meg a belső JSON-formátum érvényesítésének.