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 (Használat + Standard)
Az, hogy az integrációs architektúra megfelelően kezeli az állásidőt vagy a függő rendszerek által okozott problémákat, kihívást jelenthet. Az Azure Logic Apps első osztályú felületet biztosít a hibák és kivételek kezeléséhez, hogy hatékony és rugalmas integrációkat hozzon létre, amelyek elegánsan kezelik a problémákat és a hibákat.
Újrapróbálkozási szabályzatok
A legalapvetőbb kivétel- és hibakezeléshez használhatja az újrapróbálkozási szabályzatot , ha ez a képesség egy eseményindítón vagy műveleten, például a HTTP-műveleten létezik. Ha az eseményindító vagy művelet eredeti kérése túllépi vagy meghiúsul, és 408, 429 vagy 5xx választ eredményez, az újrapróbálkozási szabályzat azt határozza meg, hogy az eseményindító vagy a művelet házirend-beállítások szerint újraküldi a kérést.
Szabályzatkorlátok újrapróbálkozási korlátozásai
Az újrapróbálkozási szabályzatokról, a beállításokról, a korlátokról és egyéb lehetőségekről az Újrapróbálkozási szabályzat korlátai című cikkben olvashat bővebben.
Szabályzattípusok újrapróbálkozás
Az újrapróbálkozási szabályzatokat támogató összekötőműveletek az Alapértelmezett házirendet használják, hacsak nem választ másik újrapróbálkozási szabályzatot.
| Újrapróbálkozási szabályzat | Leírás |
|---|---|
| Alapértelmezett | A legtöbb művelet esetében az Alapértelmezett újrapróbálkozási szabályzat egy exponenciális intervallumszabályzat, amely exponenciálisan növekvő időközönként legfeljebb 4 újrapróbálkozási lehetőséget küld. Ezek az intervallumok 7,5 másodperccel skálázhatók, de 5 és 45 másodperc között vannak leképezve. Számos művelet más alapértelmezett újrapróbálkozási szabályzatot használ, például rögzített időközi szabályzatot. További információkért tekintse át az Alapértelmezett újrapróbálkozás szabályzattípust. |
| Egyik sem | Ne küldjön újra kérelmet. További információkért tekintse át a Nincs – Nincs újrapróbálkozás szabályzatot. |
| Exponenciális intervallum | Ez a szabályzat egy véletlenszerű időközt vár, amelyet egy exponenciálisan növekvő tartományból választ ki a következő kérés elküldése előtt. További információkért tekintse át az exponenciális intervallumszabályzat típusát. |
| Rögzített időköz | Ez a szabályzat megvárja a megadott időközt a következő kérés elküldése előtt. További információkért tekintse át a rögzített intervallumszabályzat típusát. |
Újrapróbálkoztatási szabályzat típusának módosítása a tervezőben
Nyissa meg a logikai alkalmazás erőforrását az Azure Portalon.
Az erőforrás oldalsávján az alábbi lépéseket követve nyissa meg a munkafolyamat-tervezőt a logikai alkalmazás alapján:
Felhasználás: A Fejlesztési eszközök között válassza ki a tervezőt a munkafolyamat megnyitásához.
Szabvány
A Munkafolyamatok területen válassza a Munkafolyamatok lehetőséget.
A Munkafolyamatok lapon válassza ki a munkafolyamatot.
Az Eszközök területen válassza ki a tervezőt a munkafolyamat megnyitásához.
Azon az eseményindítón vagy műveleten, amelyen módosítani szeretné az újrapróbálkozási szabályzat típusát, kövesse az alábbi lépéseket a beállítások megnyitásához:
A tervezőn válassza ki a műveletet.
A műveletinformációs panelen válassza a Beállítások lehetőséget.
A Hálózatkezelés területen az Újrapróbálkozás házirend területén válassza ki a kívánt házirendtípust.
Az újrapróbálkoztatási szabályzat típusának módosítása a kódnézet-szerkesztőben
A tervező korábbi lépéseinek végrehajtásával ellenőrizze, hogy az eseményindító vagy a művelet támogatja-e az újrapróbálkozási szabályzatokat.
Nyissa meg a logikai alkalmazás munkafolyamatát a kódnézet-szerkesztőben.
Az eseményindító vagy a művelet definíciójában adja hozzá a
retryPolicyJSON-objektumot az eseményindítóhoz vagy a művelet objektumáhozinputs. Ha nincsretryPolicyobjektum, az eseményindító vagy a művelet azdefaultújrapróbálkozási szabályzatot használja."inputs": { <...>, "retryPolicy": { "type": "<retry-policy-type>", // The following properties apply to specific retry policies. "count": <retry-attempts>, "interval": "<retry-interval>", "maximumInterval": "<maximum-interval>", "minimumInterval": "<minimum-interval>" }, <...> }, "runAfter": {}Szükséges
Tulajdonság Érték Típus Leírás type< újrapróbálkozás-szabályzattípus> Sztring A használni kívánt újrapróbálkozás házirendtípusa: default,none,fixedvagyexponentialcount< újrapróbálkozási kísérletek> Egész fixedAexponentialszabályzattípusok esetében az újrapróbálkozási kísérletek száma, amely 1 és 90 közötti érték. További információ: Rögzített időköz és Exponenciális intervallum.interval< újrapróbálkozási időköz> Sztring fixedA szabályzattípusok esetébenexponentialaz újrapróbálkozási időköz értéke ISO 8601 formátumban. A szabályzathoz megadhatja aexponentialválasztható maximális és minimális időközöket is. További információ: Rögzített időköz és Exponenciális intervallum.
Fogyasztás: 5 másodperc (PT5S) és 1 nap (P1D).
Standard: Állapotalapú munkafolyamatok esetén 5 másodperc (PT5S) –1 nap (P1D). Állapot nélküli munkafolyamatok esetén 1 másodperc (PT1S) –1 perc (PT1M).Választható
Tulajdonság Érték Típus Leírás maximumInterval< maximális időköz> Sztring A exponentialszabályzat esetében a véletlenszerűen kiválasztott intervallum legnagyobb intervalluma ISO 8601 formátumban. Az alapértelmezett érték 1 nap (P1D). További információkért tekintse át az exponenciális intervallumot.minimumInterval< minimális időköz> Sztring exponentialA házirend esetében a véletlenszerűen kiválasztott intervallum legkisebb időköze ISO 8601 formátumban. Az alapértelmezett érték 5 másodperc (PT5S). További információkért tekintse át az exponenciális intervallumot.
Alapértelmezett újrapróbálkozési szabályzat
Az újrapróbálkozási szabályzatokat támogató összekötőműveletek az Alapértelmezett házirendet használják, hacsak nem választ másik újrapróbálkozási szabályzatot. A legtöbb művelet esetében az Alapértelmezett újrapróbálkozási szabályzat egy exponenciális intervallumszabályzat, amely exponenciálisan növekvő időközönként legfeljebb 4 újrapróbálkozási lehetőséget küld. Ezek az intervallumok 7,5 másodperccel skálázhatók, de 5 és 45 másodperc között vannak leképezve. Számos művelet más alapértelmezett újrapróbálkozási szabályzatot használ, például rögzített időközi szabályzatot.
A munkafolyamat-definícióban az eseményindító vagy a műveletdefiníció nem definiálja explicit módon az alapértelmezett szabályzatot, de az alábbi példa bemutatja, hogyan viselkedik az alapértelmezett újrapróbálkozási szabályzat a HTTP-művelethez:
"HTTP": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "http://myAPIendpoint/api/action",
"retryPolicy" : {
"type": "exponential",
"interval": "PT7S",
"count": 4,
"minimumInterval": "PT5S",
"maximumInterval": "PT1H"
}
},
"runAfter": {}
}
Nincs – Nincs újrapróbálkozési szabályzat
Ha meg szeretné adni, hogy a művelet vagy eseményindító ne próbálkozzon újra a sikertelen kérésekkel, állítsa az <újrapróbálkozási szabályzat típusát> a következőre none: .
Rögzített időközi újrapróbálkozási szabályzat
Ha meg szeretné adni, hogy a művelet vagy eseményindító megvárja a megadott időközt a következő kérés elküldése előtt, állítsa az <újrapróbálkozási szabályzat típusát
Példa
Ez az újrapróbálkozási szabályzat az első sikertelen kérés után még kétszer megpróbálja lekérni a legfrissebb híreket, és 30 másodperces késéssel az egyes kísérletek között:
"Get_latest_news": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "https://mynews.example.com/latest",
"retryPolicy": {
"type": "fixed",
"interval": "PT30S",
"count": 2
}
}
}
Exponenciális intervallum újrapróbálkozási szabályzat
Az exponenciális időköz újrapróbálkozási szabályzata azt határozza meg, hogy az eseményindító vagy művelet véletlenszerű időközt várjon a következő kérés elküldése előtt. Ez a véletlenszerű intervallum exponenciálisan növekvő tartományból van kiválasztva. Igény szerint felülbírálhatja az alapértelmezett minimális és maximális időközöket a saját minimális és maximális időközök megadásával, attól függően, hogy használatalapú vagy standard logikai alkalmazás munkafolyamattal rendelkezik-e.
| Név | Használati korlát | Standard korlát | Jegyzetek |
|---|---|---|---|
| Maximális késleltetés | Alapértelmezett: 1 nap | Alapértelmezett: 1 óra | A Használati logikai alkalmazás munkafolyamatának alapértelmezett korlátjának módosításához használja az újrapróbálkozási szabályzat paraméterét. A standard logikaialkalmazás-munkafolyamatok alapértelmezett korlátjának módosításához tekintse át az egybérlős Azure Logic Apps logikai alkalmazások gazdagép- és alkalmazásbeállításainak szerkesztését. |
| Minimális késés | Alapértelmezett: 5 mp | Alapértelmezett: 5 mp | A Használati logikai alkalmazás munkafolyamatának alapértelmezett korlátjának módosításához használja az újrapróbálkozási szabályzat paraméterét. A standard logikaialkalmazás-munkafolyamatok alapértelmezett korlátjának módosításához tekintse át az egybérlős Azure Logic Apps logikai alkalmazások gazdagép- és alkalmazásbeállításainak szerkesztését. |
Véletlenszerű változótartományok
Az exponenciális időközi újrapróbálkozási szabályzat esetében az alábbi táblázat azt az általános algoritmust mutatja be, amellyel az Azure Logic Apps egységes véletlenszerű változót hoz létre a megadott tartományban minden újrapróbálkozáshoz. A megadott tartomány legfeljebb az újrapróbálkozések számát is tartalmazhatja.
| Újrapróbálkozás száma | Minimális időköz | Maximális időköz |
|---|---|---|
| 0 | max(0, <minimális intervallum | min(interval, <maximum-interval>) |
| 2 | max(intervallum, <minimális intervallum | min(2 * intervallum, <maximális időköz |
| 3 | max(2 * intervallum, <minimális intervallum | min(4 * intervallum, <maximális időköz |
| 4 | max(4 * intervallum, <minimális intervallum | min(8 * intervallum, <maximális időköz |
| .... | .... | .... |
A "futtatás után" viselkedés kezelése
Amikor műveleteket ad hozzá a munkafolyamat-tervezőben, implicit módon deklarálja a műveletek futtatásának sorrendjét. A művelet futtatása után a művelet olyan állapottal lesz megjelölve, mint a Sikeres, a Sikertelen, a Kihagyott vagy az Időtúllépés. Más szóval, a megelőző műveletnek először az engedélyezett állapotok bármelyikével kell befejeződnie, mielőtt a követő művelet lefutna.
Alapértelmezés szerint a tervezőben hozzáadott művelet csak akkor fut, ha az előző művelet sikeres állapotú. Ez az utólagos futtatás viselkedés pontosan meghatározza a munkafolyamat műveleteinek futtatási sorrendjét.
A tervezőben módosíthatja a művelet alapértelmezett "futtatás után" viselkedését a művelet futtatás utáni beállításának szerkesztésével. Ez a beállítás csak a munkafolyamat első műveletét követő további műveleteknél érhető el. A munkafolyamat első művelete mindig az eseményindító sikeres futtatása után fut. A Futtatás után beállítás tehát nem érhető el, és nem vonatkozik az első műveletre.
A művelet mögöttes JSON-definíciójában a Futtatás után beállítás megegyezik a runAfter tulajdonságéval. Ez a tulajdonság egy vagy több megelőző műveletet határoz meg, amelyeknek először az adott engedélyezett állapottal kell befejeződniük, mielőtt a követő művelet lefutna. A runAfter tulajdonság egy JSON-objektum, amely rugalmasságot biztosít azáltal, hogy megadja az összes megelőző műveletet, amelyet a követő művelet futtatása előtt végre kell hajtania. Ez az objektum egy elfogadható állapotú tömböt is definiál.
Ha például azt szeretné, hogy egy művelet az A művelet sikeres végrehajtása után, illetve a B művelet sikeres vagy sikertelen végrehajtása után fusson, amikor egy művelet JSON-definícióján dolgozik, állítsa be a következő runAfter tulajdonságot:
{
// Other parts in action definition
"runAfter": {
"Action A": ["Succeeded"],
"Action B": ["Succeeded", "Failed"]
}
}
"Futtatás után" viselkedés hibakezeléshez
Ha egy művelet nem kezelt hibát vagy kivételt jelez, a művelet sikertelen, a követő művelet pedig kihagyva lesz. Ha ez a viselkedés párhuzamos ágakkal rendelkező művelet esetén fordul elő, az Azure Logic Apps-motor a többi ágat követi a befejezési állapotuk meghatározásához. Ha például egy ág kihagyott művelettel végződik, az ág befejezési állapota a kihagyott művelet megelőző állapotán alapul. A munkafolyamat futtatása után a motor az összes ágállapot kiértékelésével meghatározza a teljes futtatás állapotát. Ha bármelyik ág sikertelen lesz, a teljes munkafolyamat-futtatás sikertelenként lesz megjelölve.
Ha meg szeretné győződni arról, hogy egy művelet a megelőző állapota ellenére is futtatható, módosíthatja a művelet "futtatás után" viselkedését a megelőző sikertelen állapotainak kezeléséhez. Így a művelet akkor fut, ha az előd állapota Sikeres, Sikertelen, Kihagyott, Időtúllépés vagy mindezek az állapotok.
Ha például az Office 365 Outlook e-mail-műveletet szeretne futtatni, miután az Excel Online Sor hozzáadása táblázatelődő műveletbe sikertelenként lett megjelölve, a Sikeres helyett módosítsa a "futtatás után" viselkedést a tervező vagy a kódnézet-szerkesztő használatával.
A "futtatás után" viselkedés módosítása a tervezőben
Nyissa meg a logikai alkalmazás erőforrását az Azure Portalon.
Az erőforrás oldalsávján az alábbi lépéseket követve nyissa meg a munkafolyamat-tervezőt a logikai alkalmazás alapján:
Felhasználás: A Fejlesztési eszközök között válassza ki a tervezőt a munkafolyamat megnyitásához.
Szabvány
Az erőforrás oldalsávJának Munkafolyamatok területén válassza a Munkafolyamatok lehetőséget.
A Munkafolyamatok lapon válassza ki a munkafolyamatot.
Az Eszközök területen válassza ki a tervezőt a munkafolyamat megnyitásához.
Azon az eseményindítón vagy műveleten, ahol módosítani szeretné a "futtatás után" viselkedést, kövesse az alábbi lépéseket a művelet beállításainak megnyitásához:
A tervezőn válassza ki a műveletet.
A műveletinformációs panelen válassza a Beállítások lehetőséget.
A Utána futtatni szakasz egy Kiválasztott műveletek listát tartalmaz, amely az aktuálisan kiválasztott művelethez elérhető megelőző műveleteket jeleníti meg, például:
A Műveletek kiválasztása listában bontsa ki az aktuális megelőző műveletet, amely ebben a példában HTTP :
Alapértelmezés szerint a "futtatás után" állapot értéke Sikeres. Ez az érték azt jelenti, hogy a megelőző műveletnek sikeresen le kell fejeződnie, mielőtt az aktuális művelet lefutna.
Ha módosítani szeretné a "futtatás után" viselkedést a kívánt állapotokra, jelölje ki ezeket az állapotokat.
Az alábbi példa a Sikertelen volt lehetőséget választja.
Ha meg szeretné adni, hogy az aktuális művelet csak akkor fusson, ha a megelőző művelet befejeződött a Sikertelen, kihagyott vagy Időtúllépési állapottal, jelölje ki ezeket az állapotokat, majd törölje az alapértelmezett állapotot, például:
Feljegyzés
Mielőtt törli az alapértelmezett állapotot, először válasszon másik állapotot. Mindig legalább egy állapotot ki kell jelölnie.
Ha több megelőző művelet futtatását és befejezését szeretné megkövetelni, mindegyik saját "futtatás után" állapottal rendelkezik, kövesse az alábbi lépéseket:
Nyissa meg a Műveletek kijelölése listát, és válassza ki a kívánt megelőző műveleteket.
Válassza ki az egyes műveletek "futtatás után" állapotát.
Ha végzett, zárja be a műveletinformációs panelt.
A "futtatás után" viselkedés módosítása a kódnézet-szerkesztőben
Az erőforrás oldalsávján az alábbi lépéseket követve nyissa meg a kódnézet-szerkesztőt a logikai alkalmazás alapján:
Használat: A Fejlesztői eszközök területen válassza a kódnézetet a munkafolyamat JSON-szerkesztőben való megnyitásához.
Szabvány
A Munkafolyamatok területen válassza a Munkafolyamatok lehetőséget.
A Munkafolyamatok lapon válassza ki a munkafolyamatot.
Az Eszközök területen válassza a kódnézetet a munkafolyamat JSON-szerkesztőben való megnyitásához.
A művelet JSON-definíciójában szerkessze a
runAftertulajdonságot, amelynek szintaxisa a következő:"<action-name>": { "inputs": { "<action-specific-inputs>" }, "runAfter": { "<preceding-action>": [ "Succeeded" ] }, "type": "<action-type>" }Ebben a példában módosítsa a tulajdonságot a
runAfterkövetkezőreSucceededFailed:"Send_an_email_(V2)": { "inputs": { "body": { "Body": "<p>Failed to add row to table: @{body('Add_a_row_into_a_table')?['Terms']}</p>", "Subject": "Add row to table failed: @{body('Add_a_row_into_a_table')?['Terms']}", "To": "Sophia.Owen@fabrikam.com" }, "host": { "connection": { "name": "@parameters('$connections')['office365']['connectionId']" } }, "method": "post", "path": "/v2/Mail" }, "runAfter": { "Add_a_row_into_a_table": [ "Failed" ] }, "type": "ApiConnection" }Ha meg szeretné adni, hogy a művelet fut-e, a megelőző művelet a következőként
Failedvan megjelölve,SkippedvagyTimedOutadja hozzá a többi állapotot:"runAfter": { "Add_a_row_into_a_table": [ "Failed", "Skipped", "TimedOut" ] },
Műveletek kiértékelése hatókörökkel és azok eredményeivel
Az egyes műveletek után a "futtatás után" beállítással végrehajtott lépésekhez hasonlóan csoportosíthatja a műveleteket egy hatókörön belül. Hatóköröket akkor használhat, ha logikailag csoportosítja a műveleteket, értékeli a hatókör összesített állapotát, és az állapot alapján hajt végre műveleteket. Miután a hatókör összes művelete befejeződött, maga a hatókör saját állapotot kap.
A hatókör állapotának ellenőrzéséhez ugyanazokat a feltételeket használhatja, mint a munkafolyamat-futtatás állapotának ellenőrzéséhez, például sikeres, sikertelen stb.
Alapértelmezés szerint, ha a hatókör összes művelete sikeres, a hatókör állapota Sikeresként van megjelölve. Ha egy hatókör utolsó művelete sikertelen vagy megszakítottként van megjelölve, a hatókör állapota Sikertelenként van megjelölve.
Ha kivételeket szeretne kifogni egy sikertelen hatókörben, és futtatni szeretné a hibákat kezelő műveleteket, használhatja a sikertelen hatókör "futtatás után" beállítását. Így, ha a hatókörben lévő műveletek sikertelenek , és a hatókörhöz a "futtatás után" beállítást használja, egyetlen műveletet hozhat létre a hibák észleléséhez.
A hatókörökre vonatkozó korlátozásokért lásd : Korlátok és konfiguráció.
Hatókör beállítása a "futtatás után" beállítással a kivételkezeléshez
Az Azure Portalon nyissa meg a logikai alkalmazás erőforrását és munkafolyamatát a tervezőben.
A munkafolyamatnak már rendelkeznie kell egy eseményindítóval, amely elindítja a munkafolyamatot.
A tervezőn kövesse az alábbi általános lépéseket egy Hatókör nevű vezérlőművelet hozzáadásához a munkafolyamathoz.
A Hatókör műveletben kövesse az alábbi általános lépéseket a futtatandó műveletek hozzáadásához, például:
Az alábbi lista néhány példaműveletet mutat be, amelyeket belefoglalhat egy hatókörműveletbe :
- Adatok lekérése API-ból.
- Dolgozza fel az adatokat.
- Mentse az adatokat egy adatbázisba.
Most adja meg a "futtatás után" szabályokat a műveletek hatókörben való futtatásához.
A tervezőn válassza ki a Hatókör címet. Amikor megnyílik a hatókör információs panelje, válassza a Beállítások lehetőséget.
Ha a munkafolyamatban több művelet is szerepel, a Műveletek kijelölése listában válassza ki azt a műveletet, amely után futtatni szeretné a hatókörön belüli műveleteket.
A kijelölt műveletnél válassza ki az összes olyan műveletállapotot, amely képes futtatni a hatókörön belüli műveleteket.
Más szóval a kiválasztott műveletből eredő kiválasztott állapotok bármelyike a hatókörben lévő műveletek futtatását eredményezi.
Az alábbi példában a hatókörrel rendelkező műveletek azután futnak, hogy a HTTP-művelet befejeződött a kiválasztott állapotok bármelyikével:
Környezet és eredmények lekérése hibák esetén
Bár hasznos a hatókörből származó hibák észlelése, érdemes lehet több kontextust is használnia a pontos sikertelen műveletek, valamint az esetleges hibák vagy állapotkódok megismeréséhez. A result() függvény egy hatókörrel rendelkező művelet legfelső szintű műveleteinek eredményeit adja vissza. Ez a függvény egyetlen paraméterként fogadja el a hatókör nevét, és egy tömböt ad vissza a legfelső szintű műveletek eredményeivel. Ezek a műveleti objektumok ugyanazokat az attribútumokat adják vissza, mint a actions() függvény által visszaadott attribútumok, például a művelet kezdő időpontja, a befejezési idő, az állapot, a bemenetek, a korrelációs azonosítók és a kimenetek.
Feljegyzés
A result() függvény csak a legfelső szintű műveletekből adja vissza az eredményeket, nem pedig mélyebb beágyazott műveletekből, például kapcsoló- vagy feltételműveletekből.
A hatókörben sikertelen műveletek kontextusának lekéréséhez használhatja a @result() kifejezést a hatókör nevével és a "futtatás után" beállítással. Ha a visszaadott tömböt a sikertelen állapotú műveletekre szeretné szűrni, hozzáadhatja a Tömbszűrő műveletet. Ha egy visszaadott sikertelen művelethez szeretne műveletet futtatni, hajtsa végre a visszaadott szűrt tömböt, és használjon minden ciklushoz egy-egy műveletet.
Az alábbi JSON-példa http POST-kérést küld a választörzsnek az My_Scope nevű hatókörműveletben meghiúsult műveletekhez. A példát egy részletes magyarázat követi.
"Filter_array": {
"type": "Query",
"inputs": {
"from": "@result('My_Scope')",
"where": "@equals(item()['status'], 'Failed')"
},
"runAfter": {
"My_Scope": [
"Failed"
]
}
},
"For_each": {
"type": "foreach",
"actions": {
"Log_exception": {
"type": "Http",
"inputs": {
"method": "POST",
"body": "@item()['outputs']['body']",
"headers": {
"x-failed-action-name": "@item()['name']",
"x-failed-tracking-id": "@item()['clientTrackingId']"
},
"uri": "http://requestb.in/"
},
"runAfter": {}
}
},
"foreach": "@body('Filter_array')",
"runAfter": {
"Filter_array": [
"Succeeded"
]
}
}
A következő lépések ismertetik, hogy mi történik ebben a példában:
A Szűrőtömb művelet az My_Scope belüli összes művelet eredményének lekéréséhez a következő szűrőkifejezést használja:
@result('My_Scope')A Szűrőtömb feltétel minden
@result()olyan elem, amelynek állapota egyenlőFailed. Ez a feltétel szűri a My_Scope összes műveleteredményét tartalmazó tömböt egy olyan tömbre, amelyen csak a sikertelen művelet eredményei vannak.For_eachCiklusművelet végrehajtása a szűrt tömbkimeneteken. Ez a lépés végrehajt egy műveletet minden korábban szűrt sikertelen művelet eredményéhez.Ha a hatókör egyetlen művelete meghiúsul, a ciklusban lévő
For_eachműveletek csak egyszer futnak. Több sikertelen művelet meghibásodásonként egy műveletet okoz.Http POST küldése az
For_eachelem válasz törzsére, azaz a@item()['outputs']['body']kifejezésre.Az
@result()elemalakzat megegyezik az@actions()alakzatéval, és ugyanúgy elemezhető.Adjon meg két egyéni fejlécet a sikertelen művelet nevével (
@item()['name']) és a sikertelen futtatású ügyfélkövetési azonosítóval (@item()['clientTrackingId']).
Referenciaként íme egy példa egyetlen @result() elemre, amely az nameelőző példában elemzett , bodyés clientTrackingId tulajdonságokat mutatja. Egy For_each műveleten @result() kívül ezekből az objektumokból egy tömböt ad vissza.
{
"name": "Example_Action_That_Failed",
"inputs": {
"uri": "https://myfailedaction.azurewebsites.net",
"method": "POST"
},
"outputs": {
"statusCode": 404,
"headers": {
"Date": "Thu, 11 Aug 2016 03:18:18 GMT",
"Server": "Microsoft-IIS/8.0",
"X-Powered-By": "ASP.NET",
"Content-Length": "68",
"Content-Type": "application/json"
},
"body": {
"code": "ResourceNotFound",
"message": "/docs/folder-name/resource-name does not exist"
}
},
"startTime": "2016-08-11T03:18:19.7755341Z",
"endTime": "2016-08-11T03:18:20.2598835Z",
"trackingId": "bdd82e28-ba2c-4160-a700-e3a8f1a38e22",
"clientTrackingId": "08587307213861835591296330354",
"code": "NotFound",
"status": "Failed"
}
Különböző kivételkezelési minták végrehajtásához használhatja a cikkben korábban ismertetett kifejezéseket. Dönthet úgy, hogy egyetlen kivételkezelési műveletet hajt végre azon a hatókörön kívül, amely elfogadja a hibák teljes szűrt tömbét, és eltávolítja a For_each műveletet. A válaszból \@result() a korábban ismertetett egyéb hasznos tulajdonságokat is felveheti.
Azure Monitor-naplók beállítása
Az előző minták hasznos módszerek a futtatás során előforduló hibák és kivételek kezelésére. A futtatástól függetlenül előforduló hibákat azonban azonosíthatja és megválaszolhatja. A futtatási állapotok kiértékeléséhez figyelheti a futtatások naplóit és metrikáit, vagy közzéteheti őket bármely tetszőleges monitorozási eszközben.
Az Azure Monitor például egyszerűbb módot kínál arra, hogy az összes munkafolyamat-eseményt, beleértve az összes futtatási és műveleti állapotot is elküldje egy célhelyre. Riasztásokat állíthat be adott metrikákhoz és küszöbértékekhez az Azure Monitorban. Munkafolyamat-eseményeket log Analytics-munkaterületre vagy Azure Storage-fiókba is küldhet. Vagy az összes eseményt streamelheti az Azure Event Hubson keresztül az Azure Stream Analyticsbe. A Stream Analyticsben a diagnosztikai naplók rendellenességek, átlagok vagy hibák alapján írhat élő lekérdezéseket. A Stream Analytics használatával adatokat küldhet más adatforrásoknak, például üzenetsoroknak, témaköröknek, SQL-nek, Azure Cosmos DB-nek vagy Power BI-nak.
További információkért tekintse át az Azure Monitor-naplók beállítását és az Azure Logic Apps diagnosztikai adatainak gyűjtését.