Https-végpontok használatával meghívható, aktiválható vagy beágyazott munkafolyamatok létrehozása az Azure Logic Appsben
A következőkre vonatkozik: Azure Logic Apps (Használat + Standard)
Bizonyos esetekben előfordulhat, hogy olyan logikai alkalmazás-munkafolyamatot kell létrehoznia, amely bejövő kéréseket fogadhat más szolgáltatásoktól vagy munkafolyamatoktól, vagy egy URL-címmel hívható munkafolyamatot. Ebben a feladatban egy natív szinkron HTTPS-végpontot tehet elérhetővé a munkafolyamaton, ha a következő kérésalapú triggertípusok bármelyikét használja:
- Kérelem
- HTTP Webhook
- Az ApiConnectionWebhook típusú felügyelt összekötő-eseményindítók bejövő HTTPS-kéréseket fogadhatnak
Ez az útmutató bemutatja, hogyan hozhat létre hívható végpontot a munkafolyamathoz a Kérelem eseményindító hozzáadásával, majd a végpont meghívásával egy másik munkafolyamatból. Minden alapelv azonos a bejövő kérelmek fogadására képes többi kérelemalapú eseményindító-típusra.
Előfeltételek
Azure-fiók és -előfizetés. Ha még nincs előfizetése, regisztráljon egy ingyenes Azure-fiókra.
Egy logikai alkalmazás munkafolyamata, amelyben a Kérelem eseményindítóval szeretné létrehozni a hívható végpontot. Egy üres munkafolyamattal vagy egy meglévő munkafolyamattal kezdheti, ahol lecserélheti az aktuális eseményindítót. Ez a példa egy üres munkafolyamattal kezdődik.
Telepítsen vagy használjon olyan eszközt, amely HTTP-kéréseket küldhet a megoldás teszteléséhez, például:
- Visual Studio Code a Visual Studio Marketplace bővítményével
- PowerShell Invoke-RestMethod
- Microsoft Edge – Hálózati konzol eszköz
- Bruno
- csavarodik
Figyelemfelhívás
Olyan helyzetekben, ahol bizalmas adatokkal rendelkezik, például hitelesítő adatokkal, titkos kódokkal, hozzáférési jogkivonatokkal, API-kulcsokkal és más hasonló információkkal, mindenképpen használjon olyan eszközt, amely a szükséges biztonsági funkciókkal védi az adatokat, offline vagy helyileg működik, nem szinkronizálja az adatokat a felhőbe, és nem követeli meg, hogy online fiókba jelentkezzen be. Így csökkentheti a bizalmas adatok nyilvános közzétételével járó kockázatokat.
Hívható végpont létrehozása
Attól függően, hogy Standard vagy Consumption logikai alkalmazás munkafolyamattal rendelkezik-e, kövesse a megfelelő lépéseket:
Az Azure Portalon nyissa meg a Standard logikai alkalmazás erőforrását és az üres munkafolyamatot a tervezőben.
Az alábbi általános lépéseket követve adja hozzá a HTTP-kérés érkezésekor elnevezett kérelemindítót.
A Kérelem törzse JSON-séma mezőjében megadhat egy JSON-sémát, amely leírja az eseményindító által várt hasznos adatokat vagy adatokat.
A tervező ezzel a sémával hoz létre triggerkimeneteket képviselő jogkivonatokat. Ezután egyszerűen hivatkozhat ezekre a kimenetekre a logikai alkalmazás munkafolyamatában. További információ a JSON-sémákból létrehozott jogkivonatokról.
Ebben a példában adja meg a következő sémát:
{ "type": "object", "properties": { "address": { "type": "object", "properties": { "streetNumber": { "type": "string" }, "streetName": { "type": "string" }, "town": { "type": "string" }, "postalCode": { "type": "string" } } } } }
JSON-sémát is létrehozhat egy hasznos adatminta megadásával:
A Kérelem eseményindítóban válassza a Minta hasznos adat használata séma létrehozásához lehetőséget.
Az Enter vagy a illessze be a JSON-minta hasznos adatait tartalmazó mezőbe, írja be a minta hasznos adatait, például:
{ "address": { "streetNumber": "00000", "streetName": "AnyStreet", "town": "AnyTown", "postalCode": "11111-1111" } }
Ha elkészült, válassza a Kész lehetőséget.
A JSON-séma kéréstörzse párbeszédpanelen megjelenik a létrehozott séma.
Mentse a munkafolyamatot.
A HTTP POST URL-címmezőben megjelenik a létrehozott visszahívási URL- cím, amelyet más szolgáltatások a logikai alkalmazás munkafolyamatának meghívására és aktiválására használhatnak. Ez az URL-cím olyan lekérdezési paramétereket tartalmaz, amelyek egy közös hozzáférésű jogosultságkód (SAS) kulcsot adnak meg, amelyet a hitelesítéshez használnak.
A visszahívási URL-cím másolásához az alábbi lehetőségek közül választhat:
A HTTP POST URL-címének jobb oldalán válassza az URL másolása (fájlok másolása ikon) lehetőséget.
Másolja a visszahívási URL-címet a munkafolyamat Áttekintés lapjáról.
A visszahívási URL-cím teszteléséhez és a munkafolyamat aktiválásához küldjön egy HTTP-kérést az URL-címre, beleértve azt a módszert is, amelyet a Kérés eseményindító elvár, a HTTP-kérési eszköz és annak utasításaival.
Ez a példa a POST metódust használja a másolt URL-címmel, amely a következő példához hasonlóan néz ki:
POST https://{logic-app-name}.azurewebsites.net:443/api/{workflow-name}/triggers/{trigger-name}/invoke?api-version=2022-05-01&sp=%2Ftriggers%2F{trigger-name}%2Frun&sv=1.0&sig={shared-access-signature}
A várt kérési módszer kiválasztása
Alapértelmezés szerint a Kérés eseményindítója kérést POST
vár. Megadhat azonban egy másik metódust, amelyet a hívónak használnia kell, de csak egyetlen metódust.
A Kérelem eseményindítóban nyissa meg a Speciális paraméterek listát, és válassza a Metódus lehetőséget, amely hozzáadja ezt a tulajdonságot az eseményindítóhoz.
A Metódus listában válassza ki azt a metódust, amelyet az eseményindítónak várnia kell. Vagy megadhat egy egyéni metódust is.
Válassza ki például a GET metódust, hogy később tesztelhesse a végpont URL-címét.
Paraméterek továbbítása végpont URL-címén keresztül
Ha a végpont URL-címén keresztül szeretné elfogadni a paraméterértékeket, az alábbi lehetőségek közül választhat:
Értékek elfogadása GET-paraméterekkel vagy URL-paraméterekkel.
Ezek az értékek név-érték párként lesznek átadva a végpont URL-címében. Ebben a beállításban a GET metódust kell használnia a Kérelem eseményindítóban. Egy későbbi műveletben a paraméterértékeket triggerkimenetként is lekérheti a
triggerOutputs()
függvény egy kifejezésben való használatával.Fogadja el az értékeket a kérelem-eseményindító paramétereinek relatív elérési útján.
Ezek az értékek a végpont URL-címében található relatív elérési úton haladnak át. Explicit módon ki kell választania azt a metódust is, amelyet az eseményindító elvár. Egy későbbi műveletben a paraméterértékeket triggerkimenetként is lekérheti, ha közvetlenül hivatkozik ezekre a kimenetekre.
Értékek elfogadása GET-paraméterekkel
A Kérelem eseményindítóban nyissa meg a Speciális paramétereket, adja hozzá a Metódus tulajdonságot az eseményindítóhoz, és válassza ki a GET metódust.
További információ: A várt kérési módszer kiválasztása.
A tervezőben az alábbi általános lépéseket követve adja hozzá azt a műveletet, amelyben a paraméterértéket használni szeretné.
Ebben a példában válassza ki a Válasz nevű műveletet.
A paraméter értékét lekérő kifejezés létrehozásához
triggerOutputs()
kövesse az alábbi lépéseket:A Válasz műveletben válassza ki a Törzs tulajdonságot, hogy megjelenjenek a dinamikus tartalom (villám ikon) és a kifejezésszerkesztő (képletikon) beállításai. A kifejezésszerkesztő megnyitásához válassza a képlet ikont.
A kifejezésmezőbe írja be a következő kifejezést, cserélje le
parameter-name
a paraméter nevét, és válassza az OK gombot.triggerOutputs()['queries']['parameter-name']
A Body tulajdonságban a kifejezés feloldja a
triggerOutputs()
jogkivonatot.Ha menti a munkafolyamatot, navigál a tervezőtől, és visszatér a tervezőhöz, a jogkivonat a megadott paraméternevet jeleníti meg, például:
Kódnézetben a Törzs tulajdonság a válaszművelet definíciójában az alábbiak szerint jelenik meg:
"body": "@{triggerOutputs()['queries']['parameter-name']}",
Tegyük fel például, hogy egy névvel ellátott
postalCode
paraméter értékét szeretné átadni. A Törzs tulajdonság a sztringet adja meg egyPostal Code:
záró szóközzel, amelyet a megfelelő kifejezés követ:
A hívható végpont tesztelése
A Kérelem eseményindítóból másolja ki a munkafolyamat URL-címét, és illessze be az URL-címet egy másik böngészőablakba. Az URL-címben adja hozzá a paraméter nevét és értékét az URL-címhez az alábbi formátumban, majd nyomja le az Enter billentyűt.
...invoke/{parameter-name}/{parameter-value}?api-version=2022-05-01...
Példa:
https://mystandardlogicapp.azurewebsites.net/api/Stateful-Workflow/triggers/When_a_HTTP_request_is_received/invoke/address/12345?api-version=2022-05-01&sp=%2Ftriggers%2FWhen_a_HTTP_request_is_received%2Frun&sv=1.0&sig={shared-access-signature}
A böngésző a következő szöveggel ad vissza választ:
Postal Code: 123456
Feljegyzés
Ha a kivonatot vagy a font szimbólumot (#) szeretné szerepeltetni az URI-ban, használja inkább ezt a kódolt verziót: %25%23
Értékek elfogadása relatív útvonalon keresztül
A Kérelem eseményindítóban nyissa meg a Speciális paraméterek listát, és válassza a Relatív elérési utat, amely hozzáadja ezt a tulajdonságot az eseményindítóhoz.
A Relatív elérési út tulajdonságban adja meg annak a paraméternek a relatív elérési útját a JSON-sémában, amelyet az URL-címnek például el kell fogadnia
/address/{postalCode}
.A Kérelem eseményindító alatt az alábbi általános lépéseket követve adja hozzá azt a műveletet, amelyben a paraméter értékét használni szeretné.
Ebben a példában adja hozzá a Válasz műveletet.
A Válaszművelet Törzs tulajdonságában adja meg azt a jogkivonatot, amely az eseményindító relatív elérési útján megadott paramétert jelöli.
Tegyük fel például, hogy a Válasz műveletet vissza szeretné adni
Postal Code: {postalCode}
.A Body tulajdonságban adjon meg
Postal Code:
egy záró szóközt. Tartsa a kurzort a szerkesztési mezőben, hogy a dinamikus tartalomlista nyitva maradjon.A dinamikus tartalomlistában a Http-kérés fogadása szakaszban válassza ki az Elérési út paraméterei postalCode-eseményindító kimenetét.
A Törzs tulajdonság most már tartalmazza a kiválasztott paramétert:
Mentse a munkafolyamatot.
A Kérés eseményindítóban a visszahívási URL-cím frissül, és most már tartalmazza a relatív elérési utat, például:
https://mystandardlogicapp.azurewebsites.net/api/Stateful-Workflow/triggers/When_a_HTTP_request_is_received/invoke/address/%7BpostalCode%7D?api-version=2022-05-01&sp=%2Ftriggers%2FWhen_a_HTTP_request_is_received%2Frun&sv=1.0&sig={shared-access-signature}
A hívható végpont teszteléséhez másolja ki a frissített visszahívási URL-címet a Kérés eseményindítóból, illessze be az URL-címet egy másik böngészőablakba, cserélje le
%7BpostalCode%7D
az URL-címet a következőre123456
, majd nyomja le az Enter billentyűt.A böngésző a következő szöveggel ad vissza választ:
Postal Code: 123456
Feljegyzés
Ha a kivonatot vagy a font szimbólumot (#) szeretné szerepeltetni az URI-ban, használja inkább ezt a kódolt verziót: %25%23
Munkafolyamat meghívása végpont URL-címén keresztül
A végpont létrehozása után elindíthatja a munkafolyamatot egy HTTPS-kérés elküldésével a végpont teljes URL-címére. Az Azure Logic Apps-munkafolyamatok beépített támogatást nyújtanak a közvetlen hozzáférésű végpontokhoz.
Sémából létrehozott jogkivonatok
Amikor JSON-sémát ad meg a Kérelem eseményindítóban, a munkafolyamat-tervező jogkivonatokat hoz létre a séma tulajdonságaihoz. Ezután ezeket a jogkivonatokat használhatja az adatok munkafolyamaton keresztüli továbbításához.
Ha például további tulajdonságokat ad hozzá, például "suite"
a JSON-sémához, akkor ezekhez a tulajdonságokhoz tartozó jogkivonatok a munkafolyamat későbbi lépéseiben használhatók. A teljes JSON-séma:
{
"type": "object",
"properties": {
"address": {
"type": "object",
"properties": {
"streetNumber": {
"type": "string"
},
"streetName": {
"type": "string"
},
"suite": {
"type": "string"
},
"town": {
"type": "string"
},
"postalCode": {
"type": "string"
}
}
}
}
}
Más munkafolyamatok meghívása
Az aktuális munkafolyamatba ágyazva meghívhat más munkafolyamatokat is, amelyek kéréseket fogadhatnak. A munkafolyamatok meghívásához kövesse az alábbi lépéseket:
-
A Munkafolyamat neve lista a kijelölendő munkafolyamatokat jeleníti meg.
A Munkafolyamat neve listából válassza ki a meghívni kívánt munkafolyamatot, például:
Bejövő kérésből származó tartalom hivatkozása
Ha a bejövő kérelem tartalomtípusa az application/json
, hivatkozhat a bejövő kérelem tulajdonságaira. Ellenkező esetben a tartalom egyetlen bináris egységként lesz kezelve, amelyet átadhat más API-knak. Ahhoz, hogy hivatkozzon erre a tartalomra a logikai alkalmazás munkafolyamatában, először konvertálnia kell azt.
Ha például olyan tartalmat ad át, amely típussal rendelkezikapplication/xml
, a @xpath()
kifejezéssel XPath-kinyerést hajthat végre, vagy használhatja a kifejezést az @json()
XML JSON-ra való konvertálásához. További információ a támogatott tartalomtípusokról.
A bejövő kérés kimenetének lekéréséhez használhatja a @triggerOutputs
kifejezést. Tegyük fel például, hogy az alábbi példához hasonló kimenettel rendelkezik:
{
"headers": {
"content-type" : "application/json"
},
"body": {
"myProperty" : "property value"
}
}
Ha kifejezetten a tulajdonságot body
szeretné elérni, használhatja a @triggerBody()
kifejezést parancsikonként.
Válaszadás a kérelmekre
Néha olyan kérésekre szeretne válaszolni, amelyek elindítják a munkafolyamatot, ha tartalmat ad vissza a hívónak. A válasz állapotkódjának, fejlécének és törzsének létrehozásához használja a Válasz műveletet. Ez a művelet bárhol megjelenhet a munkafolyamatban, nem csak a munkafolyamat végén. Ha a munkafolyamat nem tartalmaz válaszműveletet, a végpont azonnal válaszol a 202 Elfogadva állapottal.
Ahhoz, hogy az eredeti hívó sikeresen megkapja a választ, a válaszhoz szükséges összes lépésnek a kérelem időtúllépési korlátja alatt kell befejeződnie, kivéve, ha az aktivált munkafolyamat beágyazott munkafolyamatként van meghívva. Ha nem ad vissza választ ezen a korláton belül, a bejövő kérés túllépi az időkorlátot, és megkapja a 408 ügyfél időtúllépési válaszát .
Beágyazott munkafolyamatok esetén a szülő munkafolyamat továbbra is várja a választ, amíg az összes lépés befejeződik, függetlenül attól, hogy mennyi időre van szükség.
A válasz létrehozása
A válasz törzsében több fejlécet és bármilyen típusú tartalmat is tartalmazhat. A következő válasz fejléce például azt határozza meg, hogy a válasz tartalomtípusaapplication/json
, és hogy a törzs a kérelem eseményindítójához korábban ismertetett JSON-sémán alapuló értékeket town
és postalCode
tulajdonságokat tartalmaz.
A válaszok a következő tulajdonságokkal rendelkeznek:
Tulajdonság (megjelenítés) | Tulajdonság (JSON) | Leírás |
---|---|---|
Állapotkód | statusCode |
A bejövő kérés válaszában használandó HTTPS-állapotkód. Ez a kód bármilyen érvényes állapotkód lehet, amely 2xx, 4xx vagy 5xx kezdetű. A 3xx állapotkódok azonban nem engedélyezettek. |
Fejlécek | headers |
Egy vagy több fejléc, amely szerepel a válaszban |
Törzs | body |
Egy törzsobjektum, amely lehet sztring, JSON-objektum vagy akár bináris tartalom is, amely egy előző lépésből származik |
A válaszművelet JSON-definíciójának és a munkafolyamat teljes JSON-definíciójának megtekintéséhez módosítsa tervezői nézetről kódnézetre.
"Response": {
"type": "Response",
"kind": "http",
"inputs": {
"body": {
"postalCode": "@triggerBody()?['address']?['postalCode']",
"town": "@triggerBody()?['address']?['town']"
},
"headers": {
"content-type": "application/json"
},
"statusCode": 200
},
"runAfter": {}
}
Kérdések és válaszok
K: Mi a helyzet a bejövő hívások URL-biztonságáról?
V: Az Azure biztonságosan létrehozza a logikai alkalmazások visszahívási URL-címeit a közös hozzáférésű jogosultságkód (SAS) használatával. Ez az aláírás lekérdezési paraméterként halad át, és a munkafolyamat futtatása előtt ellenőrizni kell. Az Azure a titkos kulcs logikai alkalmazásonkénti egyedi kombinációjával, az eseményindító nevével és az elvégzett művelettel hozza létre az aláírást. Tehát ha valaki nem fér hozzá a titkos logikai alkalmazás kulcsához, akkor nem tud érvényes aláírást létrehozni.
Fontos
Éles és magasabb biztonsági rendszerek esetén határozottan javasoljuk, hogy a munkafolyamatot közvetlenül a böngészőből hívja meg az alábbi okok miatt:
- A megosztott hozzáférési kulcs megjelenik az URL-címben.
- Az Azure Logic Apps-ügyfelek megosztott tartományai miatt nem kezelheti a biztonsági tartalomszabályzatokat.
További információ a munkafolyamatba irányuló bejövő hívások biztonságáról, engedélyezéséről és titkosításáról, például a Transport Layer Security (TLS), korábbi nevén Secure Sockets Layer (SSL), a Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth) szolgáltatásról, a logikai alkalmazás munkafolyamatának az Azure API Managementtel való közzétételéről vagy a bejövő hívásokból származó IP-címek korlátozásáról: Biztonságos hozzáférés és adatok – Hozzáférés a kérésalapú triggerekhez érkező hívásokhoz.
K: Konfigurálhatom a hívható végpontokat tovább?
Válasz: Igen, a HTTPS-végpontok az Azure API Management segítségével támogatják a fejlettebb konfigurációt. Ez a szolgáltatás emellett lehetővé teszi az összes API konzisztens kezelését, beleértve a logikai alkalmazásokat, egyéni tartománynevek beállítását, több hitelesítési módszer használatát és egyebeket, például:
- A kérelem metódusának módosítása
- A kérelem URL-szegmenseinek módosítása
- API Management-tartományok beállítása az Azure Portalon
- Alapszintű hitelesítés ellenőrzésére szolgáló házirend beállítása