Genel Bakış: Azure Resource Manager şablonları kullanarak Azure Logic Apps dağıtımı otomatikleştirinOverview: Automate deployment for Azure Logic Apps by using Azure Resource Manager templates

Mantıksal uygulamanızı oluşturma ve dağıtma işlemini otomatik hale getirmeye hazırsanız, mantıksal uygulamanızın temel alınan iş akışı tanımını bir Azure Resource Manager şablonunagenişletebilirsiniz.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. Bu şablon, mantıksal uygulamanızı sağlamak ve dağıtmak için altyapıyı, kaynakları, parametreleri ve diğer bilgileri tanımlar.This template defines the infrastructure, resources, parameters, and other information for provisioning and deploying your logic app. Aynı zamanda parametrelendirme olarak da bilinen dağıtımda farklılık gösteren değerler için parametreler tanımlayarak, farklı dağıtım ihtiyaçlarına göre mantıksal uygulamaları sürekli ve tutarlı bir şekilde dağıtabilirsiniz.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.

Örneğin, geliştirme, test ve üretim için ortamlara dağıtırsanız, büyük olasılıkla her ortam için farklı bağlantı dizeleri kullanırsınız.For example, if you deploy to environments for development, test, and production, you likely use different connection strings for each environment. Farklı bağlantı dizelerini kabul eden şablon parametreleri bildirebilir ve sonra bu dizeleri ayrı bir parametre dosyasındadepoaktarabilirsiniz.You can declare template parameters that accept different connection strings and then store those strings in a separate parameters file. Bu şekilde, şablonu güncelleştirmek ve yeniden dağıtmak zorunda kalmadan bu değerleri değiştirebilirsiniz.That way, you can change those values without having to update and redeploy the template. Gizli olan veya güvenli hale getirilmesi gereken, parola ve gizli dizi gibi parametre değerlerine sahip olduğunuz senaryolarda, bu değerleri Azure Key Vault saklayabilir ve parametreler dosyanızın bu değerleri almasına sahip olursunuz.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. Ancak, bu senaryolarda geçerli değerleri almak için yeniden dağıtmanız gerekir.However, in these scenarios, you'd redeploy to retrieve the current values.

Bu genel bakışta, bir mantıksal uygulama iş akışı tanımını içeren Kaynak Yöneticisi şablonundaki öznitelikler açıklanmaktadır.This overview describes the attributes in a Resource Manager template that includes a logic app workflow definition. Hem şablon hem de iş akışı tanımınız JSON sözdizimini kullanır, ancak iş akışı tanımı aynı zamanda iş akışı tanım dili şemasınıtakip ettiğinden bazı farklılıklar vardır.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. Örneğin, şablon ifadeleri ve iş akışı tanımı ifadeleri, parametrelere ve kabul edebileceği değerlere göre farklılık gösterir.For example, template expressions and workflow definition expressions differ in how they reference parameters and the values that they can accept.

İpucu

Dağıtım için en kolay geçerli bir parametreli mantıksal uygulama şablonu almanın en kolay yolu için Visual Studio 'Yu (ücretsiz Community Edition veya üzeri) ve Visual Studio için Azure Logic Apps araçları 'nı kullanın.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. Daha sonra mantıksal uygulamanızı Visual Studio 'da oluşturabilir veya mevcut bir mantıksal uygulamayı Azure 'da Visual Studio 'ya bulabilir ve indirebilirsiniz.You can then either create your logic app in Visual Studio or find and download an existing logic app from Azure into Visual Studio.

Ya da, LogicAppTemplate modülüyle Azure PowerShellkullanarak mantıksal uygulama şablonları oluşturabilirsiniz.Or, you can create logic app templates by using Azure PowerShell with the LogicAppTemplate module.

Bu konudaki örnek mantıksal uygulama, yeni bir e-posta geldiğinde tetiklenen bir Office 365 Outlook tetikleyicisi ve e-posta gövdesi için bir blob oluşturan ve bu Blobun bir Azure depolama kapsayıcısına yükleyen bir Azure Blob depolama eylemi kullanır.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. Örnekler Ayrıca dağıtımda farklılık gösteren değerlerin nasıl parametreleştirilemez olduğunu gösterir.The examples also show how to parameterize values that vary at deployment.

Kaynak Yöneticisi şablonları hakkında daha fazla bilgi için şu konulara bakın:For more information about Resource Manager templates, see these topics:

Örnek mantıksal uygulama şablonları için aşağıdaki örneklere bakın:For sample logic app templates, see these examples:

Logic Apps, tümleştirme hesapları ve tümleştirme hesabı yapılarına özgü şablon kaynak bilgileri için bkz. Microsoft. Logic Resource Types.For template resource information specific to logic apps, integration accounts, and integration account artifacts, see Microsoft.Logic resource types.

Şablon yapısıTemplate structure

En üst düzeyde, bir Kaynak Yöneticisi şablonu, Azure Resource Manager şablon yapısı ve sözdizimi konusunda tam olarak açıklanan bu yapıyı izler: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": {}
}

Mantıksal uygulama şablonu için öncelikle bu şablon nesneleriyle çalışırsınız:For a logic app template, you primarily work with these template objects:

ÖznitelikAttribute AçıklamaDescription
parameters Azure 'da dağıtım için kaynakları oluştururken ve özelleştirirken kullanılacak değerleri kabul etmek için şablon parametrelerini bildirir.Declares the template parameters for accepting the values to use when creating and customizing resources for deployment in Azure. Örneğin, bu parametreler mantıksal uygulamanızın adı ve konumu, bağlantıları ve dağıtım için gereken diğer kaynaklarla ilgili değerleri kabul eder.For example, these parameters accept the values for your logic app's name and location, connections, and other resources necessary for deployment. Bu parametre değerlerini, bu konunun ilerleyen kısımlarında açıklanan bir Parametreler dosyasındasaklayabilirsiniz.You can store these parameter values in a parameters file, which is described later in this topic. Genel Ayrıntılar için bkz. Parametreler-Kaynak Yöneticisi Şablon yapısı ve sözdizimi.For general details, see Parameters - Resource Manager template structure and syntax.
resources Mantıksal uygulamanız, bağlantılarınız, Azure depolama hesaplarınız ve benzeri bir Azure Kaynak grubu oluşturmak veya güncelleştirmek ve dağıtmak için kaynakları tanımlar.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. Genel Ayrıntılar için bkz. Resources-Kaynak Yöneticisi Şablon yapısı ve sözdizimi.For general details, see Resources - Resource Manager template structure and syntax.

Mantıksal uygulama şablonunuz bu dosya adı biçimini kullanır:Your logic app template uses this file name format:

<Logic-App-adı>. JSON<logic-app-name>.json

Önemli

Şablon sözdizimi büyük/küçük harfe duyarlıdır, bu nedenle tutarlı büyük harf kullandığınızdan emin olun.Template syntax is case-sensitive so make sure that you use consistent casing.

Şablon parametreleriTemplate parameters

Mantıksal uygulama şablonunda, farklı düzeylerde parameters bulunan ve farklı işlevler gerçekleştiren birden fazla nesne vardır.A logic app template has multiple parameters objects that exist at different levels and perform different functions. Örneğin, en üst düzeyde, Azure 'da kaynak oluştururken ve dağıttığınızda dağıtım sırasında kabul edilecek ve kullanılacak değerler için şablon parametreleri bildirebilirsiniz, örneğin: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:

  • Mantıksal uygulamanızYour logic app

  • Mantığınızın yönetilen bağlayıcılar aracılığıyla diğer hizmetlere ve sistemlere erişmek için kullandığı bağlantılarConnections that your logic uses to access other services and systems through managed connectors

  • Mantıksal uygulamanızın dağıtım için ihtiyaç duyacağı diğer kaynaklarOther resources that your logic app needs for deployment

    Örneğin, mantıksal uygulamanız işletmeden işletmeye (B2B) senaryolar için bir tümleştirme hesabı kullanıyorsa, şablonun en üst düzey parameters nesnesi bu tümleştirme hesabının kaynak kimliğini kabul eden parametreyi bildirir.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.

Parametreler-Kaynak Yöneticisi Şablon yapısı ve sözdizimitarafından tam olarak açıklanan bir parametre tanımının genel yapısı ve sözdizimi aşağıda verilmiştir: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>"
   }
},

Bu örnekte, Azure 'da bu kaynakları oluşturmak ve dağıtmak için kullanılan değerler için yalnızca şablon parametreleri gösterilmektedir:This example shows just the template parameters for the values used to create and deploy these resources in Azure:

  • Mantıksal uygulamanızın adı ve konumuName and location for your logic app
  • Mantıksal uygulamayla bağlantılı bir tümleştirme hesabı için kullanılacak KIMLIKID 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": {}
}

Gizli olan veya güvenli hale getirilmesi gereken (örneğin, Kullanıcı adları, parolalar ve gizlilikler) değerleri işleyen parametreler dışında, tüm bu parametreler öznitelikler içerir defaultValue , ancak bazı durumlarda varsayılan değerler boş değerlerdir.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. Bu şablon parametreleri için kullanılacak dağıtım değerleri, bu konunun ilerleyen kısımlarında açıklanan örnek Parametreler dosyası tarafından sağlanır.The deployment values to use for these template parameters are provided by the sample parameters file described later in this topic.

Şablon parametrelerinin güvenliğini sağlamak için şu konulara bakın:To secure template parameters, see these topics:

Diğer şablon nesneleri genellikle şablon parametrelerine başvurur, böylece şablon parametrelerinden geçen değerleri kullanabilirler. Örneğin:Other template objects often reference template parameters so that they can use the values that pass through template parameters, for example:

  • Şablonunuzun kaynak nesnesi, bu konunun ilerleyen kısımlarında açıklanan Azure 'da, mantıksal uygulamanızın kaynak tanımıgibi, oluşturmak ve dağıtmak istediğiniz her kaynağı tanımlar.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. Bu kaynaklar genellikle mantıksal uygulamanızın adı ve konumu ile bağlantı bilgileri gibi şablon parametre değerlerini kullanır.These resources often use template parameter values, such as your logic app's name and location and connection information.

  • Mantıksal uygulamanızın kaynak tanımında daha derin bir düzeyde, iş akışı tanımınızın Parameters nesnesi mantıksal uygulamanızın çalışma zamanında kullanılacak değerler için parametreler bildirir.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. Örneğin, bir HTTP tetikleyicisinin kimlik doğrulaması için kullandığı Kullanıcı adı ve parola için iş akışı Tanım parametrelerini bildirebilirsiniz.For example, you can declare workflow definition parameters for the username and password that an HTTP trigger uses for authentication. İş akışı tanımı parametrelerinin değerlerini belirtmek için, iş akışı tanımınızın parameters dışında , ancak mantıksal uygulamanızın kaynak tanımında hala olan nesnesini kullanın.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. Bu dış parameters nesnede, daha önce belirtilen şablon parametrelerine başvurabilir, bu da bir parametre dosyasından dağıtımda değerleri kabul edebilir.In this outer parameters object, you can reference previously declared template parameters, which can accept values at deployment from a parameters file.

Parametrelere başvurulduğunda, şablon ifadeleri ve işlevleri farklı sözdizimi kullanır ve iş akışı Tanım ifadelerinden ve işlevlerinden farklı şekilde davranır.When referencing parameters, template expressions and functions use different syntax and behave differently from workflow definition expressions and functions. Bu farklılıklar hakkında daha fazla bilgi için, bu konunun ilerleyen kısımlarında parametrelere başvurular bölümüne bakın.For more information about these differences, see References to parameters later in this topic.

En iyi yöntemler-şablon parametreleriBest practices - template parameters

Parametreleri tanımlamaya yönelik bazı en iyi uygulamalar şunlardır:Here are some best practices for defining parameters:

  • Yalnızca dağıtım gereksinimlerinize göre değişen değerler için parametreler bildirin.Declare parameters only for values that vary, based on your deployment needs. Farklı dağıtım gereksinimleri boyunca aynı olan değerler için parametre bildirme.Don't declare parameters for values that stay the same across different deployment requirements.

  • Hassas olan veya güvenli hale getirilmesi gereken değerler hariç tüm parametreler için boş değerler belirtebileceğiniz özniteliğiekleyin.defaultValueInclude the defaultValue attribute, which can specify empty values, for all parameters except for values that are sensitive or must be secured. Kullanıcı adları, parolalar ve gizli diziler için her zaman güvenli parametreleri kullanın.Always use secured parameters for user names, passwords, and secrets. Hassas parametre değerlerini gizlemek veya korumak için bu konulardaki yönergeleri izleyin:To hide or protect sensitive parameter values, follow the guidance in these topics:

  • Şablon parametre adlarını iş akışı Tanım parametresi adlarından ayırt etmek için, açıklayıcı şablon parametre adlarını kullanabilirsiniz, örneğin:TemplateFabrikamPasswordTo differentiate template parameter names from workflow definition parameter names, you can use descriptive template parameter names, for example: TemplateFabrikamPassword

Daha fazla şablon en iyi uygulamaları için bkz. şablon parametreleri Için en iyi uygulamalar.For more template best practices, see Best practices for template parameters.

Şablon parametreleri dosyasıTemplate parameters file

Şablon parametrelerinin değerlerini sağlamak için bu değerleri bir Parametreler dosyasındadepolayın.To provide the values for template parameters, store those values in a parameters file. Bu şekilde, dağıtım gereksinimlerinize göre farklı parametre dosyalarını kullanabilirsiniz.That way, you can use different parameters files based on your deployment needs. Kullanılacak dosya adı biçimi aşağıda verilmiştir:Here is the file name format to use:

  • Mantıksal uygulama şablonu dosya adı: < Logic-app-name>. JSONLogic app template file name: <logic-app-name>.json
  • Parametreler dosya adı: < Logic-app-name>. Parameters. JSONParameters file name: <logic-app-name>.parameters.json

Aşağıda, Azure Key Vault ile güvenli bir parametre değeri geçirmekiçin bir Anahtar Kasası başvurusu içeren parametreler dosyasının içindeki yapısı verilmiştir: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>
   }
}

Bu örnek parametre dosyası, bu konuda daha önce belirtilen şablon parametrelerinin değerlerini belirtir: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"
      }
   }
}

Şablon kaynaklarıTemplate resources

Şablonunuz, Azure 'da resources oluşturulacak ve dağıtılacak, mantıksal uygulamanızın kaynak tanımı, herhangi bir Bağlantı kaynağıtanımı ve diğer kaynaklar gibi her kaynak için tanımları içeren bir nesnedir. mantıksal uygulamanızın dağıtım için ihtiyacı vardır.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": {}
}

Not

Şablonlar birden çok Logic Apps için kaynak tanımları içerebilir, bu nedenle tüm mantıksal uygulama kaynaklarınızın aynı Azure kaynak grubunu belirttiğinizden emin olun.Templates can include resource definitions for multiple logic apps, so make sure that all your logic app resources specify the same Azure resource group. Şablonu Visual Studio kullanarak bir Azure Kaynak grubuna dağıttığınızda, sizden açmak istediğiniz mantıksal uygulama sorulur.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. Ayrıca, Azure Kaynak grubu projeniz birden fazla şablon içerebilir, bu nedenle istendiğinde doğru parametreler dosyasını seçtiğinizden emin olun.Also, your Azure resource group project can contain more than one template, so make sure that you select the correct parameters file when prompted.

Şablon kaynakları ve öznitelikleri hakkında genel bilgi için şu konulara bakın:For general information about template resources and their attributes, see these topics:

Mantıksal uygulama kaynak tanımıLogic app resource definition

Mantıksal uygulamanızın kaynak tanımı, bu bilgileri içeren properties nesnesiyle başlar:Your logic app's resource definition starts with the properties object, which includes this information:

  • Dağıtım sırasında mantıksal uygulamanızın durumuYour logic app's state at deployment
  • Mantıksal uygulamanız tarafından kullanılan herhangi bir tümleştirme hesabının KIMLIĞIThe ID for any integration account used by your logic app
  • Mantıksal uygulamanızın iş akışı tanımıYour logic app's workflow definition
  • Çalışma zamanında kullanılacak değerleri ayarlayan nesne parametersA parameters object that sets the values to use at runtime
  • Mantıksal uygulamanız hakkındaki ad, tür, konum ve benzeri diğer kaynak bilgileriOther 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": {}
}

Mantıksal uygulama kaynak tanımınıza özel öznitelikler şunlardır:Here are the attributes that are specific to your logic app resource definition:

ÖznitelikAttribute GerekliRequired TürType AçıklamaDescription
state EvetYes DizeString Mantıksal uygulamanızın dağıtım Enabled sırasındaki durumu, mantıksal uygulamanızın etkin olduğu ve Disabled mantıksal uygulamanızın etkin olmadığı anlamına gelir.Your logic app's state at deployment where Enabled means your logic app is live and Disabled means that your logic app is inactive. Örneğin, mantıksal uygulamanızın canlı olmaya devam etmek, ancak taslak sürümü dağıtmak istiyorsanız, Disabled seçeneğini kullanabilirsiniz.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 HayırNo ObjectObject Mantıksal uygulamanız, işletmeden işletmeye (B2B) senaryolar için yapıtları depolayan bir tümleştirme hesabı kullanıyorsa, bu nesne tümleştirme hesabının kimliğini belirten id özniteliğini içerir.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 EvetYes ObjectObject Mantıksal uygulamanızın temel alınan iş akışı tanımı, kod görünümünde görüntülenen ve bu nesne, Iş akışı tanımlama dili Için şema başvurusu içinde tam olarak açıklanmıştır.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. Bu iş akışı tanımında parameters nesne, mantıksal uygulama çalışma zamanında kullanılacak değerler için parametreler bildirir.In this workflow definition, the parameters object declares parameters for the values to use at logic app runtime. Daha fazla bilgi için bkz. Iş akışı tanımı ve parametreleri.For more information, see Workflow definition and parameters.

Mantıksal uygulamanızın iş akışı tanımındaki öznitelikleri görüntülemek için, Azure portal veya Visual Studio 'da "Tasarım görünümü" ne "kod görünümü" ne, yoksa Azure Kaynak Gezginigibi bir araç kullanarak geçiş yapın.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 HayırNo ObjectObject Mantıksal uygulama çalışma zamanında kullanılacak iş akışı tanımı parametre değerleri .The workflow definition parameter values to use at logic app runtime. Bu değerler için parametre tanımları, iş akışı tanımınızın parametreler nesnesininiçinde görünür.The parameter definitions for these values appear inside your workflow definition's parameters object. Ayrıca, mantıksal uygulamanız diğer hizmetlere ve sistemlere erişmek için yönetilen bağlayıcılar kullanıyorsa, bu nesne, çalışma zamanında kullanılacak $connections bağlantı değerlerini ayarlayan bir nesnesi içerir.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 HayırNo ObjectObject Mantıksal uygulamanıza yönelik olarak IP erişimini kısıtlama veya çalıştırma geçmişi girişleri ve çıkışları gibi güvenlik özniteliklerini belirtmek için.For specifying security attributes for your logic app, such as restricting IP access to request triggers or run history inputs and outputs. Daha fazla bilgi için bkz. Logic Apps 'e güvenli erişim.For more information, see Secure access to logic apps.

Logic Apps, tümleştirme hesapları ve tümleştirme hesabı yapılarına özgü şablon kaynak bilgileri için bkz. Microsoft. Logic Resource Types.For template resource information specific to logic apps, integration accounts, and integration account artifacts, see Microsoft.Logic resource types.

İş akışı tanımı ve parametreleriWorkflow definition and parameters

Mantıksal uygulamanızın iş akışı tanımı, mantıksal uygulamanızın kaynak definition tanımının içindeki properties nesnede görünen nesne içinde görüntülenir.Your logic app's workflow definition appears in the definition object, which appears in the properties object inside your logic app's resource definition. Bu definition nesne, kod görünümünde görüntülenen ve iş akışı tanımlama dili için şema başvurusu bölümünde tam olarak açıklanan nesnedir.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. İş akışı tanımınızda, çalışma parameters zamanında iş akışı tanımınızda kullanılan değerler için yeni veya mevcut parametreleri düzenleme oluşturabileceğiniz bir iç bildirim nesnesi bulunur.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. Daha sonra bu parametrelere iş akışınızda tetikleyici veya Eylemler içinde başvurabilirsiniz.You can then reference these parameters inside the trigger or actions in your workflow. Bu parameters nesne, mantıksal uygulamanız yönetilen bağlayıcılararacılığıyla diğer hizmetlere ve sistemlere bağlantı oluşturmadığı için varsayılan olarak boştur.By default, this parameters object is empty unless your logic app creates connections to other services and systems through managed connectors.

İş akışı tanımı parametrelerinin değerlerini ayarlamak için, iş akışı tanımınızın parameters dışında , ancak mantıksal uygulamanızın kaynak tanımında hala olan nesnesini kullanın.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. Bu dış parameters nesnede, daha önce önceden tanımlanmış olan şablon parametrelerine başvurabilir, bu da bir parametre dosyasından dağıtımda değer kabul edebilir.In this outer parameters object, you can then reference your previously declared template parameters, which can accept values at deployment from a parameters file.

İpucu

En iyi uygulama olarak, iş akışı tanımının içinden dağıtımda değerlendirilen şablon parametrelerine doğrudan başvurmayın.As a best practice, don't directly reference template parameters, which are evaluated at deployment, from inside the workflow definition. Bunun yerine, daha sonra iş akışı tanımınızın parameters dışında , ancak mantıksal uygulamanızın kaynak tanımında yer alan nesnede ayarlayabileceğiniz bir iş akışı tanımı parametresi bildirin.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. Daha fazla bilgi için bkz. parametrelere başvurular.For more information, see References to parameters.

Bu söz dizimi, şablon ve iş akışı Tanım parametrelerine başvurarak bu parametre değerlerini ayarlayabileceğiniz ve hem şablonda hem de iş akışı Tanım düzeylerindeki parametreleri nerede bildirebileceğiniz gösterilmektedir: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": {}
}

Güvenli iş akışı Tanım parametreleriSecure workflow definition parameters

Çalışma zamanında gizli bilgileri, parolaları, erişim anahtarlarını veya gizli dizileri işleyen bir iş akışı tanımı parametresi için, securestring veya secureobject parametresi türünü kullanmak için parametresini bildirin veya düzenleyin.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. Bu parametreye, iş akışı tanımınızın tamamında ve içinde başvurabilirsiniz.You can reference this parameter throughout and within your workflow definition. Şablonun en üst düzeyinde, bu bilgileri dağıtımda işlemek için aynı türe sahip bir parametre bildirin.At the template's top level, declare a parameter that has the same type to handle this information at deployment.

İş akışı tanımı parametresinin değerini ayarlamak için, iş akışı tanımınızın parameters dışında , ancak mantıksal uygulama kaynak tanımınızda hala şablon parametresine başvuracak olan nesneyi kullanın.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. Son olarak, dağıtım sırasında değeri şablon parametrıza geçirmek için bu değeri Azure Key Vault depolayın ve dağıtım sırasında şablonunuz tarafından kullanılan Parametreler dosyasında anahtar kasasının başvurusunu yapın.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.

Bu örnek şablon, değerlerini Azure Key Vault içinde depolayabilmeniz için gerektiğinde güvenli parametreleri tanımlayarak bu görevleri nasıl tamamlayakullanabileceğinizi gösterir: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:

  • Erişimin kimliğini doğrulamak için kullanılan değerler için güvenli parametreler bildirin.Declare secure parameters for the values used to authenticate access.
  • Bu değerleri hem şablonda hem de iş akışı Tanım düzeylerinde kullanın.Use these values at both the template and workflow definition levels.
  • Bu değerleri parametreler dosyası kullanarak sağlayın.Provide these values by using a parameters file.

ŞablonTemplate

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

Parametre dosyasıParameters 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"
        }
     }
   }
}

En iyi yöntemler-iş akışı Tanım parametreleriBest practices - workflow definition parameters

Mantıksal uygulama Tasarımcısı 'nın iş akışı Tanım parametrelerini doğru bir şekilde gösterebilmesi için aşağıdaki en iyi yöntemleri izleyin:To make sure that the Logic App Designer can correctly show workflow definition parameters, follow these best practices:

İş akışı tanımı parametreleri hakkında daha fazla bilgi için bkz. Parametreler-Iş akışı Tanım Dili.For more information about workflow definition parameters, see Parameters - Workflow Definition Language.

Bağlantı kaynak tanımlarıConnection resource definitions

Mantıksal uygulamanız yönetilen bağlayıcılarkullanarak diğer hizmetlere ve sisteme bağlantı oluşturup kullandığında, şablonunuzun resources nesnesi bu bağlantılara ait kaynak tanımlarını içerir.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": {}
}

Bağlantı kaynak tanımları, şablonun en üst düzey parametrelerine başvurur, bu da bu değerleri bir parametreler dosyası kullanarak dağıtımda sağlayabilmeniz anlamına gelir.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. Bağlantıların, mantıksal uygulamanız ile aynı Azure kaynak grubunu ve konumunu kullandığınızdan emin olun.Make sure that connections use the same Azure resource group and location as your logic app.

İşte Office 365 Outlook bağlantısı ve ilgili şablon parametreleri için örnek bir kaynak tanımı aşağıda verilmiştir: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": {}
}

Mantıksal uygulamanızın kaynak tanımı ayrıca bağlantı kaynağı tanımlarına şu yollarla da çalışmaktadır:Your logic app's resource definition also works with connection resource definitions in these ways:

  • İş akışı tanımınızda, parameters nesne, mantıksal uygulama çalışma zamanında kullanılacak bağlantı değerleri için bir $connections parametre bildirir.Inside your workflow definition, the parameters object declares a $connections parameter for the connection values to use at logic app runtime. Ayrıca, bir bağlantı oluşturan tetikleyici veya eylem, bu $connections parametreyi geçen karşılık gelen değerleri kullanır.Also, the trigger or action that creates a connection uses the corresponding values that pass through this $connections parameter.

  • İş akışı tanımınızın dışında , ancak mantıksal uygulamanızın kaynak tanımı içinde , başka bir parameters nesne karşılık gelen şablon parametrelerine başvurarak $connections parametresi için çalışma zamanında kullanılacak değerleri ayarlar.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. Bu değerler, mantıksal uygulamanızdaki bağlantıların meta verilerini güvenli bir şekilde depolayan kaynaklara başvurmak için şablon ifadeleri kullanır.These values use template expressions to reference resources that securely store the metadata for the connections in your logic app.

    Örneğin, meta veriler, Azure Key Vaultdepolayabileceğiniz bağlantı dizelerini ve erişim belirteçlerini içerebilir.For example, metadata can include connection strings and access tokens, which you can store in Azure Key Vault. Bu değerleri şablon parametrelerinizle geçirmek için, dağıtım sırasında şablonunuz tarafından kullanılan Parametreler dosyasında bu anahtar kasasına başvurarak başvurabilirsiniz.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. Başvuru parametrelerinin farklılıkları hakkında daha fazla bilgi için, bu konunun ilerleyen kısımlarında parametrelere başvurular bölümüne bakın.For more information about differences in referencing parameters, see References to parameters later in this topic.

    Mantıksal uygulamanızın iş akışı tanımını Azure Portal veya Visual Studio aracılığıyla kod görünümünde açtığınızda, $connections nesne iş akışı tanımınızın dışında, ancak aynı düzeyde görüntülenir.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. Kod görünümündeki bu sıralama, iş akışı tanımını el ile güncelleştirdiğinizde bu parametreleri başvuruya daha kolay hale getirir: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>}
    }
    
  • Mantıksal uygulamanızın kaynak tanımında, mantıksal uygulamanız tarafından dependsOn kullanılan bağlantıların bağımlılıklarını belirten bir nesne vardır.Your logic app's resource definition has a dependsOn object that specifies the dependencies on the connections used by your logic app.

Oluşturduğunuz her bağlantının Azure 'da benzersiz bir adı vardır.Each connection that you create has a unique name in Azure. Aynı hizmet veya sisteme birden fazla bağlantı oluşturduğunuzda, her bağlantı adına her bir yeni bağlantı (örneğin office365 office365-1,, vb.) ile bir sayı eklenir.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.

Bu örnekte, mantıksal uygulamanızın kaynak tanımı ve Office 365 Outlook için bir bağlantı kaynak tanımı arasındaki etkileşimler gösterilmektedir: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": {}
}

Güvenli bağlantı parametreleriSecure connection parameters

Gizli bilgileri, parolaları, erişim anahtarlarını veya gizli dizileri işleyen bir bağlantı parametresi için bağlantının kaynak tanımı, bu değerleri ad-değer parameterValues çifti biçiminde belirten bir nesne içerir.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. Bu bilgileri gizlemek için, securestring veya secureobject parametre türlerini kullanarak bu değerler için şablon parametreleri bildirebilir veya düzenleyebilirsiniz.To hide this information, you can declare or edit the template parameters for these values by using the securestring or secureobject parameter types. Daha sonra bu bilgileri Azure Key Vaultkaydedebilirsiniz.You can then store that information in Azure Key Vault. Bu değerleri şablon parametrelerinizle geçirmek için, dağıtım sırasında şablonunuz tarafından kullanılan Parametreler dosyasında bu anahtar kasasına başvurarak başvurabilirsiniz.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.

Bir Azure Blob depolama bağlantısı için hesap adı ve erişim anahtarı sağlayan bir örnek aşağıda verilmiştir:Here is an example that provides the account name and access key for an Azure Blob Storage connection:

Parametre dosyasıParameters 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"
         }
      }
   }
}

ŞablonTemplate

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

Kimlik doğrulama bağlantılarıAuthenticate connections

Dağıtımdan sonra mantıksal uygulamanız geçerli parametrelerle uçtan uca çalışacak.After deployment, your logic app works end-to-end with valid parameters. Ancak, kimlik bilgilerinizi doğrulamakiçin geçerli erişim belirteçleri oluşturmak üzere herhangi bir OAuth bağlantısını yetkilendirmelisiniz.However, you must still authorize any OAuth connections to generate valid access tokens for authenticating your credentials. Daha fazla bilgi için bkz. OAuth bağlantılarını yetkilendirme.For more information, see Authorize OAuth connections.

Bazı bağlantılar , Azure AD 'de kayıtlıbir mantıksal uygulama için bağlantıları yetkilendirmek üzere bir Azure Active Directory (Azure AD) hizmet sorumlusu kullanmayı destekler.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. Örneğin, bu Azure Data Lake bağlantı kaynağı tanımı, hizmet sorumlusunun bilgilerini işleyen şablon parametrelerine nasıl başvurulacağını ve şablonun bu parametreleri nasıl bildirdiğini gösterir: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:

Bağlantı kaynak tanımıConnection 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')]"
      }
   }
}
ÖznitelikAttribute AçıklamaDescription
token:clientId Hizmet sorumlusu ile ilişkili uygulama veya istemci KIMLIĞIThe application or client ID associated with your service principal
token:clientSecret Hizmet sorumlusu ile ilişkili anahtar değeriThe key value associated with your service principal
token:TenantId Azure AD kiracınız için dizin KIMLIĞIThe directory ID for your Azure AD tenant
token:grantType İstenen izin türü, olmalıdır client_credentials.The requested grant type, which must be client_credentials. Daha fazla bilgi için bkz. Microsoft Identity platform ve OAuth 2,0 istemci kimlik bilgileri akışı.For more information, see Microsoft identity platform and the OAuth 2.0 client credentials flow.

Şablon parametre tanımlarıTemplate parameter definitions

Şablonun en üst düzey parameters nesnesi bu parametreleri örnek bağlantı için bildirir: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
}

Hizmet sorumluları ile çalışma hakkında daha fazla bilgi için şu konulara bakın:For more information about working with service principals, see these topics:

Parametrelere başvurularReferences to parameters

Şablon parametrelerine başvurmak için, dağıtım sırasında değerlendirilen şablon işlevleriyleşablon ifadeleri kullanabilirsiniz.To reference template parameters, you can use template expressions with template functions, which are evaluated at deployment. Şablon ifadeleri köşeli parantezler ( [] ) kullanır:Template expressions use square brackets ([]):

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

İş akışı tanımı parametrelerine başvurmak için, çalışma zamanında değerlendirilen Iş akışı tanımlama dili ifadeleri ve işlevlerikullanılır.To reference workflow definition parameters, you use Workflow Definition Language expressions and functions, which are evaluated at runtime. Bazı şablon işlevleri ve iş akışı tanımı işlevlerinin aynı ada sahip olduğunu fark edebilirsiniz.You might notice that some template functions and workflow definition functions have the same name. İş akışı tanımı ifadeleri "at" simgesiyle başlar ( @ ):Workflow definition expressions start with the "at" symbol (@):

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

Mantıksal uygulamanızın çalışma zamanında kullanması için, şablon parametre değerlerini iş akışı tanımınıza geçirebilirsiniz.You can pass template parameter values to your workflow definition for your logic app to use at runtime. Ancak, mantıksal uygulama Tasarımcısı şablon öğelerini desteklemediğinden, iş akışı tanımınızda şablon parametrelerini, ifadeleri ve söz dizimini kullanmaktan kaçının.However, avoid using template parameters, expressions, and syntax in your workflow definition because the Logic App Designer doesn't support template elements. Ayrıca, ifadelerin değerlendirildiği zaman içindeki farklılıklar nedeniyle şablon söz dizimi ve ifadeler kodunuzu karmaşıklaştırabilir.Also, template syntax and expressions can complicate your code due to differences in when expressions are evaluated.

Bunun yerine, çalışma zamanında kullanmak üzere iş akışı Tanım parametrelerini bildirmek ve başvurmak, dağıtımda kullanılacak şablon parametrelerini bildirmek ve bunlara başvurmak ve bir parametreler dosyası kullanarak dağıtımda geçirilecek değerleri belirtmek için bu genel adımları izleyin.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. Tüm ayrıntılar için bu konunun önceki kısımlarında yer alarak Iş akışı tanımı ve parametreleri bölümüne bakın.For full details, see the Workflow definition and parameters section earlier in this topic.

  1. Şablonunuzu oluşturun ve dağıtımda kullanılacak değerler için şablon parametrelerini bildirin.Create your template and declare the template parameters for the values to accept and use at deployment.

  2. İş akışı tanımınızda, kabul edilecek ve çalışma zamanında kullanılacak değerlerin parametrelerini bildirin.In your workflow definition, declare the parameters for the values to accept and use at runtime. Daha sonra bu değerlere, iş akışı tanımınızda ve içinde başvurabilirsiniz.You can then reference these values throughout and within your workflow definition.

  3. İş akışı tanımınızın dışında , ancak mantıksal uygulamanızın kaynak tanımında hala içinde olan nesnede,karşılıkgelenşablonparametrelerinebaşvurarakişakışıTanımparametrelerinizindeğerleriniayarlayın.parametersIn 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. Bu şekilde, şablon parametre değerlerini iş akışı Tanım parametrelerinizle geçirebilirsiniz.That way, you can pass template parameter values into your workflow definition parameters.

  4. Parametreler dosyasında, dağıtımda kullanılacak şablon değerlerini belirtin.In the parameters file, specify the values for your template to use at deployment.

Tam örnek şablonFull example template

Bu konunun örnekleri tarafından kullanılan parametreli örnek şablon aşağıda verilmiştir: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": {}
}

Sonraki adımlarNext steps