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

Platí pro: Azure Logic Apps (Consumption)

Až budete připraveni automatizovat vytváření a nasazování aplikace logiky, můžete rozšířit základní definici pracovního postupu aplikace logiky do šablony Azure Resource Manageru. Tato šablona definuje infrastrukturu, prostředky, parametry a další informace pro zřizování a nasazování aplikace logiky. Definováním parametrů pro hodnoty, které se liší při nasazení, 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ězec. Můžete deklarovat parametry šablony, které přijímají různé připojovací řetězec a potom tyto řetězce ukládat 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, ve kterých máte citlivé hodnoty parametrů nebo které musí být zabezpečené, jako jsou hesla a tajné kódy, můžete tyto hodnoty uložit ve službě Azure Key Vault a soubor parametrů tyto hodnoty načíst. V těchto scénářích byste ale znovu nasadíte aktuální hodnoty.

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

Tip

Nejjednodušší způsob, jak získat platnou parametrizovanou šablonu aplikace logiky, která je většinou připravená k nasazení, použijte Sadu Visual Studio (bezplatnou komunitní edici nebo vyšší) a nástroje Azure Logic Apps pro Visual Studio. Pak můžete buď vytvořit aplikaci logiky v sadě Visual Studio , nebo vyhledat a stáhnout existující aplikaci logiky z Azure do sady Visual Studio.

Nebo můžete vytvářet šablony aplikací logiky pomocí Azure PowerShellu s modulem LogicAppTemplate.

Ukázková aplikace logiky v tomto tématu používá trigger Office 365 Outlook, který se aktivuje, když přijde nový e-mail, a akci služby Azure Blob Storage, která vytvoří objekt blob pro tělo 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 Manageru najdete v těchto tématech:

Informace o prostředcích šablon specifické pro aplikace logiky, účty integrace a artefakty účtu integrace najdete v tématu Typy prostředků Microsoft.Logic.

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

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

Struktura šablon

Na nejvyšší úrovni se šablona Resource Manageru řídí touto strukturou, která je plně popsaná ve struktuře šablon Azure Resource Manageru a tématu syntaxe :

{
   "$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 primárně pracujete 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í aplikace logiky, připojení a další prostředky potřebné pro 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 – Struktura a syntaxe šablon Resource Manageru.
resources Definuje prostředky, které se mají vytvořit nebo aktualizovat a nasadit do skupiny prostředků Azure, jako je aplikace logiky, připojení, účty úložiště Azure atd. Obecné podrobnosti najdete v tématu Prostředky – Struktura a syntaxe šablon Resource Manageru.

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

<název> aplikace logiky.json

Důležité

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

Parametry šablony

Šablona aplikace logiky obsahuje více parameters objektů, které existují na různých úrovních a provádějí různé funkce. Například na nejvyšší úrovni můžete deklarovat parametry šablony pro hodnoty, které se mají při nasazení přijmout a použít 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 jiný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 tento účet integrace.

Tady je obecná struktura a syntaxe definice parametru, která je plně popsaná v parametrech – struktura a syntaxe šablony Resource Manageru:

"<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, který je 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 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, poskytují ukázkový soubor 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žívat hodnoty předávané parametry šablony, například:

  • Objekt prostředků šablony 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, jako je název a umístění aplikace logiky a informace o připojení.

  • Na hlubší úrovni definice prostředku aplikace logiky deklaruje objekt parametrů definice pracovního postupu parametry hodnot, které se mají použít za běhu 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 a funkce šablony odlišnou syntaxi a chovají se jinak než výrazy a funkce definice pracovního postupu. Další informace o těchto rozdílech naleznete v tématu 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í. Neprovádávejte parametry pro hodnoty, které zůstávají stejné v různých požadavcích na nasazení.

  • defaultValue Zahrňte 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ů šablony, například: TemplateFabrikamPassword

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

Soubor parametrů šablony

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

  • Název souboru šablony aplikace logiky: <název> aplikace logiky.json
  • Název souboru parametrů: <název aplikace logiky>.parameters.json

Tady je struktura v souboru parametrů, která obsahuje referenční informace k trezoru klíčů pro předání hodnoty zabezpečeného parametru ve službě 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

Šablona obsahuje resources objekt, což je pole obsahující definice jednotlivých prostředků, které se mají vytvořit a nasadit v Azure, jako je definice 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 zahrnovat 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ž šablonu nasadíte 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 může také obsahovat více než jednu šablonu, proto při zobrazení výzvy vyberte 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 parametrizovanou šablonu 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 vaší aplikace logiky v šabloně začíná objektem properties , který obsahuje tyto informace:

  • Stav aplikace logiky při nasazení
  • ID libovolného účtu integrace používaného vaší aplikací logiky
  • Definice pracovního postupu vaší aplikace logiky
  • Objekt parameters , který nastaví hodnoty, které se mají použít za běhu
  • Další informace o prostředcích o 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 specifické pro definici prostředku aplikace logiky:

Atribut Požaduje se Type Popis
state Ano String Stav aplikace logiky v nasazení, kde Enabled znamená, že je vaše aplikace logiky aktivní a Disabled znamená, že je vaše aplikace logiky neaktivní. Pokud například nejste připravení, aby aplikace logiky byla aktivní, ale chcete nasadit koncept verze, můžete použít Disabled tuto možnost.
integrationAccount No Object Pokud vaše aplikace logiky používá účet integrace, který ukládá artefakty pro scénáře B2B (Business-to-Business), zahrnuje id tento objekt atribut, který určuje ID účtu integrace.
definition Ano Object Základní definice pracovního postupu vaší aplikace logiky, což je stejný objekt, který se zobrazuje v zobrazení kódu a je plně popsaný v referenční dokumentaci schématu pro jazyk definice pracovního postupu. V této definici parameters pracovního postupu objekt deklaruje parametry pro hodnoty, které se mají použít za běhu aplikace logiky. Další informace naleznete 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 na webu Azure Portal nebo v sadě Visual Studio nebo pomocí nástroje, jako je Azure Resource Explorer.

parameters No Object Hodnoty parametrů definice pracovního postupu, které se mají použít za běhu aplikace logiky. Definice parametrů pro tyto hodnoty se zobrazí uvnitř objektu parametrů 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 objekt, který nastaví hodnoty připojení tak, aby se používaly za běhu.
accessControl No Object Pokud chcete zadat atributy zabezpečení pro vaši aplikaci logiky, například omezení přístupu IP k triggerům požadavků nebo vstupy a výstupy historie spuštění. Další informace najdete v tématu Zabezpečení přístupu k aplikacím logiky.
runtimeConfiguration No Object Určení všech 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 vysoké propustnosti.

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

Definice a parametry pracovního postupu

Definice pracovního postupu vaší aplikace logiky se zobrazí v objektu definition , který se zobrazí v objektu properties uvnitř definice prostředku aplikace logiky. Tento definition objekt je stejný objekt, který se zobrazí v zobrazení kódu a je plně popsán v referenční dokumentaci schématu pro jazyk definice pracovního postupu. Definice pracovního postupu obsahuje vnitřní parameters objekt deklarace, ve kterém můžete definovat nové nebo upravit existující parametry pro hodnoty, které definice pracovního postupu používá 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 aplikace logiky nespravuje 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, že přímo neodkazujte 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 naleznete v tématu Odkazy na parametry.

Tato syntaxe ukazuje, kde můžete deklarovat parametry na úrovni šablony i definice pracovního postupu spolu s tím, 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

Pro parametr 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 nebo secureobject typ parametrusecurestring. 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, aby odkazovat na parametr šablony. Nakonec pokud chcete předat hodnotu parametru šablony při nasazení, uložte ji ve službě Azure Key Vault a odkazujte na tento trezor klíčů do 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 ve službě 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 naleznete v tématu Parametry – Jazyk definice pracovního postupu.

Definice prostředků připojení

Když vaše aplikace logiky vytváří a používá připojení k jiným službám a systémům pomocí spravovaných konektorů, objekt vaší šablony resources obsahuje definice prostředků pro tato připojení. I když vytváříte připojení z aplikace logiky, připojení jsou samostatné prostředky Azure s vlastními definicemi prostředků. Pokud vaše připojení používá prostředek místní brány dat, existuje tato definice prostředku odděleně od definice prostředku konektoru. Další informace najdete v tématu Definice prostředků místní brány dat a Microsoft.Web connectionGateways.

Pokud chcete zkontrolovat 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 parametrizovanou šablonu 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, abyste je mohli zadat při nasazení pomocí souboru parametrů. Ujistěte se, že připojení používají stejnou skupinu prostředků Azure a umístění jako vaše aplikace logiky.

Tady je příklad definice prostředku pro připojení k 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 parameters pracovního postupu objekt deklaruje $connections parametr pro hodnoty připojení, které se mají použít za běhu aplikace logiky. Aktivační událost nebo akce, která vytvoří připojení, také používá odpovídající hodnoty, které projdou tímto $connections parametrem.

  • Mimo definici pracovního postupu, ale stále uvnitř definice prostředku aplikace logiky nastaví jiný parameters objekt hodnoty, které se použijí za běhu pro $connections parametr, 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í v aplikaci logiky.

    Metadata můžou například zahrnovat připojovací řetězec a přístupové tokeny, které můžete uložit ve službě Azure Key Vault. Pokud chcete tyto hodnoty předat parametrům šablony, odkazujete na tento trezor klíčů v souboru parametrů, který vaše šablona používá při nasazení. Další informace o rozdílech v odkazování na parametry naleznete 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 webu 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 odkazování 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 vaší aplikace logiky obsahuje dependsOn objekt, který určuje závislosti na připojeních používaných vaší aplikací logiky.

Každé vytvořené připojení má v Azure jedinečný název. Při vytváření více připojení ke stejné službě nebo systému se každý název připojení připojí číslem, které se zvýší o každé nové připojení, například office365, 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 Outlook:

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

Definice prostředků místní brány dat

Pokud vaše připojení používá prostředek místní brány dat, existuje tato definice prostředku odděleně od definice prostředku konektoru. Pokud chcete zobrazit definici prostředku brány dat, postupujte takto:

  1. Na webu Azure Portal vyhledejte a zobrazte prostředek Azure pro vaši místní bránu dat.

  2. V nabídce prostředků v části Automatizace vyberte Exportovat šablonu.

    Jakmile Azure vygeneruje šablonu, zobrazí se v okně kódu definice prostředku brány.

Další informace naleznete v tématu Microsoft.Web connectionGateways.

Parametry zabezpečeného připojení

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

Tady je příklad, který poskytuje název účtu a přístupový klíč pro připojení ke službě 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í vaše aplikace logiky funguje uceleně s platnými parametry. Přesto ale musíte autorizovat všechna připojení OAuth k vygenerování platných přístupových tokenů 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 Microsoft Entra k autorizaci připojení pro aplikaci logiky zaregistrovanou v Microsoft Entra ID. Například tato definice prostředku připojení Azure Data Lake ukazuje, jak odkazovat na parametry šablony, které zpracovávají informace instančního 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 pro vašeho tenanta Microsoft Entra
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 tyto parametry pro ukázkové připojení:

{
   "$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>')]"

Pokud chcete 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 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 definici pracovního postupu pro aplikaci logiky, která se má použít 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 komplikovat váš kód z důvodu rozdílů v vyhodnocení výrazů.

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

  1. Vytvořte šablonu a deklarujte parametry šablony pro hodnoty pro přijetí a použití při nasazení.

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

  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, která se používá v příkladech 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