Sémahivatkozási útmutató az Azure Logic Apps munkafolyamat-definíciós nyelvéhez
Amikor logikai alkalmazást hoz létre az Azure Logic Appsben, a logikai alkalmazás rendelkezik egy mögöttes munkafolyamat-definícióval, amely leírja a logikai alkalmazásban futó tényleges logikát. Ez a munkafolyamat-definíció JSON-t használ, és a munkafolyamat-definíció nyelvi sémája által ellenőrzött struktúrát követi. Ez a hivatkozás áttekintést nyújt erről a struktúráról, valamint arról, hogy a séma hogyan határozza meg az attribútumokat a munkafolyamat-definícióban.
Munkafolyamat-definíciós struktúra
A munkafolyamat-definíciók mindig tartalmaznak egy eseményindítót a logikai alkalmazás példányosításához, valamint egy vagy több olyan műveletet, amely az eseményindító indítása után fut.
A munkafolyamat-definíciók magas szintű struktúrája a következő:
"definition": {
"$schema": "<workflow-definition-language-schema-version>",
"actions": { "<workflow-action-definitions>" },
"contentVersion": "<workflow-definition-version-number>",
"outputs": { "<workflow-output-definitions>" },
"parameters": { "<workflow-parameter-definitions>" },
"staticResults": { "<static-results-definitions>" },
"triggers": { "<workflow-trigger-definitions>" }
}
Attribútum | Kötelező | Leírás |
---|---|---|
definition |
Igen | A munkafolyamat-definíció kezdő eleme |
$schema |
Csak akkor, ha külsőleg hivatkozik egy munkafolyamat-definícióra | A munkafolyamat-definíció nyelvének verzióját leíró JSON-sémafájl helye, amelyet itt talál: https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json |
actions |
Nem | A munkafolyamat-futtatókörnyezetben végrehajtandó egy vagy több művelet definíciói. További információ: Triggerek és műveletek. Műveletek maximális száma: 250 |
contentVersion |
Nem | A munkafolyamat-definíció verziószáma, amely alapértelmezés szerint "1.0.0.0". A munkafolyamat üzembe helyezésekor a megfelelő definíció azonosításához és megerősítéséhez adjon meg egy használandó értéket. |
outputs |
Nem | A munkafolyamat-futtatásból visszatérni kívánt kimenetek definíciói. További információ: Kimenetek. Kimenetek maximális száma: 10 |
parameters |
Nem | Egy vagy több paraméter definíciói, amelyek a logikai alkalmazás futtatókörnyezetében használandó értékeket adják át. További információ: Paraméterek. Maximális paraméterek: 50 |
staticResults |
Nem | A műveletek által visszaadott egy vagy több statikus eredmény definíciói utánzatkimenetként, ha a statikus eredmények engedélyezve vannak ezeken a műveleteken. Az attribútum minden műveletdefinícióban runtimeConfiguration.staticResult.name a megfelelő definícióra hivatkozik.staticResults További információ: Statikus eredmények. |
triggers |
Nem | A munkafolyamatot példányosítani kívánt egy vagy több eseményindító definíciója. Több eseményindítót is definiálhat, de csak a munkafolyamat-definíció nyelvével, vizuálisan nem a munkafolyamat-tervezőn keresztül. További információ: Triggerek és műveletek. Maximális triggerek: 10 |
Eseményindítók és műveletek
A munkafolyamat-definíciókban a triggers
szakaszok határozzák actions
meg a munkafolyamat végrehajtása során felmerülő hívásokat. A szakaszok szintaxisát és további információit a Munkafolyamat-eseményindítók és -műveletek című témakörben találja.
Paraméterek
Az üzembehelyezési életciklus általában különböző fejlesztési, tesztelési, előkészítési és éles környezetekkel rendelkezik. A logikai alkalmazások különböző környezetekben való üzembe helyezésekor valószínűleg különböző értékeket, például kapcsolati sztring szeretne használni az üzembe helyezési igények alapján. Vagy olyan értékeket is használhat, amelyeket újra szeretne használni a logikai alkalmazásban anélkül, hogy kemény kódolást használna, vagy amelyek gyakran változnak. A munkafolyamat-definíció szakaszában parameters
meghatározhatja vagy szerkesztheti a logikai alkalmazás futásidejű értékeinek paramétereit. Ezeket a paramétereket először meg kell határoznia, mielőtt hivatkozhat ezekre a paraméterekre a munkafolyamat-definíció más részein.
A paraméterdefiníció általános struktúrája a következő:
"parameters": {
"<parameter-name>": {
"type": "<parameter-type>",
"defaultValue": <default-parameter-value>,
"allowedValues": [ <array-with-permitted-parameter-values> ],
"metadata": {
"description": "<parameter-description>"
}
}
},
Attribútum | Kötelező | Típus | Leírás |
---|---|---|---|
<paraméter neve> | Igen | Sztring | A definiálni kívánt paraméter neve |
<paramétertípus> | Igen | int, float, string, bool, array, object, securestring, secureobject Megjegyzés: Az összes jelszóhoz, kulcshoz és titkos kódhoz használja a securestring típusokat secureobject , mert a művelet nem adja vissza ezeket a GET típusokat. A paraméterek biztonságossá tételével kapcsolatos további információkért tekintse meg a műveleti és bemeneti paraméterek biztonsági ajánlásait. |
A paraméter típusa |
<default-parameter-value> | Igen | Akárcsak type |
Az alapértelmezett paraméterérték, amelyet akkor kell használni, ha a munkafolyamat példányosításakor nincs megadva érték. Az defaultValue attribútumra azért van szükség, hogy a Logic App Designer megfelelően tudja megjeleníteni a paramétert, de megadhat egy üres értéket. |
<tömb-with-permitted-parameter-values> | Nem | Tömb | A paraméter által elfogadható értékeket tartalmazó tömb |
<paraméter leírása> | Nem | JSON-objektum | Egyéb paraméteradatok, például a paraméter leírása |
Ezután hozzon létre egy Azure Resource Manager-sablont a munkafolyamat-definícióhoz, definiáljon olyan sablonparamétereket, amelyek elfogadják az üzembe helyezéskor használni kívánt értékeket, cserélje le a rögzített értékeket sablon- vagy munkafolyamat-definíciós paraméterekre mutató hivatkozásokkal, és tárolja az üzembe helyezéskor használandó értékeket egy külön paraméterfájlban. Így egyszerűbben módosíthatja ezeket az értékeket a paraméterfájlon keresztül anélkül, hogy frissítenie és újra üzembe kellene helyeznie a logikai alkalmazást. A bizalmas vagy biztonságos információk, például a felhasználónevek, jelszavak és titkos kódok esetében ezeket az értékeket az Azure Key Vaultban tárolhatja, és a paraméterfájl lekérheti ezeket az értékeket a kulcstartóból. További információ és példák a paraméterek sablon- és munkafolyamat-definíciós szinteken való definiálásáról: Áttekintés: A logikai alkalmazások üzembe helyezésének automatizálása Azure Resource Manager-sablonokkal.
Statikus eredmények
Az attribútumban staticResults
adja meg a művelet mintaképét outputs
, és status
hogy a művelet akkor tér vissza, ha a művelet statikus eredménybeállítása be van kapcsolva. A művelet definíciójában az runtimeConfiguration.staticResult.name
attribútum a belső staticResults
statikus eredménydefiníció nevére hivatkozik. Megtudhatja, hogyan tesztelheti a logikai alkalmazás munkafolyamatait a modelladatokkal statikus eredmények beállításával.
"definition": {
"$schema": "<...>",
"actions": { "<...>" },
"contentVersion": "<...>",
"outputs": { "<...>" },
"parameters": { "<...>" },
"staticResults": {
"<static-result-definition-name>": {
"outputs": {
<output-attributes-and-values-returned>,
"headers": { <header-values> },
"statusCode": "<status-code-returned>"
},
"status": "<action-status>"
}
},
"triggers": { "<...>" }
}
Attribútum | Kötelező | Típus | Leírás |
---|---|---|---|
<static-result-definition-name> | Igen | Sztring | Egy statikus eredménydefiníció neve, amelyre egy műveletdefiníció hivatkozhat egy runtimeConfiguration.staticResult objektumon keresztül. További információ: Futtatókörnyezet konfigurációs beállításai. Tetszőleges egyedi nevet használhat. Ez az egyedi név alapértelmezés szerint egy számmal van hozzáfűzve, amely szükség szerint növekszik. |
<output-attributes-and-values-returned> | Igen | Eltérő | Az attribútumok követelményei a különböző feltételektől függően változnak. Az attribútum például olyan attribútumokat és értékeket tartalmaz, status Succeeded outputs amelyeket a művelet utánzatkimenetként ad vissza. Ha igen status Failed , az outputs attribútum tartalmazza az errors attribútumot, amely egy vagy több hibaobjektumot message tartalmazó tömb, amely hibainformációval rendelkezik. |
<fejlécértékek> | Nem | JSON | A művelet által visszaadott fejlécértékek |
<status-code-returned> | Igen | Sztring | A művelet által visszaadott állapotkód |
<művelet állapota> | Igen | Sztring | A művelet állapota, például Succeeded Failed |
Ebben a HTTP-műveletdefinícióban például az attribútum annak az runtimeConfiguration.staticResult.name
attribútumnak a staticResults
hivatkozására hivatkozikHTTP0
, amelyben a művelethez tartozó makettkimenetek definiálva vannak. Az runtimeConfiguration.staticResult.staticResultOptions
attribútum azt adja meg, hogy a statikus eredménybeállítás a HTTP-műveleten van Enabled
.
"actions": {
"HTTP": {
"inputs": {
"method": "GET",
"uri": "https://www.microsoft.com"
},
"runAfter": {},
"runtimeConfiguration": {
"staticResult": {
"name": "HTTP0",
"staticResultOptions": "Enabled"
}
},
"type": "Http"
}
},
A HTTP-művelet a definícióban staticResults
lévő HTTP0
kimeneteket adja vissza. Ebben a példában az állapotkód esetében a modell kimenete .OK
Fejlécértékek esetén a modell kimenete ."Content-Type": "application/JSON"
A művelet állapota esetén a modell kimenete .Succeeded
"definition": {
"$schema": "<...>",
"actions": { "<...>" },
"contentVersion": "<...>",
"outputs": { "<...>" },
"parameters": { "<...>" },
"staticResults": {
"HTTP0": {
"outputs": {
"headers": {
"Content-Type": "application/JSON"
},
"statusCode": "OK"
},
"status": "Succeeded"
}
},
"triggers": { "<...>" }
},
Kifejezések
A JSON használatával a tervezéskor meglévő literális értékekkel rendelkezhet, például:
"customerName": "Sophia Owen",
"rainbowColors": ["red", "orange", "yellow", "green", "blue", "indigo", "violet"],
"rainbowColorsCount": 7
Olyan értékekkel is rendelkezhet, amelyek futási időig nem léteznek. Ezeknek az értékeknek a megjelenítéséhez használhat kifejezéseket, amelyeket futásidőben értékelnek ki. A kifejezés olyan sorozat, amely egy vagy több függvényt, operátort, változót, explicit értéket vagy állandót tartalmazhat. A munkafolyamat-definícióban a JSON-sztring értékének bármely pontján használhat kifejezéseket a kifejezés előtaggal az at-sign (@) előtaggal. Egy JSON-értéket képviselő kifejezés kiértékelésekor a rendszer a @ karakter eltávolításával nyeri ki a kifejezés törzsét, és mindig egy másik JSON-értéket eredményez.
A korábban definiált customerName
tulajdonság esetében például lekérheti a tulajdonság értékét a paraméterek() függvény használatával egy kifejezésben, és hozzárendelheti az értéket a accountName
tulajdonsághoz:
"customerName": "Sophia Owen",
"accountName": "@parameters('customerName')"
A sztring interpolációja lehetővé teszi, hogy a @ karakter és a kapcsos zárójelek ({}) által burkolt sztringeken belül több kifejezést is használjon. A szintaxis a következő:
@{ "<expression1>", "<expression2>" }
Az eredmény mindig egy sztring, így ez a képesség hasonló a concat()
függvényhez, például:
"customerName": "First name: @{parameters('firstName')} Last name: @{parameters('lastName')}"
Ha egy @ karakterrel kezdődő literális sztringgel rendelkezik, a @karakter előtagja egy másik @ karakterrel, mint feloldó karakter: @@
Az alábbi példák a kifejezések kiértékelésének módját mutatják be:
JSON-érték | Eredmény |
---|---|
"Sophia Owen" | Adja vissza a következő karaktereket: "Sophia Owen" |
"tömb[1]" | A következő karaktereket adja vissza: "tömb[1]" |
"@@" | Ezeket a karaktereket adja vissza egy karakteres sztringként: "@" |
" @" | Ezeket a karaktereket adja vissza két karakteres sztringként: ' @' |
Ezekhez a példákhoz tegyük fel, hogy a "myBirthMonth" értéke "január" és "myAge" egyenlő a 42-es számmal:
"myBirthMonth": "January",
"myAge": 42
Az alábbi példák a következő kifejezések kiértékelésének módját mutatják be:
JSON-kifejezés | Eredmény |
---|---|
"@parameters('myBirthMonth')" | Adja vissza ezt a sztringet: "január" |
"@{parameters('myBirthMonth')}" | Adja vissza ezt a sztringet: "január" |
"@parameters('myAge')" | Adja vissza ezt a számot: 42 |
"@{parameters('myAge')}" | Adja vissza ezt a számot sztringként: "42" |
"Az életkorom @{parameters('myAge')}" | Adja vissza ezt a sztringet: "Az életkorom 42" |
"@concat('My age is ', string(parameters('myAge')))" | Adja vissza ezt a sztringet: "Az életkorom 42" |
"Az életkorom @@{parameters('myAge')}" | Adja vissza ezt a sztringet, amely a következő kifejezést tartalmazza: "Az életkorom @{parameters('myAge')}" |
Amikor vizuálisan dolgozik a munkafolyamat-tervezőben, kifejezéseket hozhat létre a kifejezésszerkesztővel, például:
Ha elkészült, a kifejezés megjelenik a munkafolyamat-definíció megfelelő tulajdonságához, például a searchQuery
következő tulajdonsághoz:
"Search_tweets": {
"inputs": {
"host": {
"connection": {
"name": "@parameters('$connections')['x']['connectionId']"
}
}
},
"method": "get",
"path": "/searchtweets",
"queries": {
"maxResults": 20,
"searchQuery": "Azure @{concat('firstName','', 'LastName')}"
}
},
Kimenetek
outputs
A szakaszban adja meg azokat az adatokat, amelyeket a munkafolyamat a futtatás befejezésekor vissza tud adni. Ha például egy adott állapotot vagy értéket szeretne nyomon követni az egyes futtatásokból, adja meg, hogy a munkafolyamat kimenete ezeket az adatokat adja vissza.
Feljegyzés
Amikor egy szolgáltatás REST API-jából érkező kérelmekre válaszol, ne használja outputs
. Ehelyett használja a Response
művelet típusát.
További információ: Munkafolyamat-eseményindítók és műveletek.
A kimeneti definíciók általános struktúrája a következő:
"outputs": {
"<key-name>": {
"type": "<key-type>",
"value": "<key-value>"
}
}
Attribútum | Kötelező | Típus | Leírás |
---|---|---|---|
<kulcsnév> | Igen | Sztring | A kimeneti visszatérési érték kulcsneve |
<kulcstípus> | Igen | int, float, string, securestring, bool, array, JSON object | A kimeneti visszatérési érték típusa |
<kulcs-érték> | Igen | Ugyanaz, mint a <kulcstípus> | A kimeneti visszatérési érték |
A munkafolyamat-futtatás kimenetének lekéréséhez tekintse át a logikai alkalmazás futtatási előzményeit és részleteit az Azure Portalon, vagy használja a Workflow REST API-t. A kimenetet külső rendszereknek is átadhatja, például a Power BI-t, hogy irányítópultokat hozhasson létre.
Operátorok
A kifejezésekben és függvényekben az operátorok meghatározott feladatokat hajtanak végre, például egy tulajdonságra vagy egy tömb értékének hivatkozására.
Operátor | Task |
---|---|
' |
Ha sztringkonstanst szeretne használni bemenetként vagy kifejezésekben és függvényekben, akkor a sztringet csak egyetlen idézőjellel kell körbefuttatnia, '<myString>' például. Ne használjon idézőjeleket ("" ), amelyek ütköznek a teljes kifejezés JSON-formázásával. Például: Igen: length('Hello') Nem: length("Hello") Tömbök vagy számok átadásakor nincs szükség tördelt írásjelekre. Például: Igen: hossz([1, 2, 3]) Nem: hossz("[1, 2, 3]") |
[] |
Ha egy tömbben vagy egy JSON-objektumon belül egy adott pozícióban (indexben) lévő értékre szeretne hivatkozni, használjon szögletes zárójeleket, például: – A tömb második elemének lekérése: myArray[1] – JSON-objektum tulajdonságainak elérése: 1. példa: setProperty(<object>, '<parent-property>', addProperty(<object>['<parent-property>'], '<child-property>', <value>) 2. példa: lastIndexOf(triggerBody()?['subject'],'some string') |
. |
Ha egy objektum egyik tulajdonságára szeretne hivatkozni, használja a pont operátort. Például egy JSON-objektum tulajdonságának name lekéréséhez customer : "parameters('customer').name" |
? |
Ha futásidejű hiba nélkül szeretne hivatkozni egy objektum nulltulajdonságára, használja a null-figyelmen kívül hagyás (?) operátort. Ha például egy eseményindító null kimeneteit szeretné kezelni, a következő kifejezést használhatja: coalesce(trigger().outputs?.body?['<someProperty>'], '<property-default-value>') |
Functions
Egyes kifejezések olyan futtatókörnyezeti műveletekből szerzik be az értékeiket, amelyek még nem léteznek a munkafolyamat-definíció futtatásakor. Ha kifejezésben szeretne hivatkozni ezekre az értékekre, használhatja a munkafolyamat-definíciós nyelv által biztosított függvényeket .
Következő lépések
- A munkafolyamat-definíció nyelvi műveleteinek és eseményindítóinak ismertetése
- Megismerheti a logikai alkalmazások programozott létrehozását és kezelését a Workflow REST API-val