Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: Azure Logic Apps (Fogyasztás + 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.
Megjegyzé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 című témakört. A kérelem beépített eseményindítójának használatához tekintse meg az Azure Logic Apps munkafolyamatainak bejövő HTTPS-hívások fogadása és megválaszolása 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 ismétlődő ütemezés szerint szeretne ellenőrizni vagy lekérdezni egy végpontot, adja hozzá a HTTP nevű beépített 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 nevű beépített 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 erőforrása a munkafolyamattal, ahonnan a külső végpontot meg szeretné hívni.
Ha a HTTP-eseményindítóval szeretné elindítani a munkafolyamatot, üres munkafolyamatra van szükség. A HTTP-művelet használatához a munkafolyamat egy olyan eseményindítóval kezdődhet, amely a legjobban megfelel a forgatókönyvnek. A cikkben szereplő példa-munkafolyamatok a HTTP-eseményindítót használják.
Ha nem rendelkezik logikaialkalmazás-erőforrással és munkafolyamattal, hozza létre őket most a kívánt logikai alkalmazás lépéseinek követésével:
Összekötők műszaki referenciája
Az eseményindító és a műveleti paraméterekkel kapcsolatos technikai információkért tekintse meg a séma referencia-útmutatójának alábbi szakaszait:
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.
Nyissa meg a Standard logikai alkalmazás erőforrását az Azure Portalon.
Az erőforrás oldalsávjának Munkafolyamatok területén válassza a Munkafolyamatok lehetőséget, majd válassza ki az üres munkafolyamatot.
A munkafolyamat oldalsáv menüjének Eszközök csoportjában válassza ki a tervezőt a munkafolyamat megnyitásához.
Adja hozzá a http beépített eseményindítót a munkafolyamathoz az eseményindító hozzáadásának általános lépéseit követve.
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.
A Speciális paraméterek listájában válassza a Hitelesítés lehetőséget.
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ípusokról az alábbi cikkekben talál további információt:
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 HTTPS- vagy HTTP-hívást küld a végpont megadott URL-címére, és válaszsal tér vissza.
Nyissa meg a Standard logikai alkalmazás erőforrását az Azure Portalon.
Az erőforrás oldalsávjának Munkafolyamatok területén válassza a Munkafolyamatok lehetőséget, majd válassza ki a munkafolyamatot.
A munkafolyamat oldalsáv menüjének Eszközök csoportjában válassza ki a tervezőt a munkafolyamat megnyitásához.
Ez a példa az előző szakaszban hozzáadott HTTP-eseményindítót használja.
Adja hozzá a http beépített műveletet a munkafolyamathoz a művelet hozzáadásának általános lépéseit követve.
Ez a példa HTTP-műveletre átnevezi a műveletet – Meghívja a végpont URL-címét , hogy a művelet leíróbb névvel rendelkezik. 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.
A Speciális paraméterek listájában válassza a Hitelesítés lehetőséget.
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ípusokról az alábbi cikkekben talál további információt:
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.
Trigger- és műveletkimenetek
Egy HTTP-eseményindító vagy -művelet a következő adatokat adja ki:
| Ingatlan | 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 szám | A kérés állapotkódja |
| Állapotkód | Leírás |
|---|---|
| 200 | OKÉ |
| 202 | Elfogadott |
| 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. |
Kimenő hívások URL-biztonsága
A munkafolyamatból érkező 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), az önaláírt tanúsítványokról vagy a Microsoft Entra ID Open Authenticationről további információt az Accessben talál a más szolgáltatásokba és rendszerekbe irányuló kimenő hívásokhoz.
Hitelesítés egyfelhasználó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-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-tanúsítvány ujjlenyomatára.Ügyféltanúsítvány vagy Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth) tanúsítvány hitelesítő adattípussal: Adja hozzá az alkalmazásbeállítást
WEBSITE_LOAD_USER_PROFILE, és állítsa az értéket 1 értékre.
TLS-tanúsítványhitelesítés
A logikaialkalmazás-erőforrás alkalmazásbeállításaiban adja hozzá vagy frissítse a nevesított
WEBSITE_LOAD_ROOT_CERTIFICATESalkalmazásbeállítást. Konkrét lépéseket az alkalmazásbeállítások kezelése – local.settings.jsoncímű témakörben talál.A beállítási értékhez adja meg a TLS-tanúsítvány ujjlenyomatát a megbízható főtanúsítványként.
"WEBSITE_LOAD_ROOT_CERTIFICATES": "<thumbprint-for-TLS-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.
ValuesA JSON-objektumban adja hozzá vagy frissítse aWEBSITE_LOAD_ROOT_CERTIFICATESbeállítást:{ "IsEncrypted": false, "Values": { <...> "AzureWebJobsStorage": "UseDevelopmentStorage=true", "WEBSITE_LOAD_ROOT_CERTIFICATES": "<thumbprint-for-TLS-certificate>", <...> } }
Megjegyzés:
Az ujjlenyomat megkereséséhez kövesse az alábbi lépéseket:
- A logikai alkalmazás erőforrásmenüjének Beállítások területén válassza a Tanúsítványok lehetőséget.
- Válassza a Saját tanúsítványok (.pfx) vagy a 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 App Service.
További információ: Alkalmazásbeállítások kezelése – local.settings.json.
Ügyféltanúsítvány vagy Microsoft Entra ID OAuth tanúsítvány típusú hitelesítéssel
A logikaialkalmazás-erőforrás alkalmazásbeállításaiban adja hozzá vagy frissítse a nevesított
WEBSITE_LOAD_USER_PROFILEalkalmazásbeállítást. Konkrét lépésekért lásd: Alkalmazásbeállítások kezelése – local.settings.jsonA 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.
ValuesA JSON-objektumban adja hozzá vagy frissítse aWEBSITE_LOAD_USER_PROFILEbeállítást:{ "IsEncrypted": false, "Values": { <...> "AzureWebJobsStorage": "UseDevelopmentStorage=true", "WEBSITE_LOAD_USER_PROFILE": "1", <...> } }
Ha az Azure Portalon dolgozik, nyissa meg a logikai alkalmazást. Az oldalsáv menü Beállítások területén válassza a Környezeti változók lehetőséget. Az Alkalmazásbeállítások területen adja hozzá vagy szerkessze a beállítást.
Többrészes/űrlap-adattípusú tartalom
HTTP-kérelmekben a multipart/form-data típusú tartalom kezeléséhez hozzáadhat egy JSON-objektumot, amely a $content-type és $multipart attribútumokat tartalmazza, a HTTP-kérelem törzséhez 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:
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"
}
Alkalmazott/x-www-form-urlencoded típusú tartalom
Ahhoz, hogy egy HTTP-kérés törzsében URL-kódolt adatokat adjunk meg, szükséges megadni, hogy az adatok application/x-www-form-urlencoded tartalomtípusúak. 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:
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 visszaad egy 202 ACCEPTED választ. Ez a kód megerősíti, hogy a fogadó elfogadta a kérést, de még nem fejeződött be a feldolgozás. 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ó: Szinkron és aszinkron üzenetkezelés.
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, visszaadják a 202 ACCEPTED válasz as-is, és továbblépnek a munkafolyamat következő lépésére. Ha a válasz tartalmaz fejlécet location , az á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 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 mintabeállítás megkeresése:
- A munkafolyamat-tervezőben válassza ki a HTTP-műveletet .
- A megnyíló információs panelen válassza a Beállítások lehetőséget.
- A Hálózatkezelés területen keresse meg az Aszinkron mintabeá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:
Aszinkron mintabeállítás kikapcsolása
A munkafolyamat-tervezőben válassza a HTTP-műveletet, majd a megnyíló információs panelen válassza a Beállítások lehetőséget.
A Hálózatkezelés területen keresse meg az Aszinkron mintabeá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 a hosszú ideig futó HTTP-művelet a korlát miatt időkorlátot lép túl, 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 a Retry-After fejlécben
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ási funkció 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 nextLink vagy @odata.nextLink tulajdonsággal megadja a következő oldalt, akkor 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. A programozási ciklus kövesse az adott címkét, majd kérje le manuálisan az egyes lapokat, amíg a címke null értékűvé válik.
A 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ével, amelyek, kivéveContent-Disposition,Content-Encoding, ésContent-Type, elfogadottak, amikor a POST és a PUT műveleteket használja. Az Azure Logic Apps azonban elveti ezeket a fejléceket, amikor aGETműveletet használja. -
Cookiefejlécet, de az Azure Logic Apps minden megadott értéket elfogad, amit aCookietulajdonság használatával állítasz be. ExpiresHostLast-ModifiedOriginSet-CookieTransfer-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 Content-Type fejléckészlettel, 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.