Áttekintés: Az Azure Logic Apps üzembe helyezésének automatizálása Azure Resource Manager-sablonok használatával

A következőkre vonatkozik: Azure Logic Apps (használat)

Ha készen áll a logikai alkalmazás létrehozásának és üzembe helyezésének automatizálására, kibővítheti a logikai alkalmazás mögöttes munkafolyamat-definícióját egy Azure Resource Manager-sablonba. Ez a sablon határozza meg a logikai alkalmazás kiépítéséhez és üzembe helyezéséhez szükséges infrastruktúrát, erőforrásokat, paramétereket és egyéb információkat. Az üzembe helyezéskor változó értékek paramétereinek definiálásával, más néven paraméterezéssel ismétlődően és következetesen helyezhet üzembe logikai alkalmazásokat a különböző üzembehelyezési igények alapján.

Ha például fejlesztési, tesztelési és éles környezetekben helyezi üzembe az üzembe helyezést, valószínűleg különböző kapcsolati sztringeket használ az egyes környezetekhez. Deklarálhat olyan sablonparamétereket, amelyek különböző kapcsolati sztringeket fogadnak el, majd ezeket a sztringeket külön paraméterfájlban tárolhatja. Így anélkül módosíthatja ezeket az értékeket, hogy frissítenie és újra üzembe kellene helyeznie a sablont. Olyan forgatókönyvek esetén, ahol bizalmas vagy biztonságos paraméterértékekkel rendelkezik, például jelszavakkal és titkos kódokkal, ezeket az értékeket az Azure Key Vault tárolhatja, és a paraméterfájl lekérheti ezeket az értékeket. Ezekben a forgatókönyvekben azonban újból üzembe helyeznénk az aktuális értékek lekérését.

Ez az áttekintés egy logikai alkalmazás munkafolyamat-definícióját tartalmazó Resource Manager-sablon attribútumait ismerteti. A sablon és a munkafolyamat-definíció is JSON-szintaxist használ, de vannak különbségek, mert a munkafolyamat-definíció a munkafolyamat-definíció nyelvi sémáját is követi. A sablonkifejezések és a munkafolyamat-definíciós kifejezések például eltérnek a paraméterek hivatkozási módjától és az általuk elfogadható értékektől.

Tipp

A legtöbb üzembe helyezésre kész, érvényes paraméteres logikaialkalmazás-sablon beszerzésének legegyszerűbb módja a Visual Studio (ingyenes közösségi kiadás vagy újabb) és az Azure Logic Apps Tools for Visual Studio használata. Ezután létrehozhatja a logikai alkalmazást a Visual Studióban , vagy megkereshet és letölthet egy meglévő logikai alkalmazást az Azure-ból a Visual Studióba.

Vagy létrehozhat logikaialkalmazás-sablonokat Azure PowerShell a LogicAppTemplate modullal.

A jelen témakörben szereplő példalogikaalkalmazás egy Office 365 Outlook-eseményindítót használ, amely egy új e-mail érkezésekor aktiválódik, valamint egy Azure Blob Storage műveletet, amely létrehoz egy blobot az e-mail törzséhez, és feltölti azt egy Azure Storage-tárolóba. A példák azt is bemutatják, hogyan paraméterezheti az üzembe helyezés során változó értékeket.

A Resource Manager sablonokról az alábbi témakörökben talál további információt:

A logikai alkalmazásokra, integrációs fiókokra, integrációs fiókösszetevőkre és integrációs szolgáltatási környezetekre vonatkozó sablonerőforrás-információkért lásd: Microsoft.Logic erőforrástípusok.

A logikai alkalmazássablonok mintáit az alábbi példákban találja:

A Logic Apps REST API-hoz kezdje az Azure Logic Apps REST API áttekintésével.

Sablonszerkezet

A legfelső szinten egy Resource Manager-sablon követi ezt a struktúrát, amelyet az Azure Resource Manager sablonstruktúra és szintaxis témakör részletesen ismertet:

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   "parameters": {},
   "variables": {},
   "functions": [],
   "resources": [],
   "outputs": {}
}

Logikaialkalmazás-sablon esetén elsősorban az alábbi sablonobjektumokkal kell dolgoznia:

Attribútum Leírás
parameters Deklarálja a sablonparamétereket az Azure-beli üzembe helyezés erőforrásainak létrehozása és testreszabása során használandó értékek elfogadásához. Ezek a paraméterek például elfogadják a logikai alkalmazás nevének és helyének, kapcsolatainak és az üzembe helyezéshez szükséges egyéb erőforrásoknak az értékeit. Ezeket a paraméterértékeket egy paraméterfájlban tárolhatja, amelyről a jelen témakör későbbi részében olvashat. Általános részletekért lásd: Paraméterek – Resource Manager sablonstruktúra és szintaxis.
resources Meghatározza azokat az erőforrásokat , amelyek létrehozhatók vagy frissíthetők és üzembe helyezhetők egy Azure-erőforráscsoportban, például a logikai alkalmazásban, a kapcsolatokban, az Azure Storage-fiókokban stb. Általános részletekért lásd: Erőforrások – Resource Manager sablonstruktúra és szintaxis.

A logikaialkalmazás-sablon a következő fájlnévformátumot használja:

<logic-app-name>. Json

Fontos

A sablonszintaxis megkülönbözteti a kis- és nagybetűk megkülönböztetését, ezért ügyeljen arra, hogy konzisztens burkolatot használjon.

Sablon paraméterei

A logikaialkalmazás-sablon több parameters objektummal rendelkezik, amelyek különböző szinteken léteznek, és különböző függvényeket hajtanak végre. A legfelső szinten például deklarálhat sablonparamétereket az azure-beli erőforrások létrehozásakor és üzembe helyezésekor elfogadandó és használható értékekhez, például:

  • A logikai alkalmazás

  • A logikai alkalmazás által más szolgáltatásokhoz és rendszerekhez felügyelt összekötőkkel való hozzáféréshez használt kapcsolatok

  • Egyéb erőforrások, amelyekre a logikai alkalmazásnak szüksége van az üzembe helyezéshez

    Ha például a logikai alkalmazás egy integrációs fiókot használ a vállalatközi (B2B) forgatókönyvekhez, a sablon legfelső szintű parameters objektuma deklarálja azt a paramétert, amely elfogadja az adott integrációs fiók erőforrás-azonosítóját.

Íme egy paraméterdefiníció általános struktúrája és szintaxisa, amelyet a Paraméterek – Resource Manager sablonstruktúra és -szintaxis teljes mértékben ismertet:

"<parameter-name>": {
   "type": "<parameter-type>",
   "defaultValue": <default-parameter-value>,
   <other-parameter-attributes>,
   "metadata": {
      "description": "<parameter-description>"
   }
},

Ez a példa csak az azure-beli erőforrások létrehozásához és üzembe helyezéséhez használt értékek sablonparamétereit mutatja be:

  • A logikai alkalmazás neve és helye
  • A logikai alkalmazáshoz csatolt integrációs fiókhoz használandó azonosító
{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   // Template parameters
   "parameters": {
      "LogicAppName": {
         "type": "string",
         "minLength": 1,
         "maxLength": 80,
         "defaultValue": "MyLogicApp",
         "metadata": {
            "description": "The resource name for the logic app"
         }
      },
      "LogicAppLocation": {
         "type": "string",
         "minLength": 1,
         "defaultValue": "[resourceGroup().location]",
         "metadata": {
            "description": "The resource location for the logic app"
         }
      },
      "LogicAppIntegrationAccount": {
         "type":"string",
         "minLength": 1,
         "defaultValue": "/subscriptions/<Azure-subscription-ID>/resourceGroups/fabrikam-integration-account-rg/providers/Microsoft.Logic/integrationAccounts/fabrikam-integration-account",
         "metadata": {
            "description": "The ID to use for the integration account"
         }
      }
   },
   "variables": {},
   "functions": [],
   "resources": [],
   "outputs": {}
}

Az olyan paraméterek kivételével, amelyek bizalmas vagy biztonságos értékeket kezelnek, például felhasználóneveket, jelszavakat és titkos kulcsokat, ezek a paraméterek attribútumokat tartalmaznak defaultValue , bár bizonyos esetekben az alapértelmezett értékek üres értékek. Az ezekhez a sablonparaméterekhez használandó üzembehelyezési értékeket a jelen témakör későbbi részében ismertetett mintaparaméter-fájl adja meg.

A sablonparaméterek biztonságossá tételével kapcsolatos további információkért tekintse meg az alábbi témaköröket:

Más sablonobjektumok gyakran hivatkoznak sablonparaméterekre, hogy használhassák a sablonparamétereken áthaladó értékeket, például:

  • A sablon erőforrás-objektuma, amelyről a jelen témakör későbbi részében olvashat, meghatározza az Azure-ban a létrehozni és üzembe helyezni kívánt erőforrásokat, például a logikai alkalmazás erőforrás-definícióját. Ezek az erőforrások gyakran sablonparaméter-értékeket használnak, például a logikai alkalmazás nevét, helyét és kapcsolati adatait.

  • A logikai alkalmazás erőforrás-definíciójának mélyebb szintjén a munkafolyamat-definíció paraméterobjektuma deklarálja a logikai alkalmazás futtatókörnyezetében használandó értékek paramétereit. Deklarálhatja például a http-eseményindító által a hitelesítéshez használt felhasználónév és jelszó munkafolyamat-definíciós paramétereit. A munkafolyamat-definíciós paraméterek értékeinek megadásához használja azt az parameters objektumot, amely kívül esik a munkafolyamat-definíción, de továbbra is a logikai alkalmazás erőforrás-definíciójában van . Ebben a külső parameters objektumban hivatkozhat korábban deklarált sablonparaméterekre, amelyek egy paraméterfájlból fogadnak el értékeket az üzembe helyezéskor.

Paraméterekre való hivatkozáskor a sablonkifejezések és -függvények más szintaxist használnak, és másképp viselkednek, mint a munkafolyamat-definíciós kifejezések és függvények. Ezekről a különbségekről a jelen témakör későbbi, Paraméterekre mutató hivatkozások című szakaszában talál további információt.

Ajánlott eljárások – sablonparaméterek

Íme néhány ajánlott eljárás a paraméterek meghatározásához:

  • Csak olyan értékekhez deklaráljon paramétereket, amelyek az üzembe helyezési igényektől függően változnak. Ne deklaráljon paramétereket olyan értékekhez, amelyek a különböző üzembehelyezési követelményekben azonosak maradnak.

  • Adja meg az defaultValue attribútumot, amely üres értékeket adhat meg az összes paraméterhez, kivéve a bizalmas vagy védeni kívánt értékeket. Mindig használjon biztonságos paramétereket a felhasználónevekhez, jelszavakhoz és titkos kódokhoz. A bizalmas paraméterértékek elrejtéséhez vagy védelméhez kövesse az alábbi témakörökben található útmutatást:

  • Ha meg szeretné különböztetni a sablonparaméterek nevét a munkafolyamat-definíciós paraméternevektől, használhat leíró sablonparaméterneveket, például: TemplateFabrikamPassword

A sablonokkal kapcsolatos ajánlott eljárásokért lásd: Ajánlott eljárások sablonparaméterekhez.

Sablonparaméterek fájlja

A sablonparaméterek értékeinek megadásához tárolja ezeket az értékeket egy paraméterfájlban. Így az üzembe helyezési igényeknek megfelelően különböző paraméterfájlokat használhat. A fájlnév formátuma a következő:

  • Logikaialkalmazás-sablon fájlneve: <logic-app-name.json>
  • Paraméterfájl neve: <logic-app-name.parameters.json>

Az alábbi struktúra található a paraméterfájlban, amely tartalmaz egy key vault-referenciát, amellyel biztonságos paraméterértéket adhat át az Azure-Key Vault:

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
   "contentVersion": "1.0.0.0",
   // Template parameter values
   "parameters": {
      "<parameter-name-1>": {
         "value": "<parameter-value>"
      },
      "<parameter-name-2>": {
         "value": "<parameter-value>"
      },
      "<secured-parameter-name>": {
         "reference": {
            "keyVault": {
               "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/Microsoft.KeyVault/vaults/<key-vault-name>"
            },
            "secretName: "<secret-name>"
         }
      },
      <other-parameter-values>
   }
}

Ez a példaparaméter-fájl a témakör korábbi részében deklarált sablonparaméterek értékeit adja meg:

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
   "contentVersion": "1.0.0.0",
   // Template parameter values
   "parameters": {
      "LogicAppName": {
         "value": "Email-Processor-Logic-App"
      },
      "LogicAppLocation": {
         "value": "westeurope"
      }
   }
}

Sablonerőforrások

A sablon rendelkezik egy resources objektummal, amely egy tömb, amely definíciókat tartalmaz az Azure-ban létrehozandó és üzembe helyezendő erőforrásokhoz, például a logikai alkalmazás erőforrás-definíciójához, a kapcsolati erőforrás-definíciókhoz és minden más erőforráshoz, amelyre a logikai alkalmazásnak szüksége van az üzembe helyezéshez.

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   "parameters": {<template-parameters>},
   "variables": {},
   "functions": [],
   "resources": [
      {
         <logic-app-resource-definition>
      },
      // Start connection resource definitions
      {
         <connection-resource-definition-1>
      },
      {
         <connection-resource-definition-2>
      }
   ],
   "outputs": {}
}

Megjegyzés

A sablonok több logikai alkalmazás erőforrás-definícióit is tartalmazhatják, ezért győződjön meg arról, hogy minden logikaialkalmazás-erőforrás ugyanazt az Azure-erőforráscsoportot adja meg. Amikor a Visual Studióval helyezi üzembe a sablont egy Azure-erőforráscsoportban, a rendszer kérni fogja, hogy melyik logikai alkalmazást szeretné megnyitni. Emellett az Azure-erőforráscsoport-projekt több sablont is tartalmazhat, ezért amikor a rendszer kéri, válassza ki a megfelelő paraméterfájlt.

Erőforrás-definíciók megtekintése

Egy Azure-erőforráscsoport összes erőforrásának erőforrás-definícióinak áttekintéséhez töltse le a logikai alkalmazást az Azure-ból a Visual Studióba, amely a legegyszerűbb módja egy olyan érvényes paraméteres logikaialkalmazás-sablon létrehozásának, amely többnyire készen áll az üzembe helyezésre.

A sablonerőforrásokról és azok attribútumairól az alábbi témakörökben talál általános információkat:

Logikai alkalmazás erőforrás-definíciója

A logikai alkalmazás munkafolyamat-erőforrás-definíciója egy sablonban az properties objektummal kezdődik, amely az alábbi információkat tartalmazza:

  • A logikai alkalmazás állapota az üzembe helyezéskor
  • A logikai alkalmazás által használt integrációs fiók azonosítója
  • A logikai alkalmazás munkafolyamat-definíciója
  • Egy parameters objektum, amely beállítja a futtatókörnyezetben használni kívánt értékeket
  • A logikai alkalmazás egyéb erőforrásadatai, például név, típus, hely, futtatókörnyezet konfigurációs beállításai stb.
{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   "parameters": {<template-parameters>},
   "variables": {},
   "functions": [],
   "resources": [
      {
         // Start logic app resource definition
         "properties": {
            "state": "<Enabled or Disabled>",
            "integrationAccount": {
               "id": "[parameters('LogicAppIntegrationAccount')]" // Template parameter reference
            },
            "definition": {<workflow-definition>},
            "parameters": {<workflow-definition-parameter-values>},
            "accessControl": {},
            "runtimeConfiguration": {}
         },
         "name": "[parameters('LogicAppName')]", // Template parameter reference
         "type": "Microsoft.Logic/workflows",
         "location": "[parameters('LogicAppLocation')]", // Template parameter reference
         "tags": {
           "displayName": "LogicApp"
         },
         "apiVersion": "2019-05-01",
         "dependsOn": [
         ]
      }
      // End logic app resource definition
   ],
   "outputs": {}
}

A logikai alkalmazás erőforrás-definíciójára jellemző attribútumok:

Attribútum Kötelező Típus Leírás
state Igen Sztring A logikai alkalmazás állapota az üzembe helyezéskor, ami Enabled azt jelenti, hogy a logikai alkalmazás élő állapotban van, és Disabled azt jelenti, hogy a logikai alkalmazás inaktív. Ha például nem áll készen a logikai alkalmazás éles üzembe helyezésére, de piszkozatverziót szeretne üzembe helyezni, használhatja a Disabled lehetőséget.
integrationAccount No Objektum Ha a logikai alkalmazás egy integrációs fiókot használ, amely üzleti (B2B) forgatókönyvek összetevőit tárolja, ez az objektum tartalmazza az id attribútumot, amely meghatározza az integrációs fiók azonosítóját.
definition Yes Objektum A logikai alkalmazás mögöttes munkafolyamat-definíciója, amely ugyanaz az objektum, amely kódnézetben jelenik meg, és teljes körűen le van írva a Sémahivatkozás a munkafolyamat-definíció nyelvéhez című témakörben. Ebben a munkafolyamat-definícióban az parameters objektum deklarálja a logikai alkalmazás futtatókörnyezetében használandó értékek paramétereit. További információ: Munkafolyamat-definíció és paraméterek.

A logikai alkalmazás munkafolyamat-definíciójában szereplő attribútumok megtekintéséhez váltson a "tervező nézetről" a "kódnézetre" a Azure Portal vagy a Visual Studióban, vagy egy olyan eszközzel, mint az Azure Resource Explorer.

parameters No Objektum A logikai alkalmazás futtatókörnyezetében használandó munkafolyamat-definíciós paraméterértékek . Ezeknek az értékeknek a paraméterdefiníciói a munkafolyamat-definíció paraméterobjektumában jelennek meg. Továbbá, ha a logikai alkalmazás felügyelt összekötőket használ más szolgáltatások és rendszerek eléréséhez, ez az objektum tartalmaz egy $connections objektumot, amely beállítja a kapcsolati értékeket a futtatókörnyezetben való használatra.
accessControl No Objektum A logikai alkalmazás biztonsági attribútumainak megadásához, például az IP-hozzáférés kérési eseményindítókra való korlátozásához vagy az előzmények bemeneteinek és kimeneteinek futtatásához. További információ: Biztonságos hozzáférés a logikai alkalmazásokhoz.
runtimeConfiguration No Objektum A logikai alkalmazás futásidejű viselkedését szabályozó tulajdonságok operationOptions megadásához. A logikai alkalmazást például nagy átviteli sebességű módban futtathatja.

A Logic Apps-objektumok erőforrásdefinícióival kapcsolatos további információkért lásd: Microsoft.Logic erőforrástípusok:

Munkafolyamat-definíció és paraméterek

A logikai alkalmazás munkafolyamat-definíciója megjelenik az definition objektumban, amely a properties logikai alkalmazás erőforrás-definíciójában található objektumban jelenik meg. Ez definition az objektum ugyanaz az objektum, amely kódnézetben jelenik meg, és teljes körűen le van írva a Sémahivatkozás a munkafolyamat-definíció nyelvéhez című témakörben. A munkafolyamat-definíció tartalmaz egy belső parameters deklarációs objektumot, amelyben új vagy meglévő paramétereket határozhat meg a munkafolyamat-definíció által futásidőben használt értékekhez. Ezután hivatkozhat ezekre a paraméterekre a munkafolyamat eseményindítójában vagy műveleteiben. Alapértelmezés szerint ez az parameters objektum üres, hacsak a logikai alkalmazás nem hoz létre kapcsolatokat más szolgáltatásokhoz és rendszerekhez felügyelt összekötőkkel.

A munkafolyamat-definíciós paraméterek értékeinek beállításához használja a parameters munkafolyamat-definíción kívül eső, de a logikai alkalmazás erőforrás-definíciójában lévő objektumot. Ebben a külső parameters objektumban hivatkozhat a korábban deklarált sablonparaméterekre, amelyek egy paraméterfájlból fogadnak el értékeket az üzembe helyezéskor.

Tipp

Ajánlott eljárásként ne hivatkozzon közvetlenül az üzembe helyezéskor kiértékelt sablonparaméterekre a munkafolyamat-definíción belül. Ehelyett deklaráljon egy munkafolyamat-definíciós paramétert, amelyet aztán beállíthat a parametersmunkafolyamat-definíción kívüli , de a logikai alkalmazás erőforrás-definíciójában lévő objektumban. További információ: Paraméterekre mutató hivatkozások.

Ez a szintaxis azt mutatja be, hogy hol deklarálhat paramétereket mind a sablon, mind a munkafolyamat-definíció szintjén, valamint azt, hogy hol állíthatja be ezeket a paraméterértékeket a sablonra és a munkafolyamat-definíciós paraméterekre hivatkozva:

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   // Template parameters
   "parameters": {
      "<template-parameter-name>": {
         "type": "<parameter-type>",
         "defaultValue": "<parameter-default-value>",
         "metadata": {
            "description": "<parameter-description>"
         }
      }
   },
   "variables": {},
   "functions": [],
   "resources": [
      {
         // Start logic app resource definition
         "properties": {
            <other-logic-app-resource-properties>,
            "definition": {
               "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
               "actions": {<action-definitions>},
               // Workflow definition parameters
               "parameters": {
                  "<workflow-definition-parameter-name>": {
                     "type": "<parameter-type>",
                     "defaultValue": "<parameter-default-value>",
                     "metadata": {
                        "description": "<parameter-description>"
                     }
                  }
               },
               "triggers": {
                  "<trigger-name>": {
                     "type": "<trigger-type>",
                     "inputs": {
                         // Workflow definition parameter reference
                         "<attribute-name>": "@parameters('<workflow-definition-parameter-name')"
                     }
                  }
               },
               <...>
            },
            // Workflow definition parameter value
            "parameters": {
               "<workflow-definition-parameter-name>": { 
                  "value": "[parameters('<template-parameter-name>')]"
               }
            },
            "accessControl": {}
         },
         <other-logic-app-resource-definition-attributes>
      }
      // End logic app resource definition
   ],
   "outputs": {}
}

Biztonságos munkafolyamat-definíciós paraméterek

Olyan munkafolyamat-definíciós paraméter esetében, amely futásidőben bizalmas információkat, jelszavakat, hozzáférési kulcsokat vagy titkos kulcsokat kezel, deklarálhatja vagy szerkesztheti a paramétert a vagy secureobject paramétertípus securestring használatához. Erre a paraméterre a munkafolyamat-definícióban és az egészben hivatkozhat. A sablon legfelső szintjén deklaráljon egy azonos típusú paramétert, amely ezeket az információkat az üzembe helyezéskor kezeli.

A munkafolyamat-definíciós paraméter értékének beállításához használja a parameters munkafolyamat-definíción kívül eső, de a logikai alkalmazás erőforrás-definíciójában lévő objektumot a sablonparaméterre való hivatkozáshoz. Végül, ha át szeretné adni az értéket a sablonparaméternek az üzembe helyezéskor, tárolja ezt az értéket az Azure Key Vault, és hivatkozzon erre a kulcstartóra a sablon által az üzembe helyezéskor használt paraméterfájlban.

Ez a példasablon bemutatja, hogyan hajthatja végre ezeket a feladatokat úgy, hogy szükség esetén biztonságos paramétereket határoz meg, hogy az értékeiket az Azure Key Vault tárolhassa:

  • Biztonságos paraméterek deklarálása a hozzáférés hitelesítéséhez használt értékekhez.
  • Ezeket az értékeket a sablon és a munkafolyamat-definíció szintjén is használhatja.
  • Adja meg ezeket az értékeket egy paraméterfájl használatával.

Sablon

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   "parameters": {
      <previously-defined-template-parameters>,
      // Additional template parameters for passing values to use in workflow definition
      "TemplateAuthenticationType": {
         "type": "string",
         "defaultValue": "",
         "metadata": {
            "description": "The type of authentication used for the Fabrikam portal"
         }
      },
      "TemplateFabrikamPassword": {
         "type": "securestring",
         "metadata": {
            "description": "The password for the Fabrikam portal"
         }
      },
      "TemplateFabrikamUserName": {
         "type": "securestring",
         "metadata": {
            "description": "The username for the Fabrikam portal"
         }
      }
   },
   "variables": {},
   "functions": [],
   "resources": [
      {
         // Start logic app resource definition
         "properties": {
            <other-logic-app-resource-properties>,
            // Start workflow definition
            "definition": {
               "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
               "actions": {<action-definitions>},
               // Workflow definition parameters
               "parameters": {
                  "authenticationType": {
                     "type": "string",
                     "defaultValue": "",
                     "metadata": {
                        "description": "The type of authentication used for the Fabrikam portal"
                     }
                  },
                  "fabrikamPassword": {
                     "type": "securestring",
                     "metadata": {
                        "description": "The password for the Fabrikam portal"
                     }
                  },
                  "fabrikamUserName": {
                     "type": "securestring",
                     "metadata": {
                        "description": "The username for the Fabrikam portal"
                     }
                  }
               },
               "triggers": {
                  "HTTP": {
                     "inputs": {
                        "authentication": {
                           // Reference workflow definition parameters
                           "password": "@parameters('fabrikamPassword')",
                           "type": "@parameters('authenticationType')",
                           "username": "@parameters('fabrikamUserName')"
                        }
                     },
                     "recurrence": {<...>},
                     "type": "Http"
                  }
               },
               <...>
            },
            // End workflow definition
            // Start workflow definition parameter values
            "parameters": {
               "authenticationType": {
                  "value": "[parameters('TemplateAuthenticationType')]" // Template parameter reference
               },
               "fabrikamPassword": {                  
                  "value": "[parameters('TemplateFabrikamPassword')]" // Template parameter reference
               },
               "fabrikamUserName": {
                  "value": "[parameters('TemplateFabrikamUserName')]" // Template parameter reference
               }
            },
            "accessControl": {}
         },
         <other-logic-app-resource-attributes>
      }
      // End logic app resource definition
   ],
   "outputs": {}
}

Paraméterfájl

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
   "contentVersion": "1.0.0.0",
   // Template parameter values
   "parameters": {
      <previously-defined-template-parameter-values>,
     "TemplateAuthenticationType": {
        "value": "Basic"
     },
     "TemplateFabrikamPassword": {
        "reference": {
           "keyVault": {
              "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/Microsoft.KeyVault/vaults/fabrikam-key-vault"
           },
           "secretName": "FabrikamPassword"
        }
     },
     "TemplateFabrikamUserName": {
        "reference": {
           "keyVault": {
              "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/Microsoft.KeyVault/vaults/fabrikam-key-vault"
           },
           "secretName": "FabrikamUserName"
        }
     }
   }
}

Ajánlott eljárások – munkafolyamat-definíciós paraméterek

Annak érdekében, hogy a Logic App Designer megfelelően tudja megjeleníteni a munkafolyamat-definíció paramétereit, kövesse az alábbi ajánlott eljárásokat:

A munkafolyamat-definíciós paraméterekkel kapcsolatos további információkért lásd: Paraméterek – Munkafolyamat-definíció nyelve.

Kapcsolati erőforrás-definíciók

Amikor a logikai alkalmazás felügyelt összekötők használatával hoz létre és használ kapcsolatokat más szolgáltatásokhoz és rendszerekhez, a sablon objektuma resources tartalmazza a kapcsolatok erőforrás-definícióit. Bár egy logikai alkalmazásból hoz létre kapcsolatokat, a kapcsolatok különálló Azure-erőforrások, saját erőforrásdefiníciókkal. A kapcsolati erőforrás-definíciók áttekintéséhez töltse le a logikai alkalmazást az Azure-ból a Visual Studióba, amely a legegyszerűbb módja egy érvényes paraméteres logikai alkalmazássablon létrehozásának, amely többnyire üzembe helyezésre kész.

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   "parameters": {<template-parameters>},
   "variables": {},
   "functions": [],
   "resources": [
      {
         <logic-app-resource-definition>
      },
      // Start connection resource definitions
      {
         <connection-resource-definition-1>
      },
      {
         <connection-resource-definition-2>
      }
   ],
   "outputs": {}
}

A kapcsolati erőforrás-definíciók a sablon legfelső szintű paramétereire hivatkoznak az értékeikhez, így ezeket az értékeket üzembe helyezéskor egy paraméterfájl használatával adhatja meg. Győződjön meg arról, hogy a kapcsolatok ugyanazt az Azure-erőforráscsoportot és helyet használják, mint a logikai alkalmazás.

Íme egy példa erőforrás-definíció egy Office 365 Outlook-kapcsolatra és a megfelelő sablonparaméterekre:

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   // Template parameters
   "parameters": {
      "LogicAppName": {<parameter-definition>},
      "LogicAppLocation": {<parameter-definition>},
      "office365_1_Connection_Name": {
         "type": "string",
         "defaultValue": "office365",
         "metadata": {
            "description": "The resource name for the Office 365 Outlook connection"
         }
      },
      "office365_1_Connection_DisplayName": {
         "type": "string",
         "defaultValue": "",
         "metadata": {
            "description": "The display name for the Office 365 Outlook connection"
         }
      }
   },
   "variables": {},
   "functions": [],
   "resources": [
      {
         <logic-app-resource-definition>
      },
      // Office 365 Outlook API connection resource definition
      {
         "type": "Microsoft.Web/connections",
         "apiVersion": "2016-06-01",
         // Template parameter reference for connection name
         "name": "[parameters('office365_1_Connection_Name')]",
         // Template parameter reference for connection resource location. Must match logic app location.
         "location": "[parameters('LogicAppLocation')]",
         "properties": {
            "api": {
               // Connector ID
               "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('LogicAppLocation'), '/managedApis/', 'office365')]"
            },
            // Template parameter reference for connection display name
            "displayName": "[parameters('office365_1_Connection_DisplayName')]"
         }
      }
   ],
   "outputs": {}
}

A logikai alkalmazás erőforrásdefiníciója az alábbi módokon is működik a kapcsolati erőforrás-definíciókkal:

  • A munkafolyamat-definícióban az parameters objektum deklarál egy paramétert $connections a logikai alkalmazás futtatókörnyezetében használandó kapcsolati értékekhez. Emellett a kapcsolatot létrehozó eseményindító vagy művelet a paraméteren áthaladó $connections megfelelő értékeket használja.

  • A munkafolyamat-definíción kívül , de még mindig a logikai alkalmazás erőforrás-definíciójában egy másik parameters objektum állítja be a paraméter futásidejű értékeit a $connections megfelelő sablonparaméterekre való hivatkozással. Ezek az értékek sablonkifejezésekkel hivatkoznak azokra az erőforrásokra, amelyek biztonságosan tárolják a logikai alkalmazásban lévő kapcsolatok metaadatait.

    A metaadatok tartalmazhatnak például kapcsolati sztringeket és hozzáférési jogkivonatokat, amelyeket az Azure Key Vault tárolhat. Ha ezeket az értékeket át szeretné adni a sablonparamétereknek, hivatkozzon erre a kulcstartóra a sablon által az üzembe helyezéskor használt paraméterfájlban . A hivatkozási paraméterek különbségeiről a jelen témakör későbbi, Paraméterekre mutató hivatkozások című szakaszában talál további információt.

    Amikor a logikai alkalmazás munkafolyamat-definícióját kódnézetben nyitja meg a Azure Portal vagy a Visual Studióval, az objektum a $connections munkafolyamat-definíción kívül, de ugyanazon a szinten jelenik meg. Ez a kódnézetben történő rendezés megkönnyíti a paraméterek hivatkozását a munkafolyamat-definíció manuális frissítések esetén:

    {
       "$connections": {<workflow-definition-parameter-connection-values-runtime},
       "definition": {<workflow-definition>}
    }
    
  • A logikai alkalmazás erőforrás-definíciója rendelkezik egy dependsOn objektummal, amely meghatározza a logikai alkalmazás által használt kapcsolatok függőségeit.

Minden létrehozott kapcsolat egyedi névvel rendelkezik az Azure-ban. Ha több kapcsolatot hoz létre ugyanahhoz a szolgáltatáshoz vagy rendszerhez, a rendszer minden kapcsolatnevet hozzáfűz egy számhoz, amely minden újonnan létrehozott kapcsolathoz (például office365, office365-1stb.) növekszik.

Ez a példa a logikai alkalmazás erőforrás-definíciója és az Outlook Office 365 kapcsolati erőforrás-definíciója közötti interakciókat mutatja be:

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   // Template parameters
   "parameters": {
      "LogicAppName": {<parameter-definition>},
      "LogicAppLocation": {<parameter-definition>},
      "office365_1_Connection_Name": {<parameter-definition>},
      "office365_1_Connection_DisplayName": {<parameter-definition>}
   },
   "variables": {},
   "functions": [],
   "resources": [
      {
         // Start logic app resource definition
         "properties": {
            <...>,
            "definition": {
               <...>,
               "parameters": {
                  // Workflow definition "$connections" parameter
                  "$connections": {
                     "defaultValue": {},
                     "type": "Object"
                  }
               },
               <...>
            },
            "parameters": {
               // Workflow definition "$connections" parameter values to use at runtime
               "$connections": {
                  "value": {
                     "office365": {
                        // Template parameter references
                        "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('LogicAppLocation'), '/managedApis/', 'office365')]",
                        "connectionId": "[resourceId('Microsoft.Web/connections', parameters('office365_1_Connection_Name'))]",
                        "connectionName": "[parameters('office365_1_Connection_Name')]"
                     }
                  }
               }
            }
         },
         <other-logic-app-resource-information>,
         "dependsOn": [
            "[resourceId('Microsoft.Web/connections', parameters('office365_1_Connection_Name'))]"
         ]
         // End logic app resource definition
      },
      // Office 365 Outlook API connection resource definition
      {
         "type": "Microsoft.Web/connections",
         "apiVersion": "2016-06-01",
         // Template parameter reference for connection name
         "name": "[parameters('office365_1_Connection_Name')]",
         // Template parameter reference for connection resource location. Must match logic app location.
         "location": "[parameters('LogicAppLocation')]",
         "properties": {
            "api": {
               // Connector ID
               "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('LogicAppLocation'), '/managedApis/', 'office365')]"
            },
            // Template parameter reference for connection display name
            "displayName": "[parameters('office365_1_Connection_DisplayName')]"
         }
      }
   ],
   "outputs": {}
}

Biztonságos kapcsolati paraméterek

A bizalmas adatokat, jelszavakat, hozzáférési kulcsokat vagy titkos kulcsokat kezelő kapcsolatparaméterek esetében a kapcsolat erőforrás-definíciója tartalmaz egy parameterValues objektumot, amely név-érték pár formátumban adja meg ezeket az értékeket. Ezeknek az adatoknak az elrejtéséhez deklarálhatja vagy szerkesztheti az értékek sablonparamétereit a vagy secureobject paramétertípusokkalsecurestring. Ezután ezeket az adatokat az Azure Key Vault tárolhatja. Ha ezeket az értékeket át szeretné adni a sablonparamétereknek, hivatkozzon erre a kulcstartóra a sablon által az üzembe helyezéskor használt paraméterfájlban .

Íme egy példa, amely megadja egy Azure Blob Storage kapcsolat fióknevét és hozzáférési kulcsát:

Paraméterfájl

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
   "contentVersion": "1.0.0.0",
   // Template parameter values
   "parameters": {
      "LogicAppName": {
         "value": "Email-Processor-Logic-App"
      },
      "LogicAppLocation": {
         "value": "westeurope"
      },
      "azureblob_1_Connection_Name": {
         "value": "Fabrikam-Azure-Blob-Storage-Connection"
      },
      "azureblob_1_Connection_DisplayName": {
         "value": "Fabrikam-Storage"
      },
      "azureblob_1_accountName": {
         "value": "Fabrikam-Storage-Account"
      },
      "azureblob_1_accessKey": {
         "reference": {
            "keyVault": {
               "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/Microsoft.KeyVault/vaults/fabrikam-key-vault"
            },
            "secretName": "FabrikamStorageKey"
         }
      }
   }
}

Sablon

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   // Template parameters
   "parameters": {
      "LogicAppName": {<parameter-definition>},
      "LogicAppLocation": {<parameter-definition>},
      "azureblob_1_Connection_Name": {<parameter-definition>},
      "azureblob_1_Connection_DisplayName": {<parameter-definition>},
      "azureblob_1_accountName": {
         "type": "string",
         "defaultValue": "",
         "metadata": {
            "description": "Name of the storage account the connector should use."
         }
      },
      "azureblob_1_accessKey": {
         "type": "secureobject",
         "metadata": {
            "description": "Specify a valid primary/secondary storage account access key."
         }
      }
   },
   "variables": {},
   "functions": [],
   "resources": [
      {
         "properties": {
            "state": "Disabled",
            "definition": {
               "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
               "actions": {
                  // Azure Blob Storage action
                  "Create_blob": {
                     "type": "ApiConnection",
                     "inputs": {
                        "host": {
                           "connection": {
                              // Workflow definition parameter reference for values to use at runtime
                              "name": "@parameters('$connections')['azureblob']['connectionId']"
                           }
                        },
                     },
                     "method": "post",
                     "body": "@triggerBody()?['Body']",
                     "path": "/datasets/default/files",
                     "queries": {
                        "folderPath": "/emails",
                        "name": "@triggerBody()?['Subject']",
                        "queryParametersSingleEncoded": true
                     },
                     "runAfter": {},
                     "runtimeConfiguration": {
                        "contentTransfer": {
                           "transferMode": "Chunked"
                        }
                     }
                  }
               },
               "parameters": {
                  // Workflow definition parameter for values to use at runtime
                  "$connections": {
                     "defaultValue": {},
                     "type": "Object"
                  }
               },
               "triggers": {<trigger-definition>},
               "contentVersion": "1.0.0.0",
               "outputs": {}
            },
            "parameters": {
               "$connections": {
                  "value": {
                     // Template parameter references for values to use at runtime
                     "azureblob": {
                        "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('LogicAppLocation'), '/managedApis/', 'azureblob')]",
                        "connectionId": "[resourceId('Microsoft.Web/connections', parameters('azureblob_1_Connection_Name'))]",
                        "connectionName": "[parameters('azureblob_1_Connection_Name')]"
                    }
                  }
               }
            },
            "name": "[parameters('LogicAppName')]",
            "type": "Microsoft.Logic/workflows",
            "location": "[parameters('LogicAppLocation')]",
            "tags": {
               "displayName": "LogicApp"
            },
            "apiVersion": "2019-05-01",
            // Template parameter reference for value to use at deployment
            "dependsOn": [
               "[resourceId('Microsoft.Web/connections', parameters('azureblob_1_Connection_Name'))]"
            ]
         }
      },
      // Azure Blob Storage API connection resource definition
      {
         "type": "Microsoft.Web/connections",
         "apiVersion": "2016-06-01",
         "name": "[parameters('azureblob_1_Connection_Name')]",
         "location": "[parameters('LogicAppLocation')]",
         "properties": {
            "api": {
               "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('LogicAppLocation'), '/managedApis/', 'azureblob')]"
            },
            "displayName": "[parameters('azureblob_1_Connection_DisplayName')]",
            // Template parameter reference for values to use at deployment
            "parameterValues": {
               "accountName": "[parameters('azureblob_1_accountName')]",
               "accessKey": "[parameters('azureblob_1_accessKey')]"
            }
         }
      }
   ],
   "outputs": {}
}

Kapcsolatok hitelesítése

Az üzembe helyezés után a logikai alkalmazás végpontok között működik érvényes paraméterekkel. A hitelesítő adatok hitelesítéséhez azonban továbbra is engedélyeznie kell az OAuth-kapcsolatokat érvényes hozzáférési jogkivonatok létrehozásához. További információ: OAuth-kapcsolatok engedélyezése.

Egyes kapcsolatok támogatják az Azure Active Directory (Azure AD) szolgáltatásnév használatát a Azure AD regisztrált logikai alkalmazások kapcsolatainak engedélyezéséhez. Ez az Azure Data Lake-kapcsolati erőforrásdefiníció például bemutatja, hogyan hivatkozhat a szolgáltatásnév adatait kezelő sablonparaméterekre, és hogyan deklarálja a sablon ezeket a paramétereket:

Kapcsolati erőforrás definíciója

{
   <other-template-objects>
   "type": "Microsoft.Web/connections",
   "apiVersion": "2016-06-01",
   "name": "[parameters('azuredatalake_1_Connection_Name')]",
   "location": "[parameters('LogicAppLocation')]",
   "properties": {
      "api": {
         "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', 'resourceGroup().location', '/managedApis/', 'azuredatalake')]"
      },
      "displayName": "[parameters('azuredatalake_1_Connection_DisplayName')]",
      "parameterValues": {
         "token:clientId": "[parameters('azuredatalake_1_token:clientId')]",
         "token:clientSecret": "[parameters('azuredatalake_1_token:clientSecret')]",
         "token:TenantId": "[parameters('azuredatalake_1_token:TenantId')]",
         "token:grantType": "[parameters('azuredatalake_1_token:grantType')]"
      }
   }
}
Attribútum Leírás
token:clientId A szolgáltatásnévhez társított alkalmazás- vagy ügyfél-azonosító
token:clientSecret A szolgáltatásnévhez társított kulcsérték
token:TenantId A Azure AD-bérlő címtárazonosítója
token:grantType A kért támogatási típusnak a következőnek kell lennie client_credentials: . További információ: Microsoft Identitásplatform és az OAuth 2.0-ügyfél hitelesítő adatainak folyamata.

Sablonparaméter-definíciók

A sablon legfelső szintű parameters objektuma deklarálja ezeket a paramétereket a példakapcsolathoz:

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   "parameters": {
      "azuredatalake_1_Connection_Name": {
        "type": "string",
        "defaultValue": "azuredatalake"
      },
      "azuredatalake_1_Connection_DisplayName": {
        "type": "string",
        "defaultValue": "<connection-name>"
      },
      "azuredatalake_1_token:clientId": {
        "type": "securestring",
        "metadata": {
          "description": "Client (or Application) ID of the Azure Active Directory application."
        }
      },
      "azuredatalake_1_token:clientSecret": {
        "type": "securestring",
        "metadata": {
          "description": "Client secret of the Azure Active Directory application."
        }
      },
      "azuredatalake_1_token:TenantId": {
        "type": "securestring",
        "metadata": {
          "description": "The tenant ID of for the Azure Active Directory application."
        }
      },
      "azuredatalake_1_token:resourceUri": {
        "type": "string",
        "metadata": {
          "description": "The resource you are requesting authorization to use."
        }
      },
      "azuredatalake_1_token:grantType": {
        "type": "string",
        "metadata": {
          "description": "Grant type"
        },
        "defaultValue": "client_credentials",
        "allowedValues": [
          "client_credentials"
        ]
      },
      // Other template parameters
   }
   // Other template objects
}

A szolgáltatásnevek használatáról az alábbi témakörökben talál további információt:

Paraméterekre mutató hivatkozások

Sablonparaméterekre való hivatkozáshoz sablonkifejezéseket használhat sablonfüggvényekkel, amelyeket a rendszer az üzembe helyezéskor értékel ki. A sablonkifejezések szögletes zárójeleket ([]) használnak:

"<attribute-name>": "[parameters('<template-parameter-name>')]"

A munkafolyamat-definíciós paraméterekre való hivatkozáshoz munkafolyamat-definíciós nyelvi kifejezéseket és függvényeket kell használnia, amelyek futásidőben lesznek kiértékelve. Észreveheti, hogy egyes sablonfüggvények és munkafolyamat-definíciós függvények neve megegyezik. A munkafolyamat-definíciós kifejezések a "at" szimbólummal kezdődnek (@):

"<attribute-name>": "@parameters('<workflow-definition-parameter-name>')"

A sablonparaméter-értékeket átadhatja a logikai alkalmazás futtatókörnyezetben használandó munkafolyamat-definíciójának. Kerülje azonban a sablonparaméterek, kifejezések és szintaxis használatát a munkafolyamat-definícióban, mert a Logic App Designer nem támogatja a sablonelemeket. Emellett a sablonszintaxis és a kifejezések bonyolíthatják a kódot a kifejezések kiértékelésének eltérései miatt.

Ehelyett ezeket az általános lépéseket követve deklarálhatja és hivatkozhat a futásidőben használandó munkafolyamat-definíciós paraméterekre, deklarálhatja és hivatkozhat az üzembe helyezéskor használandó sablonparaméterekre, valamint megadhatja az üzembe helyezéskor átadott értékeket egy paraméterfájl használatával. További részletekért tekintse meg a témakör korábbi , Munkafolyamat-definíciók és paraméterek szakaszát.

  1. Hozza létre a sablont, és deklarálja a sablonparamétereket az üzembe helyezéskor elfogadandó és használandó értékekhez.

  2. A munkafolyamat-definícióban deklarálja a futásidőben elfogadandó és használható értékek paramétereit. Ezután hivatkozhat ezekre az értékekre a munkafolyamat-definícióban és az egészben.

  3. parameters A munkafolyamat-definíción kívüli, de a logikai alkalmazás erőforrás-definíciójában lévő objektumban állítsa be a munkafolyamat-definíciós paraméterek értékeit a megfelelő sablonparaméterekre való hivatkozással. Így sablonparaméter-értékeket adhat át a munkafolyamat-definíciós paramétereknek.

  4. A paraméterfájlban adja meg a sablon üzembe helyezéskor használandó értékeit.

Teljes példasablon

Íme a témakör példái által használt paraméteres mintasablon:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
   "parameters": {
      "LogicAppName": {
         "type": "string",
         "minLength": 1,
         "maxLength": 80,
         "defaultValue": "MyLogicApp",
         "metadata": {
            "description": "The resource name to use for the logic app"
         }
      },
      "LogicAppLocation": {
         "type": "string",
         "minLength": 1,
         "defaultValue": "[resourceGroup().location]",
         "metadata": {
            "description": "The resource location to use for the logic app"
         }
      },
      "office365_1_Connection_Name": {
         "type": "string",
         "defaultValue": "office365",
         "metadata": {
            "description": "The resource name to use for the Office 365 Outlook connection"
         }
      },
      "office365_1_Connection_DisplayName": {
         "type": "string",
         "defaultValue": "",
         "metadata": {
            "description": "The display name to use for the Office 365 Outlook connection"
         }
      },
      "azureblob_1_Connection_Name": {
         "type": "string",
         "defaultValue": "azureblob",
         "metadata": {
            "description": "The resource name to use for the Azure Blob storage account connection"
         }
      },
      "azureblob_1_Connection_DisplayName": {
         "type": "string",
         "defaultValue": "",
         "metadata": {
            "description": "Name of the storage account the connector should use."
         }

      },
      "azureblob_1_accountName": {
         "type": "string",
         "defaultValue": "",
         "metadata": {
            "description": "Name of the storage account the connector should use."
         }
      },
      "azureblob_1_accessKey": {
         "type": "securestring",
         "metadata": {
            "description": "Specify a valid primary/secondary storage account access key."
         }
      },
      "LogicAppIntegrationAccount": {
         "type":"string",
         "minLength": 1,
         "defaultValue": "/subscriptions/<Azure-subscription-ID>/resourceGroups/fabrikam-integration-account-rg/providers/Microsoft.Logic/integrationAccounts/fabrikam-integration-account",
         "metadata": {
            "description": "The ID to use for the integration account"
         }
      }
   },
   "variables": {},
   "resources": [
      {
         "properties": {
            "state": "Disabled",
            "integrationAccount": {
              "id": "[parameters('LogicAppIntegrationAccount')]"
            },
            "definition": {
               "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
               "actions": {
                  "Create_blob": {
                     "type": "ApiConnection",
                     "inputs": {
                        "host": {
                           "connection": {
                              "name": "@parameters('$connections')['azureblob']['connectionId']"
                           }
                        }
                     },
                     "method": "post",
                     "body": "@triggerBody()?['Body']",
                     "path": "/datasets/default/files",
                     "queries": {
                        "folderPath": "/emails",
                        "name": "@triggerBody()?['Subject']",
                        "queryParametersSingleEncoded": true
                     },
                     "runAfter": {},
                     "runtimeConfiguration": {
                        "contentTransfer": {
                           "transferMode": "Chunked"
                        }
                     }
                  }
               },
               "parameters": {
                  "$connections": {
                     "defaultValue": {},
                     "type": "Object"
                  }
               },
               "triggers": {
                  "When_a_new_email_arrives": {
                     "type": "ApiConnection",
                     "inputs": {
                        "host": {
                           "connection": {
                              "name": "@parameters('$connections')['office365']['connectionId']"
                           }
                        },
                        "method": "get",
                        "path": "/Mail/OnNewEmail",
                        "queries": {
                           "folderPath": "Inbox",
                           "importance": "Any",
                           "fetchOnlyWithAttachment": false,
                           "includeAttachments": false
                        }
                     },
                     "recurrence": {
                        "frequency": "Day",
                        "interval": 1
                     },
                     "splitOn": "@triggerBody()?['value']"
                  }
               },
               "contentVersion": "1.0.0.0",
               "outputs": {}
            },
            "parameters": {
               "$connections": {
                  "value": {
                     "azureblob": {
                        "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('LogicAppLocation'), '/managedApis/', 'azureblob')]",
                        "connectionId": "[resourceId('Microsoft.Web/connections', parameters('azureblob_1_Connection_Name'))]",
                        "connectionName": "[parameters('azureblob_1_Connection_Name')]"
                     },
                     "office365": {
                        "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('LogicAppLocation'), '/managedApis/', 'office365')]",
                        "connectionId": "[resourceId('Microsoft.Web/connections', parameters('office365_1_Connection_Name'))]",
                        "connectionName": "[parameters('office365_1_Connection_Name')]"
                     }
                  }
               }
            },
            "accessControl": {}
         },
         "name": "[parameters('LogicAppName')]",
         "type": "Microsoft.Logic/workflows",
         "location": "[parameters('LogicAppLocation')]",
         "tags": {
            "displayName": "LogicApp"
         },
         "apiVersion": "2019-05-01",
         "dependsOn": [
            "[resourceId('Microsoft.Web/connections', parameters('azureblob_1_Connection_Name'))]",
            "[resourceId('Microsoft.Web/connections', parameters('office365_1_Connection_Name'))]"
         ]
      },
      {
         "type": "Microsoft.Web/connections",
         "apiVersion": "2016-06-01",
         "name": "[parameters('office365_1_Connection_Name')]",
         "location": "[parameters('LogicAppLocation')]",
         "properties": {
            "api": {
                "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('LogicAppLocation'), '/managedApis/', 'office365')]"
            },
            "displayName": "[parameters('office365_1_Connection_DisplayName')]"
         }
      },
      {
         "type": "Microsoft.Web/connections",
         "apiVersion": "2016-06-01",
         "name": "[parameters('azureblob_1_Connection_Name')]",
         "location": "[parameters('LogicAppLocation')]",
         "properties": {
            "api": {
               "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('LogicAppLocation'), '/managedApis/', 'azureblob')]"
            },
            "displayName": "[parameters('azureblob_1_Connection_DisplayName')]",
            "parameterValues": {
               "accountName": "[parameters('azureblob_1_accountName')]",
               "accessKey": "[parameters('azureblob_1_accessKey')]"
            }
         }
      }
   ],
   "outputs": {}
}

Következő lépések