Přehled: Automatizace nasazení pro Azure Logic Apps pomocí šablon Azure Resource Manager

Platí pro: Azure Logic Apps (Consumption)

Až budete připraveni automatizovat vytváření a nasazení aplikace logiky, můžete rozšířit základní definici pracovního postupu aplikace logiky do šablony Azure Resource Manager. Tato šablona definuje infrastrukturu, prostředky, parametry a další informace pro zřizování a nasazení aplikace logiky. Definováním parametrů pro hodnoty, které se při nasazení liší, označované také jako parametrizace, můžete opakovaně a konzistentně nasazovat aplikace logiky na základě různých potřeb nasazení.

Pokud například nasadíte do prostředí pro vývoj, testování a produkci, pravděpodobně pro každé prostředí použijete různé připojovací řetězce. Můžete deklarovat parametry šablony, které přijímají různé připojovací řetězce, a pak tyto řetězce uložit do samostatného souboru parametrů. Tímto způsobem můžete tyto hodnoty změnit, aniž byste museli šablonu aktualizovat a znovu nasadit. Ve scénářích, kdy máte citlivé nebo zabezpečené hodnoty parametrů, jako jsou hesla a tajné kódy, můžete tyto hodnoty uložit v Azure Key Vault a nechat soubor parametrů tyto hodnoty načíst. V těchto scénářích byste ale znovu nasadili načtení aktuálních hodnot.

Tento přehled popisuje atributy v šabloně Resource Manager, která obsahuje definici pracovního postupu aplikace logiky. Šablona i definice pracovního postupu používají syntaxi JSON, ale existují určité rozdíly, protože definice pracovního postupu se také řídí schématem jazyka definice pracovního postupu. Například výrazy šablony a výrazy definice pracovního postupu se liší v tom, jak odkazují na parametry a hodnoty, které můžou přijmout.

Tip

Nejjednodušší způsob, jak získat platnou šablonu parametrizované aplikace logiky, která je většinou připravená k nasazení, najdete v sadě Visual Studio (bezplatná edice Community nebo vyšší) a azure Logic Apps Tools for Visual Studio. Pak můžete vytvořit aplikaci logiky v sadě Visual Studio nebo najít a stáhnout existující aplikaci logiky z Azure do sady Visual Studio.

Nebo můžete vytvořit šablony aplikací logiky pomocí Azure PowerShell s modulem LogicAppTemplate.

Ukázková aplikace logiky v tomto tématu používá trigger Office 365 Outlooku, který se aktivuje při doručení nového e-mailu, a akci Azure Blob Storage, která vytvoří objekt blob pro text e-mailu a nahraje tento objekt blob do kontejneru úložiště Azure. Příklady také ukazují, jak parametrizovat hodnoty, které se při nasazení liší.

Další informace o šablonách Resource Manager najdete v těchto tématech:

Informace o prostředku šablony specifické pro aplikace logiky, účty integrace, artefakty účtů integrace a prostředí integrační služby najdete v tématu Typy prostředků Microsoft.Logic.

Ukázkové šablony aplikací logiky najdete v těchto příkladech:

V případě rozhraní REST API služby Logic Apps začněte přehledem rozhraní REST API služby Azure Logic Apps.

Struktura šablon

Na nejvyšší úrovni se šablona Resource Manager řídí touto strukturou, která je plně popsaná v tématu Struktura a syntaxe šablony Azure Resource Manager:

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

U šablony aplikace logiky pracujete primárně s těmito objekty šablony:

Atribut Popis
parameters Deklaruje parametry šablony pro přijetí hodnot, které se mají použít při vytváření a přizpůsobení prostředků pro nasazení v Azure. Tyto parametry například přijímají hodnoty pro název a umístění vaší aplikace logiky, připojení a další prostředky potřebné k nasazení. Tyto hodnoty parametrů můžete uložit do souboru parametrů, který je popsán dále v tomto tématu. Obecné podrobnosti najdete v tématu Parametry – Resource Manager strukturu a syntaxi šablony.
resources Definuje prostředky pro vytvoření nebo aktualizaci a nasazení do skupiny prostředků Azure, jako jsou aplikace logiky, připojení, účty úložiště Azure atd. Obecné podrobnosti najdete v tématu Zdroje informací – Resource Manager strukturu a syntaxi šablon.

Šablona aplikace logiky používá tento formát názvu souboru:

<logic-app-name>. Json

Důležité

V syntaxi šablony se rozlišují velká a malá písmena, proto se ujistěte, že používáte konzistentní velká písmena.

Parametry šablony

Šablona aplikace logiky obsahuje několik parameters objektů, které existují na různých úrovních a provádějí různé funkce. Na nejvyšší úrovni můžete například deklarovat parametry šablony pro hodnoty, které se mají přijmout a použít při nasazení při vytváření a nasazování prostředků v Azure, například:

  • Vaše aplikace logiky

  • Připojení, která vaše aplikace logiky používá pro přístup k dalším službám a systémům prostřednictvím spravovaných konektorů

  • Další prostředky, které vaše aplikace logiky potřebuje k nasazení

    Pokud například vaše aplikace logiky používá účet integrace pro scénáře B2B (Business-to-Business), objekt nejvyšší úrovně parameters šablony deklaruje parametr, který přijímá ID prostředku pro daný účet integrace.

Tady je obecná struktura a syntaxe definice parametru, která je plně popsána v tématu Parametry – Resource Manager strukturu a syntaxi šablony:

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

Tento příklad ukazuje pouze parametry šablony pro hodnoty použité k vytvoření a nasazení těchto prostředků v Azure:

  • Název a umístění aplikace logiky
  • ID, které se má použít pro účet integrace propojený s aplikací logiky
{
   "$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": {}
}

Kromě parametrů, které zpracovávají hodnoty, které jsou citlivé nebo musí být zabezpečené, jako jsou uživatelská jména, hesla a tajné kódy, všechny tyto parametry zahrnují defaultValue atributy, i když v některých případech jsou výchozí hodnoty prázdné hodnoty. Hodnoty nasazení, které se mají použít pro tyto parametry šablony, poskytuje soubor ukázkových parametrů popsaný dále v tomto tématu.

Další informace o zabezpečení parametrů šablony najdete v těchto tématech:

Jiné objekty šablony často odkazují na parametry šablony, aby mohly použít hodnoty, které procházejí parametry šablony, například:

  • Objekt resources vaší šablony, který je popsaný dále v tomto tématu, definuje každý prostředek v Azure, který chcete vytvořit a nasadit, například definici prostředku aplikace logiky. Tyto prostředky často používají hodnoty parametrů šablony, například název a umístění aplikace logiky a informace o připojení.

  • Na hlubší úrovni v definici prostředku vaší aplikace logiky objekt parametrů definice pracovního postupu deklaruje parametry pro hodnoty, které se mají použít v modulu runtime vaší aplikace logiky. Můžete například deklarovat parametry definice pracovního postupu pro uživatelské jméno a heslo, které trigger HTTP používá k ověřování. Pokud chcete zadat hodnoty parametrů definice pracovního postupu, použijte parameters objekt, který je mimo definici pracovního postupu, ale stále uvnitř definice prostředku aplikace logiky. V tomto vnějším parameters objektu můžete odkazovat na dříve deklarované parametry šablony, které mohou přijímat hodnoty při nasazení ze souboru parametrů.

Při odkazování na parametry používají výrazy šablony a funkce jinou syntaxi a chovají se odlišně od výrazů a funkcí definice pracovního postupu. Další informace o těchto rozdílech najdete v části Odkazy na parametry dále v tomto tématu.

Osvědčené postupy – parametry šablony

Tady je několik osvědčených postupů pro definování parametrů:

  • Deklarujte parametry pouze pro hodnoty, které se liší v závislosti na vašich potřebách nasazení. Nedeklarujte parametry pro hodnoty, které zůstávají stejné v různých požadavcích nasazení.

  • Zahrňte defaultValue atribut, který může zadat prázdné hodnoty pro všechny parametry s výjimkou hodnot, které jsou citlivé nebo musí být zabezpečené. Vždy používejte zabezpečené parametry pro uživatelská jména, hesla a tajné kódy. Pokud chcete skrýt nebo chránit citlivé hodnoty parametrů, postupujte podle pokynů v těchto tématech:

  • Pokud chcete odlišit názvy parametrů šablony od názvů parametrů definice pracovního postupu, můžete použít popisné názvy parametrů šablon, například: TemplateFabrikamPassword

Další osvědčené postupy pro šablony najdete v tématu Osvědčené postupy pro parametry šablony.

Soubor parametrů šablony

Pokud chcete zadat hodnoty parametrů šablony, uložte je do souboru parametrů. Tímto způsobem můžete použít různé soubory parametrů v závislosti na vašich potřebách nasazení. Tady je formát názvu souboru, který se má použít:

  • Název souboru šablony aplikace logiky: <logic-app-name.json>
  • Název souboru parametrů: <logic-app-name.parameters.json>

Tady je struktura uvnitř souboru parametrů, která obsahuje odkaz na trezor klíčů pro předání hodnoty zabezpečeného parametru pomocí 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>
   }
}

Tento ukázkový soubor parametrů určuje hodnoty parametrů šablony deklarované dříve v tomto tématu:

{
   "$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"
      }
   }
}

Prostředky šablon

Vaše šablona obsahuje resources objekt, což je pole obsahující definice pro každý prostředek, který se má vytvořit a nasadit v Azure, například definici prostředku aplikace logiky, definice prostředků připojení a všechny další prostředky, které vaše aplikace logiky potřebuje k nasazení.

{
   "$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": {}
}

Poznámka

Šablony můžou obsahovat definice prostředků pro více aplikací logiky, proto se ujistěte, že všechny prostředky aplikace logiky určují stejnou skupinu prostředků Azure. Když nasadíte šablonu do skupiny prostředků Azure pomocí sady Visual Studio, zobrazí se výzva k zadání aplikace logiky, kterou chcete otevřít. Projekt skupiny prostředků Azure také může obsahovat více než jednu šablonu, proto po zobrazení výzvy nezapomeňte vybrat správný soubor parametrů.

Zobrazení definic prostředků

Pokud chcete zkontrolovat definice prostředků pro všechny prostředky ve skupině prostředků Azure, stáhněte si aplikaci logiky z Azure do sady Visual Studio, což je nejjednodušší způsob, jak vytvořit platnou šablonu parametrizované aplikace logiky, která je většinou připravená k nasazení.

Obecné informace o prostředcích šablon a jejich atributech najdete v těchto tématech:

Definice prostředku aplikace logiky

Definice prostředku pracovního postupu aplikace logiky v šabloně začíná objektemproperties, který obsahuje tyto informace:

  • Stav aplikace logiky při nasazení
  • ID každého účtu integrace používaného vaší aplikací logiky
  • Definice pracovního postupu aplikace logiky
  • Objekt parameters , který nastavuje hodnoty pro použití za běhu
  • Další informace o prostředcích o vaší aplikaci logiky, jako je název, typ, umístění, nastavení konfigurace modulu runtime atd.
{
   "$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": {}
}

Tady jsou atributy, které jsou specifické pro definici prostředku aplikace logiky:

Atribut Požaduje se Typ Popis
state Ano Řetězec Stav vaší aplikace logiky při nasazení, kde Enabled znamená, že vaše aplikace logiky je aktivní a Disabled znamená, že vaše aplikace logiky je neaktivní. Pokud například nejste připraveni na spuštění aplikace logiky, ale chcete nasadit koncept verze, můžete použít možnost Disabled .
integrationAccount No Objekt Pokud vaše aplikace logiky používá účet integrace, který ukládá artefakty pro scénáře B2B (Business-to-Business), tento objekt obsahuje id atribut, který určuje ID účtu integrace.
definition Yes Objekt Základní definice pracovního postupu aplikace logiky, která je stejným objektem, který se zobrazuje v zobrazení kódu a je plně popsaná v tématu Referenční informace o schématu pro jazyk definice pracovního postupu . V této definici pracovního postupu objekt deklaruje parametry pro hodnoty, parameters které se mají použít při modulu runtime aplikace logiky. Další informace najdete v tématu Definice a parametry pracovního postupu.

Pokud chcete zobrazit atributy v definici pracovního postupu aplikace logiky, přepněte z návrhového zobrazení na zobrazení kódu v Azure Portal nebo v sadě Visual Studio nebo pomocí nástroje, jako je Azure Resource Explorer.

parameters No Objekt Hodnoty parametrů definice pracovního postupu, které se mají použít při modulu runtime aplikace logiky. Definice parametrů pro tyto hodnoty se zobrazí v objektu parameters definice pracovního postupu. Pokud vaše aplikace logiky používá spravované konektory pro přístup k jiným službám a systémům, zahrnuje $connections tento objekt objekt, který nastaví hodnoty připojení pro použití za běhu.
accessControl No Objekt Pro zadání atributů zabezpečení pro vaši aplikaci logiky, jako je omezení přístupu IP na triggery požadavků nebo vstupy a výstupy historie spuštění. Další informace najdete v tématu Zabezpečený přístup k aplikacím logiky.
runtimeConfiguration No Objekt Pro zadání libovolných operationOptions vlastností, které řídí způsob, jakým se vaše aplikace logiky chová za běhu. Aplikaci logiky můžete například spustit v režimu s vysokou propustností.

Další informace o definicích prostředků pro tyto objekty Logic Apps najdete v tématu Typy prostředků Microsoft.Logic:

Definice a parametry pracovního postupu

Definice pracovního postupu aplikace logiky se zobrazí v objektu definition , který se zobrazí v objektu properties uvnitř definice prostředku vaší aplikace logiky. Tento definition objekt je stejný objekt, který se zobrazuje v zobrazení kódu a je plně popsán v tématu Referenční informace o schématu pro jazyk definice pracovního postupu . Definice pracovního postupu obsahuje vnitřní parameters objekt deklarace, kde můžete definovat nové nebo upravit existující parametry pro hodnoty, které jsou používány definicí pracovního postupu za běhu. Na tyto parametry pak můžete odkazovat uvnitř triggeru nebo akcí v pracovním postupu. Ve výchozím nastavení je tento parameters objekt prázdný, pokud vaše aplikace logiky nevytvoří připojení k jiným službám a systémům prostřednictvím spravovaných konektorů.

Pokud chcete nastavit hodnoty parametrů definice pracovního postupu, použijte parameters objekt, který je mimo definici pracovního postupu, ale stále uvnitř definice prostředku aplikace logiky. V tomto vnějším parameters objektu pak můžete odkazovat na dříve deklarované parametry šablony, které mohou přijímat hodnoty při nasazení ze souboru parametrů.

Tip

Osvědčeným postupem je neodkazovat přímo na parametry šablony, které se vyhodnocují při nasazení, z definice pracovního postupu. Místo toho deklarujte parametr definice pracovního postupu, který pak můžete nastavit v objektu parameters , který je mimo definici pracovního postupu, ale stále uvnitř definice prostředku aplikace logiky. Další informace najdete v tématu Odkazy na parametry.

Tato syntaxe ukazuje, kde můžete deklarovat parametry na úrovni šablony i definice pracovního postupu a kde můžete tyto hodnoty parametrů nastavit odkazem na parametry šablony a definice pracovního postupu:

{
   "$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": {}
}

Parametry definice zabezpečeného pracovního postupu

V případě parametru definice pracovního postupu, který zpracovává citlivé informace, hesla, přístupové klíče nebo tajné kódy za běhu, deklarujte nebo upravte parametr tak, aby používal typ parametru securestring nebo secureobject . Na tento parametr můžete odkazovat v celé definici pracovního postupu a v rámci této definice. Na nejvyšší úrovni šablony deklarujte parametr, který má stejný typ pro zpracování těchto informací při nasazení.

Pokud chcete nastavit hodnotu parametru definice pracovního postupu, použijte parameters objekt, který je mimo definici pracovního postupu, ale stále uvnitř definice prostředku aplikace logiky, a odkazujte na parametr šablony. Nakonec, pokud chcete předat hodnotu parametru šablony při nasazení, uložte ji v Azure Key Vault a odkazujte na tento trezor klíčů v souboru parametrů, který používá vaše šablona při nasazení.

Tato ukázková šablona ukazuje, jak můžete tyto úlohy dokončit definováním zabezpečených parametrů v případě potřeby, abyste mohli jejich hodnoty uložit v Azure Key Vault:

  • Deklarujte zabezpečené parametry pro hodnoty použité k ověření přístupu.
  • Tyto hodnoty použijte na úrovni šablony i definice pracovního postupu.
  • Zadejte tyto hodnoty pomocí souboru parametrů.

Šablona

{
   "$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": {}
}

Soubor parametrů

{
   "$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"
        }
     }
   }
}

Osvědčené postupy – parametry definice pracovního postupu

Pokud chcete zajistit, aby Návrhář aplikace logiky správně zobrazoval parametry definice pracovního postupu, postupujte podle těchto osvědčených postupů:

Další informace o parametrech definice pracovního postupu najdete v tématu Parametry – jazyk definice pracovního postupu.

Definice prostředků připojení

Když vaše aplikace logiky vytvoří a používá připojení k jiným službám a systému pomocí spravovaných konektorů, objekt vaší šablony resources obsahuje definice prostředků pro tato připojení. Připojení sice vytváříte z aplikace logiky, ale připojení jsou samostatné prostředky Azure s vlastními definicemi prostředků. Pokud chcete zkontrolovat tyto definice prostředků připojení, stáhněte si aplikaci logiky z Azure do sady Visual Studio, což je nejjednodušší způsob, jak vytvořit platnou šablonu parametrizované aplikace logiky, která je většinou připravená k nasazení.

{
   "$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": {}
}

Definice prostředků připojení odkazují na parametry nejvyšší úrovně šablony pro jejich hodnoty, takže tyto hodnoty můžete zadat při nasazení pomocí souboru parametrů. Ujistěte se, že připojení používají stejnou skupinu prostředků Azure a stejné umístění jako vaše aplikace logiky.

Tady je příklad definice prostředku pro připojení Office 365 Outlooku a odpovídající parametry šablony:

{
   "$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": {}
}

Definice prostředku vaší aplikace logiky také funguje s definicemi prostředků připojení těmito způsoby:

  • Uvnitř definice pracovního postupu objekt deklaruje parametr pro hodnoty připojení, parameters které se mají použít při modulu runtime aplikace logiky $connections . Trigger nebo akce, která vytváří připojení, také používá odpovídající hodnoty, které procházejí tímto $connections parametrem.

  • Mimo definici pracovního postupu, ale stále v definici prostředku aplikace logiky, nastaví jiný parameters objekt hodnoty, které se mají $connections pro parametr použít za běhu, a to odkazem na odpovídající parametry šablony. Tyto hodnoty používají výrazy šablony k odkazování na prostředky, které bezpečně ukládají metadata pro připojení ve vaší aplikaci logiky.

    Metadata můžou například zahrnovat připojovací řetězce a přístupové tokeny, které můžete ukládat do Azure Key Vault. Pokud chcete tyto hodnoty předat parametrům šablony, odkazujte na tento trezor klíčů v souboru parametrů , který používá vaše šablona při nasazení. Další informace o rozdílech při odkazování na parametry najdete v části Odkazy na parametry dále v tomto tématu.

    Když otevřete definici pracovního postupu aplikace logiky v zobrazení kódu prostřednictvím Azure Portal nebo sady Visual Studio, objekt se zobrazí mimo definici pracovního postupu, $connections ale na stejné úrovni. Toto řazení v zobrazení kódu usnadňuje odkaz na tyto parametry při ruční aktualizaci definice pracovního postupu:

    {
       "$connections": {<workflow-definition-parameter-connection-values-runtime},
       "definition": {<workflow-definition>}
    }
    
  • Definice prostředku aplikace logiky obsahuje dependsOn objekt, který určuje závislosti na připojeních používaných vaší aplikací logiky.

Každé připojení, které vytvoříte, má v Azure jedinečný název. Když vytvoříte více připojení ke stejné službě nebo systému, připojí se ke každému názvu připojení číslo, které se zvýší s každým nově vytvořeným připojením, office365například , office365-1a tak dále.

Tento příklad ukazuje interakce mezi definicí prostředku aplikace logiky a definicí prostředku připojení pro Office 365 Outlooku:

{
   "$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": {}
}

Parametry zabezpečeného připojení

U parametru připojení, který zpracovává citlivé informace, hesla, přístupové klíče nebo tajné kódy, obsahuje parameterValues definice prostředku připojení objekt, který tyto hodnoty určuje ve formátu páru název-hodnota. Chcete-li tyto informace skrýt, můžete deklarovat nebo upravit parametry šablony pro tyto hodnoty pomocí securestring typů parametrů nebo secureobject . Pak můžete uložit informace v Azure Key Vault. Pokud chcete tyto hodnoty předat parametrům šablony, odkazujte na tento trezor klíčů v souboru parametrů , který používá vaše šablona při nasazení.

Tady je příklad, který poskytuje název účtu a přístupový klíč pro připojení Azure Blob Storage:

Soubor parametrů

{
   "$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"
         }
      }
   }
}

Šablona

{
   "$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": {}
}

Ověřování připojení

Po nasazení funguje vaše aplikace logiky kompletní s platnými parametry. Přesto ale musíte autorizovat všechna připojení OAuth, aby se vygenerovaly platné přístupové tokeny pro ověřování přihlašovacích údajů. Další informace najdete v tématu Autorizace připojení OAuth.

Některá připojení podporují použití instančního objektu Azure Active Directory (Azure AD) k autorizaci připojení pro aplikaci logiky, která je zaregistrovaná v Azure AD. Například tato definice prostředku připojení Azure Data Lake ukazuje, jak odkazovat na parametry šablony, které zpracovávají informace o instančním objektu, a jak šablona deklaruje tyto parametry:

Definice prostředku připojení

{
   <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')]"
      }
   }
}
Atribut Popis
token:clientId ID aplikace nebo klienta přidružené k vašemu instančnímu objektu
token:clientSecret Hodnota klíče přidružená k vašemu instančnímu objektu
token:TenantId ID adresáře vašeho tenanta Azure AD
token:grantType Požadovaný typ grantu, který musí být client_credentials. Další informace najdete v tématu Microsoft identity platform a tok přihlašovacích údajů klienta OAuth 2.0.

Definice parametrů šablony

Objekt nejvyšší úrovně parameters šablony deklaruje pro ukázkové připojení tyto parametry:

{
   "$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
}

Další informace o práci s instančními objekty najdete v těchto tématech:

Odkazy na parametry

Pokud chcete odkazovat na parametry šablony, můžete použít výrazy šablony s funkcemi šablony, které se vyhodnocují při nasazení. Výrazy šablony používají hranaté závorky ([]):

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

Chcete-li odkazovat na parametry definice pracovního postupu, použijte výrazy a funkce jazyka definice pracovního postupu, které se vyhodnocují za běhu. Můžete si všimnout, že některé funkce šablony a funkce definice pracovního postupu mají stejný název. Výrazy definice pracovního postupu začínají symbolem "at" (@):

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

Hodnoty parametrů šablony můžete předat do definice pracovního postupu, aby vaše aplikace logiky používala za běhu. Nepoužívejte však parametry šablony, výrazy a syntaxi v definici pracovního postupu, protože Návrhář aplikace logiky nepodporuje prvky šablony. Syntaxe šablony a výrazy také můžou kód komplikovat kvůli rozdílům při vyhodnocování výrazů.

Místo toho postupujte podle těchto obecných kroků a deklarujte a odkazujte na parametry definice pracovního postupu, které se mají použít za běhu, deklarujte a odkazujte na parametry šablony, které se mají použít při nasazení, a určete hodnoty, které se mají předat při nasazení pomocí souboru parametrů. Úplné podrobnosti najdete v části Definice a parametry pracovního postupu výše v tomto tématu.

  1. Vytvořte šablonu a deklarujte parametry šablony pro hodnoty, které se mají přijmout a použít při nasazení.

  2. V definici pracovního postupu deklarujte parametry hodnot, které se mají přijmout a používat za běhu. Na tyto hodnoty pak můžete odkazovat v celé definici pracovního postupu a v rámci nich.

  3. V objektu parameters , který je mimo definici pracovního postupu, ale stále uvnitř definice prostředku aplikace logiky, nastavte hodnoty parametrů definice pracovního postupu odkazem na odpovídající parametry šablony. Tímto způsobem můžete předat hodnoty parametrů šablony do parametrů definice pracovního postupu.

  4. V souboru parametrů zadejte hodnoty šablony, které se mají použít při nasazení.

Úplná ukázková šablona

Tady je parametrizovaná ukázková šablona, kterou používají příklady tohoto tématu:

{
  "$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": {}
}

Další kroky