genel bakış: Azure Resource Manager şablonları kullanarak Azure Logic Apps dağıtımı otomatikleştirin

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. Bu şablon, mantıksal uygulamanızı sağlamak ve dağıtmak için altyapıyı, kaynakları, parametreleri ve diğer bilgileri tanımlar. 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.

Ö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. Farklı bağlantı dizelerini kabul eden şablon parametreleri bildirebilir ve sonra bu dizeleri ayrı bir parametre dosyasındadepoaktarabilirsiniz. Bu şekilde, şablonu güncelleştirmek ve yeniden dağıtmak zorunda kalmadan bu değerleri değiştirebilirsiniz. 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. Ancak, bu senaryolarda geçerli değerleri almak için yeniden dağıtmanız gerekir.

Bu genel bakışta, bir mantıksal uygulama iş akışı tanımını içeren Kaynak Yöneticisi şablonundaki öznitelikler açıklanmaktadır. 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. Örneğin, şablon ifadeleri ve iş akışı tanımı ifadeleri, parametrelere ve kabul edebileceği değerlere göre farklılık gösterir.

İ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 (ücretsiz Community edition veya daha büyük) ve Visual Studio Azure Logic Apps araçları kullanın. daha sonra Visual Studio ' de mantıksal uygulamanızı oluşturabilir veya var olan bir mantıksal uygulamayı Azure 'dan Visual Studio ' e bulabilir ve indirebilirsiniz.

ya da, logicapptemplate modülüyle Azure PowerShellkullanarak mantıksal uygulama şablonları oluşturabilirsiniz.

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 eyleminden yararlanır. Örnekler Ayrıca dağıtımda farklılık gösteren değerlerin nasıl parametreleştirilemez olduğunu gösterir.

Kaynak Yöneticisi şablonları hakkında daha fazla bilgi için şu konulara bakın:

Logic Apps, tümleştirme hesapları, tümleştirme hesabı yapıtları ve tümleştirme hizmeti ortamlarına özgü şablon kaynak bilgileri için bkz. Microsoft. Logic Resource Types.

Örnek mantıksal uygulama şablonları için aşağıdaki örneklere bakın:

Logic Apps REST API için Azure Logic Apps REST API genel bakışile başlayın.

Şablon yapısı

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:

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

Öznitelik Açıklama
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. Ö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. Bu parametre değerlerini, bu konunun ilerleyen kısımlarında açıklanan bir Parametreler dosyasındasaklayabilirsiniz. Genel Ayrıntılar için bkz. Parametreler-Kaynak Yöneticisi Şablon yapısı ve sözdizimi.
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. Genel Ayrıntılar için bkz. Resources-Kaynak Yöneticisi Şablon yapısı ve sözdizimi.

Mantıksal uygulama şablonunuz bu dosya adı biçimini kullanır:

<Logic-app-name # C0.js

Ö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.

Şablon parametreleri

Mantıksal uygulama şablonunda, parameters farklı düzeylerde bulunan ve farklı işlevler gerçekleştiren birden fazla nesne vardır. Ö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:

  • Mantıksal uygulamanız

  • 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ılar

  • Mantıksal uygulamanızın dağıtım için ihtiyaç duyacağı diğer kaynaklar

    Ö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 söz konusu TÜMLEŞTIRME hesabının kaynak kimliğini kabul eden parametreyi bildirir.

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:

"<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:

  • Mantıksal uygulamanızın adı ve konumu
  • Mantıksal uygulamayla bağlantılı bir tümleştirme hesabı için kullanılacak KIMLIK
{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   // Template parameters
   "parameters": {
      "LogicAppName": {
         "type": "string",
         "minLength": 1,
         "maxLength": 80,
         "defaultValue": "MyLogicApp",
         "metadata": {
            "description": "The resource name for the logic app"
         }
      },
      "LogicAppLocation": {
         "type": "string",
         "minLength": 1,
         "defaultValue": "[resourceGroup().location]",
         "metadata": {
            "description": "The resource location for the logic app"
         }
      },
      "LogicAppIntegrationAccount": {
         "type":"string",
         "minLength": 1,
         "defaultValue": "/subscriptions/<Azure-subscription-ID>/resourceGroups/fabrikam-integration-account-rg/providers/Microsoft.Logic/integrationAccounts/fabrikam-integration-account",
         "metadata": {
            "description": "The ID to use for the integration account"
         }
      }
   },
   "variables": {},
   "functions": [],
   "resources": [],
   "outputs": {}
}

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. 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.

Şablon parametrelerinin güvenliğini sağlama hakkında daha fazla bilgi için şu konulara bakın:

Diğer şablon nesneleri genellikle şablon parametrelerine başvurur, böylece şablon parametrelerinden geçen değerleri kullanabilirler. Örneğin:

  • Ş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. Bu kaynaklar genellikle mantıksal uygulamanızın adı ve konumu ile bağlantı bilgileri gibi şablon parametre değerlerini kullanır.

  • 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. Örneğin, bir HTTP tetikleyicisinin kimlik doğrulaması için kullandığı Kullanıcı adı ve parola için iş akışı Tanım parametrelerini bildirebilirsiniz. İş akışı tanımı parametrelerinin değerlerini belirtmek için, parameters iş akışı tanımınızın dışında , ancak mantıksal uygulamanızın kaynak tanımında hala olan nesnesini kullanın. Bu dış parameters nesnede, daha önce belirtilen şablon parametrelerine başvurabilir, bu da bir parametre dosyasından dağıtımda değerleri kabul edebilir.

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. 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.

En iyi yöntemler-şablon parametreleri

Parametreleri tanımlamaya yönelik bazı en iyi uygulamalar şunlardır:

  • Yalnızca dağıtım gereksinimlerinize göre değişen değerler için parametreler bildirin. Farklı dağıtım gereksinimleri boyunca aynı olan değerler için parametre bildirme.

  • Hassas olan defaultValue veya güvenli hale getirilmesi gereken değerler hariç tüm parametreler için boş değerler belirtebileceğiniz özniteliği ekleyin. Kullanıcı adları, parolalar ve gizli diziler için her zaman güvenli parametreleri kullanın. Hassas parametre değerlerini gizlemek veya korumak için bu konulardaki yönergeleri izleyin:

  • Ş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: TemplateFabrikamPassword

Daha fazla şablon en iyi uygulamaları için bkz. şablon parametreleri Için en iyi uygulamalar.

Şablon parametreleri dosyası

Şablon parametrelerinin değerlerini sağlamak için bu değerleri bir Parametreler dosyasındadepolayın. Bu şekilde, dağıtım gereksinimlerinize göre farklı parametre dosyalarını kullanabilirsiniz. Kullanılacak dosya adı biçimi aşağıda verilmiştir:

  • Mantıksal uygulama şablonu dosya adı: < Logic-app-name # C0.json
  • Parametreler dosya adı: < Logic-app-name # C0.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:

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

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

Şablonunuz, resources mantıksal uygulamanızın kaynak tanımı, bağlantı kaynak tanımlarıve mantıksal uygulamanızın dağıtım için ihtiyaç duyacağı diğer kaynaklar gibi, Azure 'da oluşturulacak ve dağıtılacak her kaynak için tanımları içeren bir nesnesidir.

{
   "$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. Visual Studio kullanarak şablonu bir Azure kaynak grubuna dağıttığınızda, açmak istediğiniz mantıksal uygulama sorulur. 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.

Kaynak tanımlarını görüntüle

bir azure kaynak grubundaki tüm kaynakların kaynak tanımlarını gözden geçirmek için, mantıksal uygulamanızı azure 'dan Visual Studio ' ye indirin. bu, en kolay dağıtım için hazırlamış geçerli bir parametreli mantıksal uygulama şablonu oluşturmanın en kolay yoludur.

Şablon kaynakları ve öznitelikleri hakkında genel bilgi için şu konulara bakın:

Mantıksal uygulama kaynak tanımı

Mantıksal uygulamanızın bir şablondaki iş akışı kaynak tanımı , properties Bu bilgileri içeren nesne ile başlar:

  • Mantıksal uygulamanın dağıtım sırasındaki durumu
  • Mantıksal uygulamanız tarafından kullanılan tüm tümleştirme hesaplarının kimliği
  • Mantıksal uygulamanın iş akışı tanımı
  • Çalışma parameters zamanında kullanmak üzere değerleri ayaran bir nesne
  • Mantıksal uygulamanıza ilişkin ad, tür, konum, çalışma zamanı yapılandırma ayarları gibi diğer kaynak bilgileri
{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   "parameters": {<template-parameters>},
   "variables": {},
   "functions": [],
   "resources": [
      {
         // Start logic app resource definition
         "properties": {
            "state": "<Enabled or Disabled>",
            "integrationAccount": {
               "id": "[parameters('LogicAppIntegrationAccount')]" // Template parameter reference
            },
            "definition": {<workflow-definition>},
            "parameters": {<workflow-definition-parameter-values>},
            "accessControl": {},
            "runtimeConfiguration": {}
         },
         "name": "[parameters('LogicAppName')]", // Template parameter reference
         "type": "Microsoft.Logic/workflows",
         "location": "[parameters('LogicAppLocation')]", // Template parameter reference
         "tags": {
           "displayName": "LogicApp"
         },
         "apiVersion": "2016-06-01",
         "dependsOn": [
         ]
      }
      // End logic app resource definition
   ],
   "outputs": {}
}

Mantıksal uygulama kaynak tanımınıza özgü öznitelikler şu şekildedir:

Öznitelik Gerekli Tür Açıklama
state Evet Dize Mantıksal uygulamanın dağıtım sırasındaki durumu, mantıksal uygulamanın canlı olduğu ve mantıksal uygulamanın Enabled Disabled etkin olduğu anlamına gelir. Örneğin, mantıksal uygulamanızın canlı yayına hazır olmadığınız ancak taslak sürümü dağıtmak istediğiniz varsa seçeneğini Disabled kullanabilirsiniz.
integrationAccount No Nesne Mantıksal uygulamanız işletmeden işletmeye (B2B) senaryoları için yapıtları depolar bir tümleştirme hesabı kullanıyorsa, bu nesne tümleştirme hesabının kimliğini belirten id özniteliğini içerir.
definition Yes Nesne Mantıksal uygulamanın temel iş akışı tanımı, kod görünümünde görünen ve İş Akışı Tanımı Dili için Şema başvurusu konusunda tam olarak açıklanan aynı nesnedir. Bu iş akışı tanımında parameters nesnesi, mantıksal uygulama çalışma zamanında kullanmak üzere değerler için parametreleri belirtir. Daha fazla bilgi için bkz. İş akışı tanımı ve parametreleri.

Mantıksal uygulamanı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ünden" "kod görünümüne" veya Azure Kaynak Gezgini gibi bir araç kullanın.

parameters No Nesne Mantıksal uygulama çalışma zamanında kullanmak üzere iş akışı tanımı parametre değerleri. Bu değerlerin parametre tanımları, iş akışı tanımınıza 'nin parameters nesnesinin içinde görünür. 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 kullanmak üzere bağlantı $connections değerlerini ayaran bir nesne içerir.
accessControl No Nesne Mantıksal uygulamanıza yönelik IP erişimini istek tetikleyicilerine kısıtlama veya geçmiş giriş ve çıkışlarını çalıştırma gibi güvenlik özniteliklerini belirtmek için. Daha fazla bilgi için bkz. Mantıksal uygulamalara güvenli erişim.
runtimeConfiguration No Nesne Mantıksal uygulamanın operationOptions çalışma zamanında nasıl davranacağını kontrol altına alan özellikleri belirtmek için. Örneğin, mantıksal uygulamanızı yüksek aktarım hızı modunda çalıştırabilirsiniz.

Bu nesnelere ilişkin kaynak tanımları hakkında daha Logic Apps için bkz. Microsoft.Logic kaynak türleri:

İş akışı tanımı ve parametreleri

Mantıksal uygulamanın iş akışı definition tanımı, mantıksal uygulamanın kaynak tanımının içindeki properties nesnesinde görünen nesnesinde görünür. Bu nesne, kod görünümünde görünen nesneyle aynıdır ve İş Akışı Tanımı Dili için Şema başvurusu konusunda definition tam olarak açıklanmıştır. İş akışı tanımınız, çalışma zamanında iş akışı tanımınız tarafından kullanılan değerler için yeni parametreler tanımladığınız veya var olan parametreleri parameters düzenleyemezsiniz bir iç bildirim nesnesi içerir. Daha sonra bu parametrelere iş akışınız içindeki tetikleyici veya eylemlerin içinde başvurabilirsiniz. Varsayılan olarak, mantıksal uygulamanız yönetilen bağlayıcılar aracılığıyla diğer hizmetlere ve sistemlere parameters bağlantılar oluşturmadıkça bu nesne boştur.

İş akışı tanımı parametrelerinin değerlerini ayarlamak için iş akışı tanımınız dışında ama yine de mantıksal uygulamanın kaynak tanımının parameters içinde bulunan nesnesini kullanın. Daha sonra bu dış nesnede, bir parametre dosyasından dağıtımda değerleri kabul eden önceden bildirilen parameters şablon parametrelerinize başvurabilirsiniz.

İpucu

En iyi uygulama olarak, iş akışı tanımının içinden dağıtım sırasında değerlendirilen şablon parametrelerine doğrudan başvurabilirsiniz. Bunun yerine, iş akışı tanımınızı dışında ancak yine de mantıksal uygulamanın kaynak tanımının içinde yer alan nesnesinde ayarlandırabilirsiniz bir iş akışı parameters tanımı parametresini belirtin. Daha fazla bilgi için bkz. Parametrelere başvurular.

Bu söz dizimi, hem şablon hem de iş akışı tanımı düzeylerinde parametreleri nerede bildirebilirsiniz? ile birlikte, şablona ve iş akışı tanımı parametrelerine başvurarak bu parametre değerlerini ayarlayarak bu parametreleri ayarlayabilirsiniz:

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

Güvenli iş akışı tanımı parametreleri

Çalışma zamanında hassas bilgileri, parolaları, erişim anahtarlarını veya gizli dizileri işen bir iş akışı tanımı parametresi için, veya parametre türünü kullanmak üzere securestring parametreyi bildirin secureobject veya düzenleyin. Bu parametreye iş akışı tanımınız içinde ve içinde başvurabilirsiniz. Şablonun en üst düzeyinde, dağıtımda bu bilgileri işlemek için aynı türe sahip bir parametre bildirin.

İş akışı tanımı parametresinin değerini ayarlamak için iş akışı tanımınız dışında olan ancak yine de mantıksal uygulama kaynak tanımı içinde bulunan nesneyi kullanarak parameters şablon parametresine başvurabilirsiniz. Son olarak, değeri dağıtım sırasında şablon parametresine geçmek için bu değeri Azure Key Vault içinde depolar ve dağıtım sırasında şablonunuz tarafından kullanılan parametre dosyasında bu anahtar kasasına başvurur.

Bu örnek şablon, gerektiğinde güvenli parametreler tanımlayarak bu görevleri nasıl tamamlayabilirsiniz? böylece bu görevlerin değerlerini Azure Key Vault:

  • Erişimin kimliğini doğrulamak için kullanılan değerler için güvenli parametreler bildirebilirsiniz.
  • Bu değerleri hem şablon hem de iş akışı tanımı düzeylerinde kullanın.
  • Parametre dosyası kullanarak bu değerleri girin.

Şablon

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

Parametre dosyası

{
   "$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ı parametreleri

Mantıksal Uygulama Tasarımcısı'nın iş akışı tanımı parametrelerini doğru şekilde gösterene kadar aşağıdaki en iyi yöntemleri izleyin:

İş akışı tanımı parametreleri hakkında daha fazla bilgi için bkz. Parametreler - İş Akışı Tanım Dili.

Bağlantı kaynağı tanımları

Mantıksal uygulamanız yönetilen bağlayıcıları kullanarak diğer hizmetlere ve sistemlere bağlantılar oluşturduğunda ve kullandığında,şablonunuz nesnesi bu bağlantıların kaynak resources tanımlarını içerir. Bir mantıksal uygulamanın içinde bağlantı oluştursanız da, bağlantılar kendi kaynak tanımlarına sahip ayrı Azure kaynaklarıdır. Bu bağlantı kaynağı tanımlarını gözden geçirmek için mantıksal uygulamanızı Azure'dan Visual Studio'aindirin. Bu, çoğunlukla dağıtım için hazır olan geçerli bir parametreli mantıksal uygulama şablonu oluşturmanın en kolay yoludur.

{
   "$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ı kaynağı tanımları, dağıtım sırasında bir parametre dosyası kullanarak bu değerleri sağlay için şablonun değerleri için üst düzey parametrelerine başvurur. Bağlantıların mantıksal uygulamayla aynı Azure kaynak grubunu ve konumunu kullanmalarını sağlar.

Aşağıdaki örnek kaynak tanımı, Office 365 Outlook ilgili şablon parametreleridir:

{
   "$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ın kaynak tanımı, bağlantı kaynağı tanımları ile şu şekilde de çalışır:

  • İş akışı tanımınız içinde parameters nesnesi, mantıksal uygulama $connections çalışma zamanında kullanmak üzere bağlantı değerleri için bir parametre belirtir. Ayrıca, bağlantı oluşturan tetikleyici veya eylem, bu parametreden geçen ilgili değerleri $connections kullanır.

  • İş akışı tanımınız dışında ama yine de mantıksal uygulamanın kaynak tanımının içinde, başka bir nesne karşılık gelen şablon parametrelerine başvurarak parametre için çalışma zamanında kullanmak parameters üzere değerleri $connections ayarlar. Bu değerler, mantıksal uygulamanıza bağlantıların meta verilerini güvenli bir şekilde depolana kaynaklara başvuru yapmak için şablon ifadelerini kullanır.

    Örneğin, meta veriler bağlantı dizelerini ve erişim belirteçlerini içerebilir ve bu belirteçleri Azure Key Vault. Bu değerleri şablon parametrelerinize geçmek için dağıtım sırasında şablonunuz tarafından kullanılan parametre dosyasında bu anahtar kasasına başvurabilirsiniz. Başvuru parametreleri arasındaki farklar hakkında daha fazla bilgi için bu konunun devamlarında yer alan Parametrelere başvurular'a bakın.

    Mantıksal uygulamanın iş akışı tanımını kod görünümünde Azure portal Visual Studio, nesne iş akışı tanımınız dışında ancak aynı $connections düzeyde görünür. Kod görünümünde bu sıralama, iş akışı tanımını el ile güncelleştirirken bu parametrelerin başvurulmalarını kolaylaştırır:

    {
       "$connections": {<workflow-definition-parameter-connection-values-runtime},
       "definition": {<workflow-definition>}
    }
    
  • Mantıksal uygulamanın kaynak tanımı, mantıksal dependsOn uygulama tarafından kullanılan bağlantılara bağımlılıkları belirten bir nesnesine sahiptir.

Azure'da her bağlantının benzersiz bir adı vardır. Aynı hizmet veya sisteme birden çok bağlantı oluşturulduğunda, her bağlantı adına bir sayı eklenir ve bu sayı, oluşturulan her yeni bağlantıyla office365 office365-1 artırılır, örneğin, , ve gibi.

Bu örnekte mantıksal uygulamanın kaynak tanımı ile mantıksal uygulama için bağlantı kaynağı tanımı arasındaki etkileşimler 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": {}
}

Bağlantı parametrelerinin güvenliğini sağlama

Hassas bilgileri, parolaları, erişim anahtarlarını veya gizli dizileri ele alan bir bağlantı parametresi için bağlantının kaynak tanımı, bu değerleri ad-değer çifti biçiminde belirten parameterValues bir nesnesi içerir. Bu bilgileri gizlemek için veya parametre türlerini kullanarak bu değerler için şablon parametrelerini bildirebilirsiniz securestring veya secureobject düzenleyebilirsiniz. Daha sonra bu bilgileri Azure Key Vault. Bu değerleri şablon parametrelerinize geçmek için dağıtım sırasında şablonunuz tarafından kullanılan parametre dosyasında bu anahtar kasasına başvurabilirsiniz.

Azure Blob depolama hesabı bağlantısı için hesap adını ve erişim anahtarını sağlayan bir Depolama ve ve bir örnek:

Parametre dosyası

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

Şablon

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

Bağlantıların kimliğini doğrulama

Dağıtımdan sonra mantıksal uygulamanız geçerli parametrelerle 2 4 24 saat çalışır. Ancak, kimlik bilgilerinizin kimlik doğrulaması için geçerli erişim belirteçleri oluşturmak için tüm OAuth bağlantılarını yetkilendirmeniz gerekir. Daha fazla bilgi için bkz. OAuth bağlantılarını yetkilendirme.

Bazı bağlantılar, Azure AD'Azure Active Directory bir mantıksal uygulama için bağlantıları yetkilendirmek için bir Azure Active Directory (Azure AD) hizmet sorumlusu kullanmayı destekler. Örneğin, bu Azure Data Lake bağlantı kaynağı tanımı, hizmet sorumlusu bilgilerini ele alan şablon parametrelerine nasıl başvurulacağını ve şablonun şu parametreleri nasıl bildiracağını gösterir:

Bağlantı kaynağı tanımı

{
   <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')]"
      }
   }
}
Öznitelik Açıklama
token:clientId Hizmet sorumluyla ilişkili uygulama veya istemci kimliği
token:clientSecret Hizmet sorumluyla ilişkili anahtar değeri
token:TenantId Azure AD kiracınız için dizin kimliği
token:grantType İstenen izin türü, olması client_credentials gerekir. Daha fazla bilgi için bkz. Microsoft kimlik platformu ve OAuth 2.0 istemci kimlik bilgileri akışı.

Şablon parametresi tanımları

Şablonun en üst düzey parameters nesnesi örnek bağlantı için şu parametreleri belirtir:

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

Parametrelere başvurular

Şablon parametrelerine başvuru yapmak için şablon ifadelerini dağıtım sırasında değerlendirilenşablon işlevleriyle kullanabilirsiniz. Şablon ifadeleri köşeli ayraç kullanır ([]):

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

İş akışı tanımı parametrelerine başvuru yapmak için, çalışma zamanında değerlendirilenİş Akışı Tanımı Dili ifadelerini ve işlevlerini kullanırsanız. Bazı şablon işlevlerinin ve iş akışı tanımı işlevlerinin aynı adlara sahip olduğunu fark edebilirsiniz. İş akışı tanımı ifadeleri "at" simgesiyle başlar ( @ ):

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

Mantıksal uygulamanın çalışma zamanında kullanması için iş akışı tanımınıza şablon parametresi değerlerini geçebilirsiniz. Ancak, Mantıksal Uygulama Tasarımcısı şablon öğelerini desteklemez, çünkü iş akışı tanımınıza şablon parametreleri, ifadeler ve söz dizimi kullanmaktan kaçının. Ayrıca, şablon söz dizimi ve ifadeleri, ifadelerin değerlendirilmesinde farklılıklar nedeniyle kodunuzu karmaşıklaştırabilir.

Bunun yerine, çalışma zamanında kullanmak üzere iş akışı tanımı parametrelerini bildirerek ve bunlara başvurarak, dağıtımda kullanmak üzere şablon parametrelerini bildirerek ve bunlara başvurarak ve bir parametre dosyası kullanarak dağıtımda geçiş yapmak için değerleri belirtmek için bu genel adımları izleyin. Tüm ayrıntılar için bu konunun önceki kısımlarında yer alan İş akışı tanımı ve parametreler bölümüne bakın.

  1. Şablon oluşturun ve dağıtım sırasında kabul edilecek ve kullanmak üzere değerler için şablon parametrelerini bildirebilirsiniz.

  2. İş akışı tanımında, çalışma zamanında kabul edilecek ve kullanmak üzere değerlerin parametrelerini bildirebilirsiniz. Daha sonra bu değerlere iş akışı tanımınız içinde ve içinde başvurabilirsiniz.

  3. İş akışı tanımınız dışında olan ancak mantıksal uygulamanın kaynak tanımının içinde yer alan nesnede, ilgili şablon parametrelerine başvurarak iş akışı tanımı parameters parametrelerinizin değerlerini ayarlayın. Bu şekilde, şablon parametresi değerlerini iş akışı tanımı parametrelerinize geçebilirsiniz.

  4. Parametreler dosyasında, dağıtımda kullanmak üzere şablon için değerleri belirtin.

Tam örnek şablon

Bu konunun örnekleri tarafından kullanılan parametreli örnek şablon aşağıda verilmiştir:

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

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