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.

Parameters

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 Szükséges Type Description
<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 Ugyanaz, mint 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 logikai alkalmazás Tervező 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ő staticResultsstatikus 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 Szükséges Type Description
<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, statusSucceededoutputs amelyeket a művelet utánzatkimenetként ad vissza. Ha igen statusFailed, 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 SucceededFailed

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 staticResultslé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:

Screenshot shows workflow designer and expression editor.

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')['twitter']['connectionId']"
      }
    }
  },
  "method": "get",
  "path": "/searchtweets",
  "queries": {
    "maxResults": 20,
    "searchQuery": "Azure @{concat('firstName','', 'LastName')}"
  }
},

Outputs

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.

Megjegyzé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 Szükséges Type Description
<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.

Operator 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. For example:

Igen: length('Hello')
Nem: length("Hello")

Tömbök vagy számok átadásakor nincs szükség tördelt írásjelekre. For example:

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 futtatókörnyezeti hiba nélkül szeretne nulltulajdonságokra hivatkozni egy objektumban, használja a kérdőjel operátort. Egy eseményindító null kimeneteinek kezeléséhez például ezt a kifejezést használhatja:

@coalesce(trigger().outputs?.body?.<someProperty>, '<property-default-value>')

Funkciók

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 .

További lépések