Azure Logic Apps'te İş Akışı Tanım Dili için şema başvuru kılavuzu

Azure Logic Apps'te bir mantıksal uygulama oluşturduğunuzda mantıksal uygulamanız, mantıksal uygulamanızda çalışan gerçek mantığı açıklayan temel bir iş akışı tanımına sahiptir. Bu iş akışı tanımı JSON kullanır ve İş Akışı Tanımı Dili şeması tarafından doğrulanan bir yapıyı izler. Bu başvuru, bu yapı ve şemanın iş akışı tanımınızdaki öznitelikleri nasıl tanımladığı hakkında genel bir bakış sağlar.

İş akışı tanımı yapısı

İş akışı tanımı her zaman mantıksal uygulamanızın örneğini oluşturmak için bir tetikleyici ve tetikleyici tetikledikten sonra çalışan bir veya daha fazla eylem içerir.

bir iş akışı tanımının üst düzey yapısı aşağıdadır:

"definition": {
  "$schema": "<workflow-definition-language-schema-version>",
  "actions": { "<workflow-action-definitions>" },
  "contentVersion": "<workflow-definition-version-number>",
  "outputs": { "<workflow-output-definitions>" },
  "parameters": { "<workflow-parameter-definitions>" },
  "staticResults": { "<static-results-definitions>" },
  "triggers": { "<workflow-trigger-definitions>" }
}
Öznitelik Zorunlu Veri Akışı Açıklaması
definition Evet İş akışı tanımınızın başlangıç öğesi
$schema Yalnızca iş akışı tanımına dışarıdan başvururken burada bulabileceğiniz İş Akışı Tanım Dili sürümünü açıklayan JSON şema dosyasının konumu:

https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json
actions No İş akışı çalışma zamanında yürütülecek bir veya daha fazla eylemin tanımları. Daha fazla bilgi için bkz . Tetikleyiciler ve eylemler.



En fazla eylem sayısı: 250
contentVersion No varsayılan olarak "1.0.0.0" olan iş akışı tanımınızın sürüm numarası. bir iş akışı dağıtırken doğru tanımı tanımlamaya ve onaylamaya yardımcı olmak için kullanılacak değeri belirtin.
outputs No Bir iş akışı çalıştırmasından döndürülecek çıkışların tanımları. Daha fazla bilgi için bkz . Çıkışlar.



En fazla çıkış sayısı: 10
parameters No Mantıksal uygulamanızın çalışma zamanında kullanılacak değerleri geçiren bir veya daha fazla parametrenin tanımları. Daha fazla bilgi için bkz . Parametreler.



En fazla parametre sayısı: 50
staticResults No Bu eylemlerde statik sonuçlar etkinleştirildiğinde, eylemler tarafından sahte çıkış olarak döndürülen bir veya daha fazla statik sonucun tanımları. Her eylem tanımında runtimeConfiguration.staticResult.name özniteliği içindeki staticResultsilgili tanıma başvurur. Daha fazla bilgi için bkz . Statik sonuçlar.
triggers No İş akışınızın örneğini oluşturan bir veya daha fazla tetikleyicinin tanımları. Birden fazla tetikleyici tanımlayabilirsiniz, ancak iş akışı tasarımcısı aracılığıyla görsel olarak değil, yalnızca İş Akışı Tanım Dili ile tanımlayabilirsiniz. Daha fazla bilgi için bkz . Tetikleyiciler ve eylemler.



En fazla tetikleyici sayısı: 10

Tetikleyiciler ve eylemler

bir iş akışı tanımında triggers ve actions bölümleri, iş akışınızın yürütülmesi sırasında gerçekleşen çağrıları tanımlar. Söz dizimi ve bu bölümler hakkında daha fazla bilgi için bkz . İş akışı tetikleyicileri ve eylemleri.

Parametreler

Dağıtım yaşam döngüsü genellikle geliştirme, test, hazırlama ve üretim için farklı ortamlara sahiptir. Mantıksal uygulamaları çeşitli ortamlara dağıtırken, dağıtım gereksinimlerinize göre bağlantı dizesi gibi farklı değerler kullanmak isteyebilirsiniz. İsterseniz, sabit kodlama olmadan mantıksal uygulamanız genelinde yeniden kullanmak istediğiniz veya sık sık değişen değerlere sahip olabilirsiniz. İş akışı tanımınızın parameters bölümünde, mantıksal uygulamanızın çalışma zamanında kullandığı değerler için parametreler tanımlayabilir veya düzenleyebilirsiniz. İş akışı tanımınızın başka bir yerinde bu parametrelere başvurabilmeniz için önce bu parametreleri tanımlamanız gerekir.

Parametre tanımının genel yapısı aşağıdadır:

"parameters": {
   "<parameter-name>": {
      "type": "<parameter-type>",
      "defaultValue": <default-parameter-value>,
      "allowedValues": [ <array-with-permitted-parameter-values> ],
      "metadata": {
         "description": "<parameter-description>"
      }
   }
},
Öznitelik Zorunlu Tür Açıklama
<parametre-adı> Evet String Tanımlamak istediğiniz parametrenin adı
<parametre türü> Evet int, float, string, bool, array, object, securestring, secureobject



Not: tüm parolalar, anahtarlar ve gizli diziler için veya secureobject türlerini kullanın securestring çünkü GET işlem bu türleri döndürmez. Parametrelerin güvenliğini sağlama hakkında daha fazla bilgi için bkz . Eylem ve giriş parametreleri için güvenlik önerileri.
Parametresinin türü
<default-parameter-value> Evet Aynı type İş akışı örneği oluşturulurken değer belirtilmezse kullanılacak varsayılan parametre değeri. defaultValue Logic App Tasarım Aracı parametresini doğru şekilde gösterebilmesi için özniteliği gereklidir, ancak boş bir değer belirtebilirsiniz.
<array-with-permitted-parameter-values> No Dizi Parametresinin kabul edebildiği değerlere sahip bir dizi
<parametre açıklaması> No JSON nesnesi Parametrenin açıklaması gibi diğer parametre ayrıntıları

Ardından iş akışı tanımınız için bir Azure Resource Manager şablonu oluşturun, dağıtımda istediğiniz değerleri kabul eden şablon parametreleri tanımlayın, sabit kodlanmış değerleri şablon veya iş akışı tanımı parametrelerine uygun başvurularla değiştirin ve dağıtımda kullanılacak değerleri ayrı bir parametre dosyasında depolayın. Bu şekilde, mantıksal uygulamanızı güncelleştirmek ve yeniden dağıtmak zorunda kalmadan parametre dosyası aracılığıyla bu değerleri daha kolay değiştirebilirsiniz. Kullanıcı adları, parolalar ve gizli diziler gibi hassas olan veya güvenliği sağlanması gereken bilgiler için bu değerleri Azure Key Vault'ta depolayabilir ve parametre dosyanızın bu değerleri anahtar kasanızdan almasını sağlayabilirsiniz. Şablon ve iş akışı tanımı düzeylerinde parametre tanımlama hakkında daha fazla bilgi ve örnek için bkz . Genel Bakış: Azure Resource Manager şablonlarıyla mantıksal uygulamalar için dağıtımı otomatikleştirme.

Statik sonuçlar

özniteliğinde bir eylemin staticResults sahtesini outputs tanımlayın ve status eylemin statik sonuç ayarı açık olduğunda eylemin döndürdüğünü tanımlayın. Eylemin tanımında runtimeConfiguration.staticResult.name özniteliği içindeki statik sonuç tanımının staticResultsadına başvurur. Statik sonuçlar ayarlayarak mantıksal uygulama iş akışlarını sahte verilerle test etmeyi öğrenin.

"definition": {
   "$schema": "<...>",
   "actions": { "<...>" },
   "contentVersion": "<...>",
   "outputs": { "<...>" },
   "parameters": { "<...>" },
   "staticResults": {
      "<static-result-definition-name>": {
         "outputs": {
            <output-attributes-and-values-returned>,
            "headers": { <header-values> },
            "statusCode": "<status-code-returned>"
         },
         "status": "<action-status>"
      }
   },
   "triggers": { "<...>" }
}
Öznitelik Zorunlu Tür Açıklama
<static-result-definition-name> Evet String Bir eylem tanımının nesne üzerinden başvurabileceği statik sonuç tanımının runtimeConfiguration.staticResult adı. Daha fazla bilgi için bkz . Çalışma zamanı yapılandırma ayarları.

İstediğiniz benzersiz adı kullanabilirsiniz. Varsayılan olarak, bu benzersiz ad bir sayı ile eklenir ve bu sayı gerektiğinde artırılır.
<output-attributes-and-values-returned> Evet Değişir Bu özniteliklerin gereksinimleri farklı koşullara göre değişir. Örneğin, olduğunda statusSucceededoutputs özniteliği, eylem tarafından sahte çıkış olarak döndürülen öznitelikleri ve değerleri içerir. status ise outputsFailedözniteliği, hata bilgilerine errors sahip bir veya daha fazla hata message nesnesi içeren bir dizi olan özniteliğini içerir.
<üst bilgi-değerler> No JSON Eylem tarafından döndürülen tüm üst bilgi değerleri
<status-code-returned> Evet String Eylem tarafından döndürülen durum kodu
<eylem durumu> Evet String Eylemin durumu, örneğin veya SucceededFailed

Örneğin, bu HTTP eylem tanımında öznitelik, eylemin runtimeConfiguration.staticResult.namestaticResults sahte çıkışlarının tanımlandığı özniteliğin içinde başvururHTTP0. özniteliği, runtimeConfiguration.staticResult.staticResultOptions statik sonuç ayarının HTTP eyleminde olduğunu Enabled belirtir.

"actions": {
   "HTTP": {
      "inputs": {
         "method": "GET",
         "uri": "https://www.microsoft.com"
      },
      "runAfter": {},
      "runtimeConfiguration": {
         "staticResult": {
            "name": "HTTP0",
            "staticResultOptions": "Enabled"
         }
      },
      "type": "Http"
   }
},

HTTP eylemi, içindeki staticResultstanımdaki HTTP0 çıkışları döndürür. Bu örnekte, durum kodu için sahte çıkış şeklindedir OK. Üst bilgi değerleri için sahte çıkış şeklindedir "Content-Type": "application/JSON". Eylemin durumu için sahte çıkış olur Succeeded.

"definition": {
   "$schema": "<...>",
   "actions": { "<...>" },
   "contentVersion": "<...>",
   "outputs": { "<...>" },
   "parameters": { "<...>" },
   "staticResults": {
      "HTTP0": {
         "outputs": {
            "headers": {
               "Content-Type": "application/JSON"
            },
            "statusCode": "OK"
         },
         "status": "Succeeded"
      }
   },
   "triggers": { "<...>" }
},

İfadeler

JSON ile, tasarım zamanında var olan değişmez değerlere sahip olabilirsiniz, örneğin:

"customerName": "Sophia Owen",
"rainbowColors": ["red", "orange", "yellow", "green", "blue", "indigo", "violet"],
"rainbowColorsCount": 7

Çalışma zamanına kadar var olmayan değerlere de sahip olabilirsiniz. Bu değerleri temsil etmek için, çalışma zamanında değerlendirilen ifadeleri kullanabilirsiniz. İfade, bir veya daha fazla işlev, işleç, değişken, açık değer veya sabit içerebilen bir dizidir. İş akışı tanımınızda, ifadeye at-sign (@) ön ekini ekleyerek JSON dize değerinin herhangi bir yerinde ifade kullanabilirsiniz. JSON değerini temsil eden bir ifade değerlendirilirken, ifade gövdesi @ karakteri kaldırılarak ayıklanır ve her zaman başka bir JSON değeriyle sonuçlanır.

Örneğin, daha önce tanımlanmış customerName özellik için bir ifadede parameters() işlevini kullanarak özellik değerini alabilir ve bu değeri özelliğine accountName atayabilirsiniz:

"customerName": "Sophia Owen",
"accountName": "@parameters('customerName')"

Dize ilişkilendirmesi , @ karakteri ve küme ayracı (){} tarafından sarmalanan dizelerin içinde birden çok ifade kullanmanıza da olanak tanır. Söz dizimi şöyledir:

@{ "<expression1>", "<expression2>" }

Sonuç her zaman bir dizedir ve bu özelliği işleve concat() benzer hale getirir, örneğin:

"customerName": "First name: @{parameters('firstName')} Last name: @{parameters('lastName')}"

@ karakteriyle başlayan bir değişmez dizeniz varsa, @ karakterinin önüne bir kaçış karakteri olarak başka bir @ karakteri koyun: @@

Bu örnekler ifadelerin nasıl değerlendirileceğini gösterir:

JSON değeri Sonuç
"Sophia Owen" Şu karakterleri döndür: 'Sophia Owen'
"dizi[1]" Şu karakterleri döndür: 'dizi[1]'
"@@" Bu karakterleri tek karakterli dize olarak döndür: '@'
" @" Bu karakterleri iki karakterli bir dize olarak döndür: ' @'

Bu örnekler için "myBirthMonth" değerini "Ocak" ve "myAge" değerini 42 sayısına eşit olarak tanımladığınız varsayın:

"myBirthMonth": "January",
"myAge": 42

Bu örnekler aşağıdaki ifadelerin nasıl değerlendirileceğini gösterir:

JSON ifadesi Sonuç
"@parameters('myBirthMonth')" Şu dizeyi döndür: "Ocak"
"@{parameters('myBirthMonth')}" Şu dizeyi döndür: "Ocak"
"@parameters('myAge')" Şu sayıyı döndür: 42
"@{parameters('myAge')}" Bu sayıyı dize olarak döndür: "42"
"Yaşım @{parameters('myAge')}" Şu dizeyi döndür: "Yaşım 42"
"@concat('Yaşım ', string(parameters('myAge')))" Şu dizeyi döndür: "Yaşım 42"
"Yaşım @@{parameters('myAge')}" Şu ifadeyi içeren bu dizeyi döndür: "Yaşım @{parameters('myAge')}'

İş akışı tasarımcısında görsel olarak çalışırken, ifade düzenleyicisini kullanarak ifadeler oluşturabilirsiniz, örneğin:

Screenshot shows workflow designer and expression editor.

İşiniz bittiğinde, ifade iş akışı tanımınızda karşılık gelen özellik için (örneğin, searchQuery buradaki özellik) görüntülenir:

"Search_tweets": {
  "inputs": {
    "host": {
      "connection": {
        "name": "@parameters('$connections')['twitter']['connectionId']"
      }
    }
  },
  "method": "get",
  "path": "/searchtweets",
  "queries": {
    "maxResults": 20,
    "searchQuery": "Azure @{concat('firstName','', 'LastName')}"
  }
},

Çıkışlar

outputs bölümünde, çalıştırmayı bitirdiğinizde iş akışınızın döndürebileceği verileri tanımlayın. Örneğin, her çalıştırmadan belirli bir durumu veya değeri izlemek için iş akışı çıkışının bu verileri döndürdüğünü belirtin.

Dekont

Hizmetin REST API'sinden gelen istekleri yanıtlarken kullanmayın outputs. Bunun yerine eylem türünü kullanın Response . Daha fazla bilgi için bkz . İş akışı tetikleyicileri ve eylemleri.

Çıkış tanımının genel yapısı aşağıdadır:

"outputs": {
  "<key-name>": {
    "type": "<key-type>",
    "value": "<key-value>"
  }
}
Öznitelik Zorunlu Tür Açıklama
<anahtar-adı> Evet String Çıkış dönüş değerinin anahtar adı
<anahtar türü> Evet int, float, string, securestring, bool, array, JSON nesnesi Çıkış dönüş değerinin türü
<anahtar-değer> Evet Anahtar türüyle <aynı> Çıkış dönüş değeri

Bir iş akışı çalıştırmasından çıktı almak için Azure portalında mantıksal uygulamanızın çalıştırma geçmişini ve ayrıntılarını gözden geçirin veya İş Akışı REST API'sini kullanın. Panolar oluşturabilmek için çıkışı dış sistemlere (örneğin, Power BI) geçirebilirsiniz.

İşleçler

İfadelerde ve işlevlerde, işleçler bir özelliğe veya dizideki bir değere başvurma gibi belirli görevleri gerçekleştirir.

İşleç Görev
' Dize değişmez değerini giriş olarak veya ifadeler ve işlevlerde kullanmak için, dizeyi yalnızca tek tırnak işaretleri ile sarmalayın; örneğin, '<myString>'. İfadenin tamamında JSON biçimlendirmesiyle çakışan çift tırnak işareti ()"" kullanmayın. Örneğin:

Evet: length('Hello')
Hayır: length("Hello")

Dizileri veya sayıları geçirirken, noktalama işaretlerini sarmalamanıza gerek yoktur. Örneğin:

Evet: uzunluk([1, 2, 3])
Hayır: uzunluk("[1, 2, 3]")
[] Dizideki veya JSON nesnesinin içindeki belirli bir konumdaki (dizin) bir değere başvurmak için köşeli ayraç kullanın, örneğin:

- Dizideki ikinci öğeyi almak için:

myArray[1]

- Bir JSON nesnesinin içindeki özelliklere erişmek için:

Örnek 1:
setProperty(<object>, '<parent-property>', addProperty(<object>['<parent-property>'], '<child-property>', <value>)

Örnek 2:
lastIndexOf(triggerBody()?['subject'],'some string')
. Nesnedeki bir özelliğe başvurmak için nokta işlecini kullanın. Örneğin, bir customer JSON nesnesinin name özelliğini almak için:

"@parameters('customer').name"
? Çalışma zamanı hatası olmayan bir nesnedeki null özelliklere başvurmak için soru işareti işlecini kullanın. Örneğin, bir tetikleyiciden null çıkışları işlemek için şu ifadeyi kullanabilirsiniz:

@coalesce(trigger().outputs?.body?.<someProperty>, '<property-default-value>')

İşlevler

Bazı ifadeler değerlerini iş akışı tanımınız çalışmaya başladığında henüz varolmayan çalışma zamanı eylemlerinden alır. İfadelerde bu değerlere başvurmak veya bu değerlerle çalışmak için İş Akışı Tanım Dili'nin sağladığı işlevleri kullanabilirsiniz.

Sonraki adımlar