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 |
Yes | İş 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 |
Hayır | İş 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 |
Hayır | 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 |
Hayır | 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 |
Hayır | 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 |
Hayır | 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 staticResults ilgili tanıma başvurur. Daha fazla bilgi için bkz . Statik sonuçlar. |
triggers |
Hayır | İş 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ı> | Yes | String | Tanımlamak istediğiniz parametrenin adı |
<parametre türü> | Yes | 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> | Yes | Aynı type |
İş akışı örneği oluşturulurken değer belirtilmezse kullanılacak varsayılan parametre değeri. defaultValue Logic App Designer'ın parametreyi doğru şekilde gösterebilmesi için özniteliği gereklidir, ancak boş bir değer belirtebilirsiniz. |
<array-with-permitted-parameter-values> | Hayır | Dizi | Parametresinin kabul edebildiği değerlere sahip bir dizi |
<parametre açıklaması> | Hayır | 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 staticResults
adı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> | Yes | 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> | Yes | Değişir | Bu özniteliklerin gereksinimleri farklı koşullara göre değişir. Örneğin, olduğunda status Succeeded outputs özniteliği, eylem tarafından sahte çıkış olarak döndürülen öznitelikleri ve değerleri içerir. status ise outputs Failed ö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> | Hayır | JSON | Eylem tarafından döndürülen tüm üst bilgi değerleri |
<status-code-returned> | Yes | String | Eylem tarafından döndürülen durum kodu |
<eylem durumu> | Yes | String | Eylemin durumu, örneğin veya Succeeded Failed |
Örneğin, bu HTTP eylem tanımında öznitelik, eylemin runtimeConfiguration.staticResult.name
staticResults
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 staticResults
tanı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:
İş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')['x']['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.
Not
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ı> | Yes | String | Çıkış dönüş değerinin anahtar adı |
<anahtar türü> | Yes | int, float, string, securestring, bool, array, JSON nesnesi | Çıkış dönüş değerinin türü |
<anahtar-değer> | Yes | 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.
Operatör | 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 null-ignore (?) işlecini kullanın. Örneğin, bir tetikleyiciden null çıkışları işlemek için aşağıdaki 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
- İş Akışı Tanımı Dili eylemleri ve tetikleyicileri hakkında bilgi edinin
- İş Akışı REST API'siyle program aracılığıyla mantıksal uygulama oluşturma ve yönetme hakkında bilgi edinin