Übersicht: Automatisieren der Bereitstellung für Azure Logic Apps durch Verwenden von Azure Resource Manager-VorlagenOverview: Automate deployment for Azure Logic Apps by using Azure Resource Manager templates

Wenn Sie soweit sind, dass Sie das Erstellen und Bereitstellen Ihrer Logik-App automatisieren möchten, können Sie die Workflowdefinition, die Ihrer Logik-App zugrunde liegt, zu einer Azure Resource Manager-Vorlage erweitern.When you're ready to automate creating and deploying your logic app, you can expand your logic app's underlying workflow definition into an Azure Resource Manager template. In dieser Vorlage sind die Infrastruktur, die Ressourcen, die Parameter und weitere Informationen für die Bereitstellung Ihrer Logik-App definiert.This template defines the infrastructure, resources, parameters, and other information for provisioning and deploying your logic app. Durch das Definieren von Parametern für Werte, die bei der Bereitstellung variieren, auch als Parametrisierung bezeichnet, können Sie Logik-Apps wiederholt und konsistent entsprechend unterschiedlicher Bereitstellungsanforderungen bereitstellen.By defining parameters for values that vary at deployment, also known as parameterizing, you can repeatedly and consistently deploy logic apps based on different deployment needs.

Wenn Sie beispielsweise in Umgebungen für Entwicklung, Testen und Produktion bereitstellen, verwenden Sie wahrscheinlich unterschiedliche Verbindungszeichenfolgen für jede Umgebung.For example, if you deploy to environments for development, test, and production, you likely use different connection strings for each environment. Sie können Vorlagenparameter deklarieren, die unterschiedliche Verbindungszeichenfolgen akzeptieren, und diese Zeichenfolgen dann in einer separaten Parameterdatei speichern.You can declare template parameters that accept different connection strings and then store those strings in a separate parameters file. So können Sie diese Werte ändern, ohne die Vorlage aktualisieren und erneut bereitstellen zu müssen.That way, you can change those values without having to update and redeploy the template. Für Fälle, in denen Sie Parameterwerte haben, die vertraulich sind oder geschützt werden müssen, etwa Kennwörter und Geheimnisse, können Sie diese Werte in Azure Key Vault speichern und diese Werte in die Parameterdatei abrufen.For scenarios where you have parameter values that are sensitive or must be secured, such as passwords and secrets, you can store those values in Azure Key Vault and have your parameters file retrieve those values. In diesen Fällen würden Sie jedoch ein erneutes Bereitstellen vornehmen, um die aktuellen Werte abzurufen.However, in these scenarios, you'd redeploy to retrieve the current values.

In dieser Übersicht sind die Attribute in einer Resource Manager-Vorlage beschrieben, die die Workflowdefinition einer Logik-App enthält.This overview describes the attributes in a Resource Manager template that includes a logic app workflow definition. Sowohl für die Vorlage als auch für die Workflowdefinition wird JSON-Syntax verwendet. Es gibt jedoch einige Unterschiede, weil für die Workflowdefinition auch das Schema der Definitionssprache für Workflows beachtet wird.Both the template and your workflow definition use JSON syntax, but some differences exist because the workflow definition also follows the Workflow Definition Language schema. Beispielsweise unterscheiden sich Vorlagenausdrücke und Workflowdefinitionsausdrücke sowohl darin, wie in ihnen auf Parameter verwiesen wird, als auch in den Werten, die sie akzeptieren können.For example, template expressions and workflow definition expressions differ in how they reference parameters and the values that they can accept.

Tipp

Als einfachste Möglichkeit, eine gültige parametrisierte Logik-App-Vorlage zu erhalten, die weitestgehend zur Bereitstellung bereit ist, verwenden Sie Visual Studio (kostenlose Community Edition oder höher) und die Azure Logic Apps-Tools für Visual Studio.For the easiest way to get a valid parameterized logic app template that's mostly ready for deployment, use Visual Studio (free Community edition or greater) and the Azure Logic Apps Tools for Visual Studio. Sie können dann entweder Ihre Logik-App in Visual Studio erstellen oder in Azure nach einer vorhandenen Logik-App suchen und diese nach Visual Studio herunterladen.You can then either create your logic app in Visual Studio or find and download an existing logic app from Azure into Visual Studio.

Alternativ können Sie Logik-App-Vorlagen erstellen, indem Sie Azure PowerShell mit dem LogicAppTemplate-Modul verwenden.Or, you can create logic app templates by using Azure PowerShell with the LogicAppTemplate module.

In der Beispiel-Logik-App in diesem Thema wird ein Office 365 Outlook-Trigger verwendet, der ausgelöst wird, wenn eine neue E-Mail eingetroffen ist, und wird eine Azure Blob Storage-Aktion verwendet, in der ein Blob für den E-Mail-Text erstellt und dieses Blob in einen Azure-Speichercontainer hochgeladen wird.The example logic app in this topic uses an Office 365 Outlook trigger that fires when a new email arrives and an Azure Blob Storage action that creates a blob for the email body and uploads that blob to an Azure storage container. In den Beispielen wird auch veranschaulicht, wie Werte parametrisiert werden, die bei der Bereitstellung variieren.The examples also show how to parameterize values that vary at deployment.

Weitere Informationen zu Resource Manager-Vorlagen finden Sie in den folgenden Themen:For more information about Resource Manager templates, see these topics:

Logik-App-Beispielvorlagen finden Sie in den folgenden Beispielen:For sample logic app templates, see these examples:

Vorlagenressourceninformationen, die speziell für Logik-Apps, Integrationskonten und Integrationskontoartefakte gelten, finden Sie unter Microsoft.Logic-Ressourcentypen.For template resource information specific to logic apps, integration accounts, and integration account artifacts, see Microsoft.Logic resource types.

VorlagenstrukturTemplate structure

Auf der obersten Ebene hat eine Resource Manager-Vorlage diese Struktur, die vollständig im Thema Verstehen der Struktur und Syntax von Azure Resource Manager-Vorlagen beschrieben ist:At the top level, a Resource Manager template follows this structure, which is fully described in the Azure Resource Manager template structure and syntax topic:

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

In einer Logik-App-Vorlage arbeiten Sie hauptsächlich mit diesen Vorlagenobjekten:For a logic app template, you primarily work with these template objects:

attributeAttribute BeschreibungDescription
parameters Deklariert die Vorlagenparameter zum Akzeptieren der Werte, die verwendet werden sollen, wenn Ressourcen zur Bereitstellung in Azure erstellt und angepasst werden.Declares the template parameters for accepting the values to use when creating and customizing resources for deployment in Azure. Diese Parameter akzeptieren z. B. die Werte für den Namen und den Speicherort Ihrer Logik-App, Verbindungen und weitere Ressourcen, die für die Bereitstellung erforderlich sind.For example, these parameters accept the values for your logic app's name and location, connections, and other resources necessary for deployment. Sie können diese Parameterwerte in einer Parameterdatei speichern, die weiter unten in diesem Thema beschrieben ist.You can store these parameter values in a parameters file, which is described later in this topic. Allgemeine Informationen finden Sie unter Parameter – Struktur und Syntax einer Resource Manager-Vorlage.For general details, see Parameters - Resource Manager template structure and syntax.
resources Definiert die Ressourcen, die erstellt oder aktualisiert und in einer Azure-Ressourcengruppe bereitgestellt werden sollen, wozu Ihre Logik-App, Verbindungen, Azure-Speicherkonten usw. gehören.Defines the resources to create or update and deploy to an Azure resource group, such as your logic app, connections, Azure storage accounts, and so on. Allgemeine Informationen finden Sie unter Ressourcen – Struktur und Syntax einer Resource Manager-Vorlage.For general details, see Resources - Resource Manager template structure and syntax.

Für eine Logik-App-Vorlage wird das folgende Dateinamenformat verwendet:Your logic app template uses this file name format:

<logik-app-name>.json<logic-app-name>.json

Wichtig

Für Vorlagensyntax wird die Groß-/Kleinschreibung beachtet. Daher müssen darauf achten, eine konsistente Schreibung zu verwenden.Template syntax is case-sensitive so make sure that you use consistent casing.

VorlagenparameterTemplate parameters

Eine Logik-App-Vorlage hat mehrere parameters-Objekte, die auf unterschiedlichen Ebenen vorhanden sind und unterschiedliche Funktionen erfüllen.A logic app template has multiple parameters objects that exist at different levels and perform different functions. Beispielsweise können Sie auf der obersten Ebene Vorlagenparameter für die Werte deklarieren, die zur Bereitstellung akzeptiert und verwendet werden sollen, wenn Sie Ressourcen in Azure erstellen und bereitstellen. Dazu gehören zum Beispiel:For example, at the top level, you can declare template parameters for the values to accept and use at deployment when creating and deploying resources in Azure, for example:

  • Ihre Logik-AppYour logic app

  • Verbindungen, die in ihrer Logik verwendet werden, um über verwaltete Connectors auf andere Dienste und Systeme zuzugreifenConnections that your logic uses to access other services and systems through managed connectors

  • Weitere Ressourcen, die zur Bereitstellung Ihrer Logik-App erforderlich sindOther resources that your logic app needs for deployment

    Wird in Ihrer Logik-App beispielsweise ein Integrationskonto für B2B-Szenarien (Business-to-Business) verwendet, wird im parameters-Objekt auf oberster Ebene der Vorlage der Parameter deklariert, der die Ressourcen-ID für dieses Integrationskonto akzeptiert.For example, if your logic app uses an integration account for business-to-business (B2B) scenarios, the template's top-level parameters object declares the parameter that accepts the resource ID for that integration account.

Nachstehend sind die allgemeine Struktur und Syntax für eine Parameterdefinition angegeben, die vollständig unter Parameter – Struktur und Syntax einer Resource Manager-Vorlage beschrieben ist:Here is the general structure and syntax for a parameter definition, which is fully described by Parameters - Resource Manager template structure and syntax:

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

In diesem Beispiel sind lediglich die Vorlagenparameter für die Werte aufgeführt, die zum Erstellen und Bereitstellen dieser Ressourcen in Azure verwendet werden:This example shows just the template parameters for the values used to create and deploy these resources in Azure:

  • Name und Speicherort für Ihre Logik-AppName and location for your logic app
  • ID, die für ein Integrationskonto verwendet werden soll, das mit der Logik-App verknüpft istID to use for an integration account that's linked to the logic app
{
   "$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",
         "min length": 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": {}
}

Jeder dieser Parameter hat, sofern er kein Parameter ist, in dem ein sensibler oder zu schützender Wert (etwa Benutzername, Kennwort und Geheimnis) verwaltet wird, ein defaultValue-Attribut, wobei es Fälle gibt, in denen der Standardwert ein leerer Wert ist.Except for parameters that handle values that are sensitive or must be secured, such as usernames, passwords, and secrets, all these parameters include defaultValue attributes, although in some cases, the default values are empty values. Die Bereitstellungswerte, die für diese Vorlagenparameter verwendet werden sollen, sind in der Beispiel-Parameterdatei enthalten, die weiter unten in diesem Thema beschrieben ist.The deployment values to use for these template parameters are provided by the sample parameters file described later in this topic.

Informationen dazu, wie Vorlagenparameter geschützt werden, finden Sie in den folgenden Themen:To secure template parameters, see these topics:

In anderen Vorlagenobjekten wird häufig auf Vorlagenparameter verwiesen, sodass für sie die Werte verwendet werden können, die über Vorlagenparameter übergeben werden, beispielsweise:Other template objects often reference template parameters so that they can use the values that pass through template parameters, for example:

  • Im „resources“-Objekt Ihrer Vorlage, das weiter unten in diesem Thema beschrieben ist, ist jede Ressource in Azure definiert, die Sie erstellen und bereitstellen möchten, etwa die Ressourcendefinition Ihrer Logik-App.Your template's resources object, described later in this topic, defines each resource in Azure that you want to create and deploy, such as your logic app's resource definition. Für diese Ressourcen werden häufig Vorlagenparameterwerte verwendet, z. B. der Name und Speicherort Ihrer Logik-App sowie Verbindungsinformationen.These resources often use template parameter values, such as your logic app's name and location and connection information.

  • Auf einer tieferen Ebene in der Ressourcendefinition ihrer Logik-App sind im „parameters“-Objekt Ihrer Workflowdefinition Parameter für die Werte deklariert, die in der Runtime Ihrer Logik-App zu verwenden sind.At a deeper level in your logic app's resource definition, your workflow definition's parameters object declares parameters for the values to use at your logic app's runtime. Beispielsweise können Sie Workflowdefinitionsparameter für den Benutzernamen und das Kennwort deklarieren, die in einem HTTP-Trigger zur Authentifizierung verwendet werden.For example, you can declare workflow definition parameters for the username and password that an HTTP trigger uses for authentication. Um die Werte für Workflowdefinitionsparameter anzugeben, verwenden Sie das parameters-Objekt, das sich außerhalb Ihrer Workflowdefinition, aber noch innerhalb der Ressourcendefinition Ihrer Logik-App befindet.To specify the values for workflow definition parameters, use the parameters object that's outside your workflow definition but still inside your logic app's resource definition. In diesem äußeren parameters-Objekt können Sie auf zuvor deklarierte Vorlagenparameter verweisen, die bei einer Bereitstellung Werte aus einer Parameterdatei übernehmen können.In this outer parameters object, you can reference previously declared template parameters, which can accept values at deployment from a parameters file.

Beim Verweisen auf Parameter wird für Vorlagenausdrücke und-Funktionen eine unterschiedliche Syntax verwendet und verhalten sich diese anders als Workflowdefinitionsausdrücke und -funktionen.When referencing parameters, template expressions and functions use different syntax and behave differently from workflow definition expressions and functions. Weitere Informationen zu diesen Unterschieden finden Sie weiter unten in diesem Thema unter Verweise auf Parameter.For more information about these differences, see References to parameters later in this topic.

Bewährte Methoden: VorlagenparameterBest practices - template parameters

Nachstehend sind einige bewährte Methoden zum Definieren von Parametern beschrieben:Here are some best practices for defining parameters:

  • Deklarieren Sie Parameter nur für Werte, die je nach Ihren Bereitstellungsanforderungen variieren.Declare parameters only for values that vary, based on your deployment needs. Deklarieren Sie keine Parameter für Werte, die über verschiedene Bereitstellungsanforderungen hinweg gleich bleiben.Don't declare parameters for values that stay the same across different deployment requirements.

  • Fügen Sie das defaultValue-Attribut, das leere Werte angeben kann, für alle Parameter ein, die keine sensiblen oder zu schützenden Daten enthalten.Include the defaultValue attribute, which can specify empty values, for all parameters except for values that are sensitive or must be secured. Verwenden Sie für Benutzernamen, Kennwörter und Geheimnisse immer geschützte Parameter.Always use secured parameters for user names, passwords, and secrets. Um sensible Parameterwerte auszublenden oder zu schützen, befolgen Sie die Anweisungen in den folgenden Themen:To hide or protect sensitive parameter values, follow the guidance in these topics:

  • Um Vorlagenparameternamen von Workflowdefinitionsparameternamen zu unterscheiden, können Sie beschreibende Vorlagenparameternamen verwenden, etwa: TemplateFabrikamPasswordTo differentiate template parameter names from workflow definition parameter names, you can use descriptive template parameter names, for example: TemplateFabrikamPassword

Weitere bewährte Methoden für Vorlagen finden Sie unter Bewährte Methoden für Vorlagenparameter.For more template best practices, see Best practices for template parameters.

VorlagenparameterdateiTemplate parameters file

Wenn Sie die Werte für Vorlagenparameter bereitstellen möchten, speichern Sie diese Werte in einer Parameterdatei.To provide the values for template parameters, store those values in a parameters file. Auf diese Weise können Sie entsprechend Ihren Bereitstellungsanforderungen unterschiedliche Parameterdateien verwenden.That way, you can use different parameters files based on your deployment needs. Das für einen Dateinamen zu verwendende Format sieht wie folgt aus:Here is the file name format to use:

  • Name der Vorlagendatei einer Logik-App: <logik-app-name>.jsonLogic app template file name: <logic-app-name>.json
  • Name einer Parameterdatei: <logik-app-name>.parameters.jsonParameters file name: <logic-app-name>.parameters.json

Die Parameterdatei hat die folgende Struktur, wobei die Datei einen Schlüsseltresorverweis (Key Vault-Verweis) zum Übergeben eines sicheren Parameterwerts mit Azure Key Vault enthält:Here is the structure inside the parameters file, which includes a key vault reference for passing a secure parameter value with 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>
   }
}

In dieser Beispielparameterdatei sind die Werte für die Vorlagenparameter angegeben, die weiter oben in diesem Thema deklariert sind:This example parameters file specifies the values for the template parameters declared earlier in this topic:

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

VorlagenressourcenTemplate resources

Die Vorlage hat ein resources-Objekt. Dieses Objekt ist ein Array, das Definitionen für jede Ressource enthält, die in Azure erstellt und bereitgestellt werden soll. Dazu gehören die Ressourcendefinition Ihrer Logik-App, jegliche Verbindungsressourcendefinitionen und alle weiteren Ressourcen, die ihre Logik-App zur Bereitstellung benötigt.Your template has a resources object, which is an array that contains definitions for each resource to create and deploy in Azure, such as your logic app's resource definition, any connection resource definitions, and any other resources that your logic app needs for deployment.

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

Hinweis

Vorlagen können Ressourcendefinitionen für mehrere Logik-Apps enthalten. Stellen Sie daher sicher, dass in allen Ihrer Logik-App-Ressourcen dieselbe Azure-Ressourcengruppe angegeben ist.Templates can include resource definitions for multiple logic apps, so make sure that all your logic app resources specify the same Azure resource group. Wenn Sie die Vorlage über Visual Studio in einer Azure-Ressourcengruppe bereitstellen, werden Sie zur Angabe der Logik-App aufgefordert, die Sie öffnen möchten.When you deploy the template to an Azure resource group by using Visual Studio, you're prompted for which logic app that you want to open. Außerdem kann Ihr Azure-Ressourcengruppenprojekt mehrere Vorlagen enthalten. Achten Sie daher darauf, dass Sie die richtige Parameterdatei auswählen, wenn Sie dazu aufgefordert werden.Also, your Azure resource group project can contain more than one template, so make sure that you select the correct parameters file when prompted.

Allgemeine Informationen zu Vorlagenressourcen und deren Attributen finden Sie in den folgenden Themen:For general information about template resources and their attributes, see these topics:

Ressourcendefinition einer Logik-AppLogic app resource definition

Die Ressourcendefinition ihrer Logik-App beginnt mit dem properties-Objekt, das folgende Informationen enthält:Your logic app's resource definition starts with the properties object, which includes this information:

  • Der Zustand Ihrer Logik-App bei der BereitstellungYour logic app's state at deployment
  • Die ID für jedes Integrationskonto, das von ihrer Logik-App verwendet wirdThe ID for any integration account used by your logic app
  • Die Workflowdefinition ihrer Logik-AppYour logic app's workflow definition
  • Ein parameters-Objekt, das die zur Laufzeit zu verwendenden Werte festlegtA parameters object that sets the values to use at runtime
  • Weitere Ressourceninformationen zu ihrer Logik-App, z. B. Name, Typ, Speicherort usw.Other resource information about your logic app, such as name, type, location, and so on
{
   "$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": {}
         },
         "name": "[parameters('LogicAppName')]", // Template parameter reference
         "type": "Microsoft.Logic/workflows",
         "location": "[parameters('LogicAppLocation')]", // Template parameter reference
         "tags": {
           "displayName": "LogicApp"
         },
         "apiVersion": "2016-06-01",
         "dependsOn": [
         ]
      }
      // End logic app resource definition
   ],
   "outputs": {}
}

Die folgenden Attribute gehören speziell zur Ressourcendefinition Ihrer Logik-App:Here are the attributes that are specific to your logic app resource definition:

attributeAttribute ErforderlichRequired typeType BeschreibungDescription
state JaYes StringString Der Zustand Ihrer Logik-App bei der Bereitstellung, wobei Enabled bedeutet, dass Ihre Logik-App aktiv ist, und Disabled bedeutet, dass Ihre Logik-App inaktiv ist.Your logic app's state at deployment where Enabled means your logic app is live and Disabled means that your logic app is inactive. Die Option Disabled können Sie beispielsweise verwenden, wenn Ihre Logik-App noch nicht aktiviert, aber bereits als Entwurfsversion bereitgestellt werden soll.For example, if you're not ready for your logic app to go live but want to deploy a draft version, you can use the Disabled option.
integrationAccount NeinNo ObjectObject Wird in Ihrer Logik-App ein Integrationskonto verwendet, das Artefakte für B2B-Szenarien (Business-to-Business) speichert, enthält dieses Objekt das id-Attribut, das die ID für das Integrationskonto angibt.If your logic app uses an integration account, which stores artifacts for business-to-business (B2B) scenarios, this object includes the id attribute, which specifies the ID for the integration account.
definition JaYes ObjectObject Die Workflowdefinition, die Ihrer Logik-App zugrunde liegt. Diese Definition ist das Objekt, das in der Codeansicht angezeigt wird und im Thema Schemareferenz zur Definitionssprache für Workflows in Azure Logic Apps vollständig beschrieben ist.Your logic app's underlying workflow definition, which is the same object that appears in code view and is fully described in the Schema reference for Workflow Definition Language topic. In dieser Workflowdefinition sind im parameters-Objekt die Parameter für die Werte deklariert, die zur Logik-App-Laufzeit verwendet werden sollen.In this workflow definition, the parameters object declares parameters for the values to use at logic app runtime. Weitere Informationen hierzu finden Sie unter Workflowdefinition und -parameter.For more information, see Workflow definition and parameters.

Um die Attribute anzuzeigen, die zur Workflowdefinition ihrer Logik-App gehören, wechseln Sie im Azure-Portal oder in Visual Studio von der „Entwurfsansicht“ in die „Codeansicht“, oder verwenden Sie ein Tool wie Azure-Ressourcen-Explorer.To view the attributes in your logic app's workflow definition, switch from "design view" to "code view" in the Azure portal or Visual Studio, or by using a tool such as Azure Resource Explorer.

parameters NeinNo ObjectObject Die zur Workflowdefinition gehörenden Parameterwerte, die zur Logik-App-Laufzeit verwendet werden sollen.The workflow definition parameter values to use at logic app runtime. Die Parameterdefinitionen für diese Werte sind im „parameters“-Objekt Ihrer Workflowdefinition enthalten.The parameter definitions for these values appear inside your workflow definition's parameters object. Wenn in Ihrer Logik-App verwaltete Connectors für den Zugriff auf andere Dienste und Systeme verwendet werden, enthält dieses Objekt außerdem ein $connections-Objekt, das die zur Laufzeit zu verwendenden Verbindungswerte festlegt.Also, if your logic app uses managed connectors for accessing other services and systems, this object includes a $connections object that sets the connection values to use at runtime.
accessControl NeinNo ObjectObject Hiermit werden Sicherheitsattribute für Ihre Logik-App angegeben, etwa Einschränken des IP-Zugriffs auf Anforderungstrigger oder Ausführungsverlaufseingaben und -ausgaben.For specifying security attributes for your logic app, such as restricting IP access to request triggers or run history inputs and outputs. Weitere Informationen finden Sie unter Schützen des Zugriffs und der Daten in Azure Logic Apps.For more information, see Secure access to logic apps.

Vorlagenressourceninformationen, die speziell für Logik-Apps, Integrationskonten und Integrationskontoartefakte gelten, finden Sie unter Microsoft.Logic-Ressourcentypen.For template resource information specific to logic apps, integration accounts, and integration account artifacts, see Microsoft.Logic resource types.

Workflowdefinition und -parameterWorkflow definition and parameters

Die Workflowdefinition ihrer Logik-App ist im definition-Objekt enthalten, das im properties-Objekt in der Ressourcendefinition ihrer Logik-App enthalten ist.Your logic app's workflow definition appears in the definition object, which appears in the properties object inside your logic app's resource definition. Dieses definition-Objekt ist mit dem Objekt identisch, das in der Codeansicht angezeigt wird und im Thema Schemareferenz zur Definitionssprache für Workflows in Azure Logic Apps vollständig beschrieben ist.This definition object is the same object that appears in code view and is fully described in the Schema reference for Workflow Definition Language topic. Die Workflowdefinition enthält ein inneres parameters-Deklarationsobjekt, in dem Sie die Parameter für die Werte definieren, die in Ihrer Workflowdefinition zur Laufzeit verwendet werden.Your workflow definition includes an inner parameters declaration object where you can define new or edit existing parameters for the values that are used by your workflow definition at runtime. Sie können dann im Trigger oder in Aktionen in Ihrem Workflow auf diese Parameter verweisen.You can then reference these parameters inside the trigger or actions in your workflow. Standardmäßig ist dieses parameters-Objekt leer. Dies gilt nur dann nicht, wenn in Ihrer Logik-App verwaltete Connectors verwendet werden, um Verbindungen mit anderen Diensten und Systemen herzustellen.By default, this parameters object is empty unless your logic app creates connections to other services and systems through managed connectors.

Um die Werte für Workflowdefinitionsparameter festzulegen, verwenden Sie das parameters-Objekt, das sich außerhalb Ihrer Workflowdefinition, aber noch innerhalb der Ressourcendefinition Ihrer Logik-App befindet.To set the values for workflow definition parameters, use the parameters object that's outside your workflow definition but still inside your logic app's resource definition. In diesem äußeren parameters-Objekt können Sie dann auf Ihre zuvor deklarierten Vorlagenparameter verweisen, die bei einer Bereitstellung Werte aus einer Parameterdatei übernehmen können.In this outer parameters object, you can then reference your previously declared template parameters, which can accept values at deployment from a parameters file.

Tipp

Es empfiehlt sich, dass Sie nicht direkt aus der Workflowdefinition auf Vorlagenparameter verweisen, die bei der Bereitstellung ausgewertet werden.As a best practice, don't directly reference template parameters, which are evaluated at deployment, from inside the workflow definition. Stattdessen sollten Sie einen Workflowdefinitionsparameter deklarieren, den Sie dann in dem parameters-Objekt festlegen können, das sich außerhalb Ihrer Workflowdefinition, aber noch innerhalb der Ressourcendefinition Ihrer Logik-App befindet.Instead, declare a workflow definition parameter, which you can then set in the parameters object that's outside your workflow definition but still inside your logic app's resource definition. Weitere Informationen finden Sie unter Verweise auf Parameter.For more information, see References to parameters.

In der folgenden Syntax ist zu sehen, wo Sie Parameter sowohl auf der Vorlagen- als auch der Workflowdefinitionsebene deklarieren können, und es ist zu sehen, wo Sie diese Parameterwerte festlegen können, indem Sie auf die Vorlagen- und Workflowdefinitionsparameter verweisen:This syntax shows where you can declare parameters at both the template and workflow definition levels along with where you can set those parameter values by referencing the template and workflow definition parameters:

{
   "$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>": "[parameters('<template-parameter-name>')]"
            },
            "accessControl": {}
         },
         <other-logic-app-resource-definition-attributes>
      }
      // End logic app resource definition
   ],
   "outputs": {}
}

Sichere WorkflowdefinitionsparameterSecure workflow definition parameters

Deklarieren Sie einen Workflowdefinitionsparameter, der zur Laufzeit vertrauliche Informationen, Kennwörter, Zugriffsschlüssel oder Geheimnisse enthält, mit dem Parametertyp securestring oder secureobject.For a workflow definition parameter that handles sensitive information, passwords, access keys, or secrets at runtime, declare or edit the parameter to use the securestring or secureobject parameter type. Auf diesen Parameter können Sie durchgängig und innerhalb Ihrer Workflowdefinition verweisen.You can reference this parameter throughout and within your workflow definition. Deklarieren Sie auf der obersten Ebene der Vorlage einen Parameter, der denselben Typ hat, um diese Informationen während der Bereitstellung zu verarbeiten.At the template's top level, declare a parameter that has the same type to handle this information at deployment.

Um den Wert für den Workflowdefinitionsparameter festzulegen, verwenden Sie das parameters-Objekt, das sich außerhalb Ihrer Workflowdefinition, aber noch innerhalb der Ressourcendefinition Ihrer Logik-App befindet, um auf den Vorlagenparameter zu verweisen.To set the value for the workflow definition parameter, use the parameters object that's outside your workflow definition but still inside your logic app resource definition to reference the template parameter. Zum Schluss speichern Sie diesen Wert, um ihn bei der Bereitstellung an Ihren Vorlagenparameter zu übergeben, in Azure Key Vault, und verweisen Sie auf diesen Schlüsseltresor in der Parameterdatei, die bei der Bereitstellung von Ihrer Vorlage verwendet wird.Finally, to pass the value to your template parameter at deployment, store that value in Azure Key Vault and reference that key vault in the parameters file that's used by your template at deployment.

In dieser Beispielvorlage ist gezeigt, wie Sie diese Aufgaben durchführen können, indem Sie bei Bedarf geschützte (sichere) Parameter definieren, damit Sie deren Werte in Azure Key Vault speichern können:This example template shows how you can complete these tasks by defining secured parameters when necessary so that you can store their values in Azure Key Vault:

  • Deklarieren Sie sichere Parameter für die Werte, die zum Authentifizieren von Zugriffen verwendet werden.Declare secure parameters for the values used to authenticate access.
  • Verwenden Sie diese Werte sowohl auf der Vorlagen- als auch auf der Workflowdefinitionsebene.Use these values at both the template and workflow definition levels.
  • Stellen Sie diese Werte über eine Parameterdatei bereit.Provide these values by using a parameters file.

VorlageTemplate

{
   "$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": "[parameters('TemplateAuthenticationType')]", // Template parameter reference
               "fabrikamPassword": "[parameters('TemplateFabrikamPassword')]", // Template parameter reference
               "fabrikamUserName": "[parameters('TemplateFabrikamUserName')]" // Template parameter reference
            },
            "accessControl": {}
         },
         <other-logic-app-resource-attributes>
      }
      // End logic app resource definition
   ],
   "outputs": {}
}

ParameterdateiParameters file

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

Bewährte Methoden: WorkflowdefinitionsparameterBest practices - workflow definition parameters

Gehen Sie entsprechend den folgenden bewährten Methoden vor, um sicherzustellen, dass der Logik-App-Designer Workflowdefinitionsparameter korrekt anzeigen kann:To make sure that the Logic App Designer can correctly show workflow definition parameters, follow these best practices:

Weitere Informationen zu Workflowdefinitionsparametern finden Sie unter Parameter – Schemareferenz zur Definitionssprache für Workflows in Azure Logic Apps.For more information about workflow definition parameters, see Parameters - Workflow Definition Language.

VerbindungsressourcendefinitionenConnection resource definitions

Werden in Ihrer Logik-App Verbindungen mit anderen Diensten und Systemen erstellt und verwendet, indem verwaltete Connectors verwendet werden, enthält Ihr resources-Objekt die Ressourcendefinitionen für diese Verbindungen.When your logic app creates and uses connections to other services and system by using managed connectors, your template's resources object contains the resource definitions for those connections.

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

In Verbindungsressourcendefinitionen wird für deren Werte auf Parameter auf der obersten Ebene der Vorlage verwiesen. Dies bedeutet, dass Sie diese Werte bei der Bereitstellung über eine Parameterdatei bereitstellen können.Connection resource definitions reference the template's top-level parameters for their values, which means you can provide these values at deployment by using a parameters file. Achten Sie darauf, dass für Verbindungen dieselbe Azure-Ressourcengruppe und derselbe Azure-Speicherort wie für Ihre Logik-App verwendet werden.Make sure that connections use the same Azure resource group and location as your logic app.

Es folgt eine Beispielressourcendefinition für eine Office 365 Outlook-Verbindung und die entsprechenden Vorlagenparameter:Here is an example resource definition for an Office 365 Outlook connection and the corresponding template parameters:

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

Die Ressourcendefinition ihrer Logik-App funktioniert auch auf folgende Weise mit Verbindungsressourcendefinitionen:Your logic app's resource definition also works with connection resource definitions in these ways:

  • In Ihrer Workflowdefinition ist im parameters-Objekt ein $connections-Parameter für die Verbindungswerte deklariert, die zur Logik-App-Laufzeit verwendet werden sollen.Inside your workflow definition, the parameters object declares a $connections parameter for the connection values to use at logic app runtime. Außerdem werden in dem Trigger oder der Aktion, in dem oder der eine Verbindung hergestellt wird, die entsprechenden Werte verwendet, die durch diesen $connections-Parameter übergeben werden.Also, the trigger or action that creates a connection uses the corresponding values that pass through this $connections parameter.

  • Außerhalb Ihrer Workflowdefinition, aber noch innerhalb der Ressourcendefinition ihrer Logik-App, werden in einem anderen parameters-Objekt die Werte festgelegt, die zur Laufzeit für den $connections-Parameter verwendet werden sollen, indem auf die entsprechenden Vorlagenparameter verwiesen wird.Outside your workflow definition but still inside your logic app's resource definition, another parameters object sets the values to use at runtime for the $connections parameter by referencing the corresponding template parameters. Für diese Werte werden Vorlagenausdrücke verwendet, um auf Ressourcen zu verweisen, in denen die Metadaten für die Verbindungen in ihrer Logik-App sicher gespeichert sind.These values use template expressions to reference resources that securely store the metadata for the connections in your logic app.

    Metadaten können z. B. Verbindungszeichenfolgen und Zugriffstoken enthalten, die Sie in Azure Key Vault speichern können.For example, metadata can include connection strings and access tokens, which you can store in Azure Key Vault. Um diese Werte an Ihre Vorlagenparameter zu übergeben, verweisen Sie in der Parameterdatei, die während der Bereitstellung für Ihre Vorlage verwendet wurde, auf diesen Schlüsseltresor.To pass those values to your template parameters, you reference that key vault in the parameters file that's used by your template at deployment. Weitere Informationen zu den Unterschieden beim Verweisen auf Parameter finden Sie weiter unten in diesem Thema unter Verweise auf Parameter.For more information about differences in referencing parameters, see References to parameters later in this topic.

    Wenn Sie die Workflowdefinition ihrer Logik-App im Azure-Portal oder in Visual Studio in der Codeansicht öffnen, wird das $connections-Objekt außerhalb Ihrer Workflow Definition, aber auf derselben Ebene angezeigt.When you open your logic app's workflow definition in code view through the Azure portal or Visual Studio, the $connections object appears outside your workflow definition but at the same level. Diese Reihenfolge in der Codeansicht erleichtert das Verweisen auf diese Parameter, wenn Sie die Workflowdefinition manuell aktualisieren:This ordering in code view makes these parameters easier to reference when you manually update the workflow definition:

    {
       "$connections": {<workflow-definition-parameter-connection-values-runtime},
       "definition": {<workflow-definition>}
    }
    
  • Die Ressourcendefinition ihrer Logik-App hat ein dependsOn-Objekt, in dem die Abhängigkeiten für die Verbindungen angegeben sind, die von ihrer Logik-App verwendet werden.Your logic app's resource definition has a dependsOn object that specifies the dependencies on the connections used by your logic app.

Jede Verbindung, die Sie erstellen, hat einen eindeutigen Namen in Azure.Each connection that you create has a unique name in Azure. Wenn Sie mehrere Verbindungen mit demselben Dienst oder System erstellen, wird an jeden Verbindungsnamen eine Zahl angefügt, die mit jeder neu erstellten Verbindung inkrementiert wird, beispielsweise office365, office365-1 usw.When you create multiple connections to the same service or system, each connection name is appended with a number, which increments with each new connection created, for example, office365, office365-1, and so on.

In diesem Beispiel sind die Interaktionen zwischen der Ressourcendefinition ihrer Logik-App und einer Verbindungsressourcendefinition für Office 365 Outlook veranschaulicht:This example shows the interactions between your logic app's resource definition and a connection resource definition for 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": {}
}

Sichere VerbindungsparameterSecure connection parameters

Für einen Verbindungsparameter, der vertrauliche Informationen, Kennwörter, Zugriffsschlüssel oder Geheimnisse beinhaltet, enthält die Ressourcendefinition der Verbindung ein parameterValues-Objekt, in dem diese Werte im Format eines Name-Wert-Paars angegeben sind.For a connection parameter that handles sensitive information, passwords, access keys, or secrets, the connection's resource definition includes a parameterValues object that specifies these values in name-value pair format. Um diese Informationen auszublenden, können Sie die Vorlagenparameter für diese Werte mit dem Parametertyp securestring oder secureobject deklarieren.To hide this information, you can declare or edit the template parameters for these values by using the securestring or secureobject parameter types. Diese Informationen können Sie dann in Azure Key Vault speichern.You can then store that information in Azure Key Vault. Um diese Werte an Ihre Vorlagenparameter zu übergeben, verweisen Sie in der Parameterdatei, die während der Bereitstellung für Ihre Vorlage verwendet wurde, auf diesen Schlüsseltresor.To pass those values to your template parameters, you reference that key vault in the parameters file that's used by your template at deployment.

Es folgt ein Beispiel, in dem der Kontoname und der Zugriffsschlüssel für eine Azure Blob Storage-Verbindung bereitstellt werden:Here is an example that provides the account name and access key for an Azure Blob Storage connection:

ParameterdateiParameters file

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

VorlageTemplate

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

Authentifizieren von VerbindungenAuthenticate connections

Nach der Bereitstellung funktioniert Ihre Logik-App vollständig mit gültigen Parametern.After deployment, your logic app works end-to-end with valid parameters. Allerdings müssen Sie weiterhin jede OAuth-Verbindung autorisieren, um gültige Zugriffstoken zum Authentifizieren Ihrer Anmeldeinformationen zu generieren.However, you must still authorize any OAuth connections to generate valid access tokens for authenticating your credentials. Weitere Informationen finden Sie unter Autorisieren von OAuth-Verbindungen.For more information, see Authorize OAuth connections.

Für einige Verbindungen wird die Verwendung eines Azure AD-Dienstprinzipals (Azure Active Directory) unterstützt, um Verbindungen für eine Logik-App zu autorisieren, die in Azure AD registriert ist.Some connections support using an Azure Active Directory (Azure AD) service principal to authorize connections for a logic app that's registered in Azure AD. Als Beispiel ist in dieser Azure Data Lake-Verbindungsressourcendefinition gezeigt, wie auf die Vorlagenparameter verwiesen wird, die die Informationen des Dienstprinzipals enthalten, und wie diese Parameter in der Vorlage deklariert sind:For example, this Azure Data Lake connection resource definition shows how to reference the template parameters that handle the service principal's information and how the template declares these parameters:

VerbindungsressourcendefinitionConnection resource definition

{
   <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')]"
      }
   }
}
attributeAttribute BeschreibungDescription
token:clientId Die Anwendungs- oder Client-ID, die Ihrem Dienstprinzipal zugeordnet istThe application or client ID associated with your service principal
token:clientSecret Der Schlüsselwert, der Ihrem Dienstprinzipal zugeordnet istThe key value associated with your service principal
token:TenantId Die Verzeichnis-ID für Ihren Azure AD-MandantenThe directory ID for your Azure AD tenant
token:grantType Der angeforderte Gewährungstyp, der gleich client_credentials sein muss.The requested grant type, which must be client_credentials. Weitere Informationen finden Sie unter Microsoft Identity Platform und der Fluss von OAuth 2.0-Clientanmeldeinformationen.For more information, see Microsoft identity platform and the OAuth 2.0 client credentials flow.

VorlagenparameterdefinitionenTemplate parameter definitions

In dem auf oberster Vorlagenebene befindlichen parameters-Objekt sind diese Parameter für die Beispielverbindung deklariert:The template's top-level parameters object declares these parameters for the example connection:

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

Weitere Informationen zum Arbeiten mit Dienstprinzipale finden Sie in den folgenden Themen:For more information about working with service principals, see these topics:

Verweise auf ParameterReferences to parameters

Um auf Vorlagenparameter zu verweisen, können Sie Vorlagenausdrücke mit Vorlagenfunktionen verwenden, die bei einer Bereitstellung ausgewertet werden.To reference template parameters, you can use template expressions with template functions, which are evaluated at deployment. Für Vorlagenausdrücke werden eckige Klammern ( [] ) verwendet:Template expressions use square brackets ([]):

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

Um auf Workflowdefinitionsparameter zu verweisen, verwenden Sie Workflowdefinitions-Sprachausdrücke und -Funktionen, die zur Laufzeit ausgewertet werden.To reference workflow definition parameters, you use Workflow Definition Language expressions and functions, which are evaluated at runtime. Möglicherweise bemerken Siet, dass einige Vorlagenfunktionen und Workflowdefinitionsfunktionen denselben Namen haben.You might notice that some template functions and workflow definition functions have the same name. Ein Workflowdefinitionsausdruck beginnt mit dem „At“-Symbol (@ ):Workflow definition expressions start with the "at" symbol (@):

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

Sie können Vorlagenparameterwerte an die Workflowdefinition für Ihre Logik-App übergeben, um die Werte zur Laufzeit zu verwenden.You can pass template parameter values to your workflow definition for your logic app to use at runtime. Sie sollten allerdings keine Vorlagenparameter, -ausdrücke und -syntax in Ihrer Workflowdefinition verwenden, da der Logik-App-Designer keine Vorlagenelemente unterstützt.However, avoid using template parameters, expressions, and syntax in your workflow definition because the Logic App Designer doesn't support template elements. Außerdem können Vorlagensyntax und -ausdrücke Code wegen Unterschieden dahingehend, wann Ausdrücke ausgewertet werden, komplizierter machen.Also, template syntax and expressions can complicate your code due to differences in when expressions are evaluated.

Führen Sie stattdessen die folgenden allgemeinen Schritte aus, um folgende Aufgaben zu erledigen: Deklarieren der und Verweisen auf die Workflowdefinitionsparameter, die zur Laufzeit verwendet werden sollen, Deklarieren der und Verweisen auf die Vorlagenparameter, die bei einer Bereitstellung verwendet werden sollen, und Angeben der Werte, die bei einer Bereitstellung über eine Parameterdatei übergeben werden sollen.Instead, follow these general steps to declare and reference the workflow definition parameters to use at runtime, declare and reference the template parameters to use at deployment, and specify the values to pass in at deployment by using a parameters file. Ausführliche Informationen finden weiter oben in diesem Thema im Abschnitt Workflowdefinition und -parameter.For full details, see the Workflow definition and parameters section earlier in this topic.

  1. Erstellen Sie Ihre Vorlage, und deklarieren Sie die Vorlagenparameter für die Werte, die bei der Bereitstellung übernommen und verwendet werden sollen.Create your template and declare the template parameters for the values to accept and use at deployment.

  2. Deklarieren Sie in Ihrer Workflowdefinition die Parameter für die Werte, die zur Laufzeit übernommen und verwendet werden sollen.In your workflow definition, declare the parameters for the values to accept and use at runtime. Auf diese Werte können Sie dann durchgängig und innerhalb Ihrer Workflowdefinition verweisen.You can then reference these values throughout and within your workflow definition.

  3. Legen Sie in dem parameters-Objekt, das sich außerhalb Ihrer Workflowdefinition, aber noch innerhalb der Ressourcendefinition ihrer Logik-App befindet, die Werte für Ihre Workflowdefinitionsparameter fest, indem Sie auf die entsprechenden Vorlagenparameter verweisen.In the parameters object that's outside your workflow definition but still inside your logic app's resource definition, set the values for your workflow definition parameters by referencing the corresponding template parameters. Auf diese Weise können Sie Vorlagenparameterwerte an die Workflowdefinitionsparameter übergeben.That way, you can pass template parameter values into your workflow definition parameters.

  4. Geben Sie in der Parameterdatei die Werte für die Vorlage an, die bei einer Bereitstellung verwendet werden sollen.In the parameters file, specify the values for your template to use at deployment.

Vollständige BeispielvorlageFull example template

Nachstehend ist die parametrisierte Beispielvorlage aufgeführt, die in den Beispielen dieses Themas verwendet wird:Here is the parameterized sample template that's used by this topic's examples:

{
  "$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",
         "min length": 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": "2016-06-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": {}
}

Nächste SchritteNext steps