Azure Logic Apps'te tetikleyici ve eylem türleri için şema başvuru kılavuzu
Bu başvuru, mantıksal uygulamanızın temel iş akışı tanımında tetikleyicileri ve eylemleri tanımlamak için kullanılan genel türleri açıklar. Bu türler İş Akışı Tanım Dili tarafından açıklanıp doğrulanır. Mantıksal uygulamalarınızda kullanabileceğiniz belirli bağlayıcı tetikleyicilerini ve eylemlerini bulmak için Bağlan örlere genel bakış altındaki listeye bakın.
Tetikleyicilere genel bakış
Her iş akışı, iş akışının örneğini oluşturan ve başlatan çağrıları tanımlayan bir tetikleyici içerir. Genel tetikleyici kategorileri şunlardır:
Bir hizmetin uç noktasını düzenli aralıklarla denetleyen yoklama tetikleyicisi
Bir uç noktaya abonelik oluşturan ve uç noktanın belirtilen olay gerçekleştiğinde veya veriler kullanılabilir olduğunda tetikleyiciyi uyarabilmesi için bir geri çağırma URL'si sağlayan bir anında iletme tetikleyicisi. Tetikleyici daha sonra tetiklemeden önce uç noktanın yanıtını bekler.
Tetikleyiciler şu üst düzey öğelere sahiptir, ancak bazıları isteğe bağlıdır:
"<trigger-name>": {
"type": "<trigger-type>",
"inputs": { "<trigger-inputs>" },
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>
},
"conditions": [ "<array-with-conditions>" ],
"runtimeConfiguration": { "<runtime-config-options>" },
"splitOn": "<splitOn-expression>",
"operationOptions": "<operation-option>"
},
Required
Değer | Type | Açıklama |
---|---|---|
<tetikleyici-adı> | String | Tetikleyicinin adı |
<tetikleyici türü> | String | "Http" veya "Api Bağlan ion" gibi tetikleyici türü |
<tetikleyici girişleri> | JSON Nesnesi | Tetikleyicinin davranışını tanımlayan girişler |
<zaman birimi> | String | Tetikleyicinin ne sıklıkta tetiklendiğini açıklayan zaman birimi: "second", "Minute", "Hour", "Day", "Week", "Month" |
<zaman birimi sayısı> | Tamsayı | Tetikleyicinin sıklık temelinde ne sıklıkta tetiklendiğini belirten bir değerdir. Bu, tetikleyici yeniden tetiklenene kadar bekleyebileceğiniz zaman birimi sayısıdır Minimum ve maksimum aralıklar şunlardır: - Ay: 1-16 ay - Gün: 1-500 gün - Saat: 1-12.000 saat - Dakika: 1-72.000 dakika - Saniye: 1-9.999.999 saniye Örneğin, aralık 6 ve sıklık "Ay" ise, yinelenme 6 ayda bir olur. |
Optional
Değer | Type | Açıklama |
---|---|---|
<koşullarla dizi> | Dizi | İş akışının çalıştırılıp çalıştırılmayacağını belirleyen bir veya daha fazla koşul içeren bir dizi. Yalnızca tetikleyiciler için kullanılabilir. |
<runtime-config-options> | JSON Nesnesi | Özellikleri ayarlayarak runtimeConfiguration tetikleyici çalışma zamanı davranışını değiştirebilirsiniz. Daha fazla bilgi için bkz . Çalışma zamanı yapılandırma ayarları. |
<splitOn-expression> | String | Dizi döndüren tetikleyiciler için, dizi öğelerini işlenmek üzere birden çok iş akışı örneğine bölen veya ayıran bir ifade belirtebilirsiniz. |
<operation-option> | String | Özelliğini ayarlayarak operationOptions varsayılan davranışı değiştirebilirsiniz. Daha fazla bilgi için bkz . İşlem seçenekleri. |
Tetikleyici türleri listesi
Her tetikleyici türünün farklı bir arabirimi ve tetikleyicinin davranışını tanımlayan girişler vardır.
Yerleşik tetikleyiciler
Tetikleyici türü | Açıklama |
---|---|
HTTP | Herhangi bir uç noktayı denetler veya yoklar . Bu uç nokta, zaman uyumsuz bir desen kullanarak veya dizi döndürerek belirli bir 202 tetikleyici sözleşmesine uygun olmalıdır. |
HTTPWebhook | Mantıksal uygulamanız için çağrılabilen bir uç nokta oluşturur, ancak belirtilen URL'yi çağırarak kaydetme veya kaydını kaldırma. |
Yinelenme | Tanımlanan bir zamanlamaya göre tetikler. Bu tetikleyiciyi tetikleme için gelecekteki bir tarih ve saat ayarlayabilirsiniz. Sıklık temelinde, iş akışınızı çalıştırmak için saatleri ve günleri de belirtebilirsiniz. |
İste | Mantıksal uygulamanız için çağrılabilen bir uç nokta oluşturur ve "el ile" tetikleyici olarak da bilinir. Örneğin bkz . HTTP uç noktalarıyla iş akışlarını çağırma, tetikleme veya iç içe yerleştirme. |
Yönetilen API tetikleyicileri
Tetikleyici türü | Açıklama |
---|---|
ApiConnection | Microsoft tarafından yönetilen API'leri veya "bağlayıcıları" kullanarak uç noktayı denetler veya yoklar. |
Api Bağlan ionWebhook | Abone olmak ve aboneliği kaldırmak için Microsoft tarafından yönetilen API'leri veya "bağlayıcıları" çağırarak mantıksal uygulama iş akışınız için çağrılabilen bir uç nokta oluşturur. |
Tetikleyiciler - Ayrıntılı başvuru
API Bağlan ion tetikleyicisi
Bu tetikleyici, Microsoft tarafından yönetilen API'leri veya "bağlayıcıları" kullanarak bir uç noktayı denetler veya yoklar, böylece bu tetikleyicinin parametreleri uç noktaya göre farklılık gösterebilir. Bu tetikleyici tanımındaki birçok bölüm isteğe bağlıdır. Tetikleyicinin davranışı, bölümlerin dahil edilip edilmediğine bağlıdır.
"<APIConnection_trigger_name>": {
"type": "ApiConnection",
"inputs": {
"host": {
"connection": {
"name": "@parameters('$connections')['<connection-name>']['connectionId']"
}
},
"method": "<method-type>",
"path": "/<api-operation>",
"retryPolicy": { "<retry-behavior>" },
"queries": { "<query-parameters>" }
},
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>
},
"runtimeConfiguration": {
"concurrency": {
"runs": <max-runs>,
"maximumWaitingRuns": <max-runs-queue>
}
},
"splitOn": "<splitOn-expression>",
"operationOptions": "<operation-option>"
}
Required
Özellik | Değer | Type | Açıklama |
---|---|---|---|
Hiçbiri | <API Bağlan ion_trigger_name> | String | Tetikleyicinin adı |
host.connection.name | <bağlantı adı> | String | İş akışının kullandığı yönetilen API bağlantısının adı |
Yöntem | <yöntem türü> | String | Yönetilen API ile iletişim kurmak için HTTP yöntemi: GET, PUT, POST, PATCH, DELETE |
yol | <api-operation> | String | Çağrılacak API işlemi |
recurrence.frequency | <zaman birimi> | String | Tetikleyicinin ne sıklıkta tetiklendiğini açıklayan zaman birimi: second, Minute, Hour, Day, Week, Month |
recurrence.interval | <zaman birimi sayısı> | Tamsayı | Tetikleyicinin sıklık temelinde ne sıklıkta tetiklendiğini belirten bir değerdir. Bu, tetikleyici yeniden tetiklenene kadar bekleyebileceğiniz zaman birimi sayısıdır Minimum ve maksimum aralıklar şunlardır: - Ay: 1-16 ay - Gün: 1-500 gün - Saat: 1-12.000 saat - Dakika: 1-72.000 dakika - Saniye: 1-9.999.999 saniye Örneğin, aralık 6 ve sıklık Ay ise, yinelenme 6 ayda bir olur. |
Optional
Özellik | Değer | Type | Açıklama |
---|---|---|---|
retryPolicy | <yeniden deneme davranışı> | JSON Nesnesi | 408, 429 ve 5XX durum koduna ve tüm bağlantı özel durumlarına sahip aralıklı hatalar için yeniden deneme davranışını özelleştirir. Daha fazla bilgi için bkz . İlkeleri yeniden deneme. |
Sorgu | <sorgu parametreleri> | JSON Nesnesi | API çağrısına eklenecek tüm sorgu parametreleri. Örneğin, "queries": { "api-version": "2018-01-01" } nesnesi çağrısına ekler ?api-version=2018-01-01 . |
runtimeConfiguration.concurrency.runs | <maksimum çalıştırmalar> | Tamsayı | Varsayılan olarak, iş akışı örnekleri varsayılan sınıra kadar aynı anda (eşzamanlı veya paralel) çalışır. Yeni <bir sayı> değeri ayarlayarak bu sınırı değiştirmek için bkz. Tetikleyici eşzamanlılığını değiştirme. |
runtimeConfiguration.maximumWaitingRuns | <max-runs-queue> | Tamsayı | İş akışınız zaten en fazla örnek sayısını çalıştırıyorsa, yeni çalıştırmalar varsayılan sınıra kadar bu kuyruğa eklenir. Varsayılan sınırı değiştirmek için bkz . Bekleyen çalıştırma sınırını değiştirme. Örnek sayısı üst sınırını değiştirmek için runtimeConfiguration.concurrency.runs özelliği için bir değer belirtin. Not: |
splitOn | <splitOn-expression> | String | Dizi döndüren tetikleyiciler için, bu ifade kullanılacak diziye başvurur, böylece her dizi öğesi için "her bir" döngüsü yerine bir iş akışı örneği oluşturup çalıştırabilirsiniz. Örneğin, bu ifade tetikleyicinin gövde içeriği içinde döndürülen dizideki bir öğeyi temsil eder: @triggerbody()?['value'] |
operationOptions | <operation-option> | String | Özelliğini ayarlayarak operationOptions varsayılan davranışı değiştirebilirsiniz. Daha fazla bilgi için bkz . İşlem seçenekleri. |
Çıkışlar
Öğe | Type | Açıklama |
---|---|---|
Üstbilgi | JSON Nesnesi | Yanıttan alınan üst bilgiler |
gövde | JSON Nesnesi | Yanıttan alınan gövde |
durum kodu | Tamsayı | Yanıttan gelen durum kodu |
Örnek
Bu tetikleyici tanımı, bir iş veya okul hesabı için gelen kutusunun içinde her gün e-posta olup olduğunu denetler:
"When_a_new_email_arrives": {
"type": "ApiConnection",
"inputs": {
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "get",
"path": "/Mail/OnNewEmail",
"queries": {
"fetchOnlyWithAttachment": false,
"folderPath": "Inbox",
"importance": "Any",
"includeAttachments": false
}
},
"recurrence": {
"frequency": "Day",
"interval": 1
}
}
Api Bağlan ionWebhook tetikleyicisi
Bu tetikleyici Microsoft tarafından yönetilen bir API kullanarak uç noktaya abonelik isteği gönderir, uç noktanın yanıt gönderebileceği bir geri çağırma URL'si sağlar ve uç noktanın yanıt vermesini bekler. Daha fazla bilgi için bkz . Uç nokta abonelikleri.
"<ApiConnectionWebhook_trigger_name>": {
"type": "ApiConnectionWebhook",
"inputs": {
"body": {
"NotificationUrl": "@{listCallbackUrl()}"
},
"host": {
"connection": {
"name": "@parameters('$connections')['<connection-name>']['connectionId']"
}
},
"retryPolicy": { "<retry-behavior>" },
"queries": "<query-parameters>"
},
"runTimeConfiguration": {
"concurrency": {
"runs": <max-runs>,
"maximumWaitingRuns": <max-run-queue>
}
},
"splitOn": "<splitOn-expression>",
"operationOptions": "<operation-option>"
}
Required
Değer | Type | Açıklama |
---|---|---|
<bağlantı adı> | String | İş akışının kullandığı yönetilen API bağlantısının adı |
<gövde içeriği> | JSON Nesnesi | Yönetilen API'ye yük olarak gönderilecek tüm ileti içeriği |
Optional
Değer | Type | Açıklama |
---|---|---|
<yeniden deneme davranışı> | JSON Nesnesi | 408, 429 ve 5XX durum koduna ve tüm bağlantı özel durumlarına sahip aralıklı hatalar için yeniden deneme davranışını özelleştirir. Daha fazla bilgi için bkz . İlkeleri yeniden deneme. |
<sorgu parametreleri> | JSON Nesnesi | API çağrısına eklenecek tüm sorgu parametreleri Örneğin, "queries": { "api-version": "2018-01-01" } nesnesi çağrısına ekler ?api-version=2018-01-01 . |
<maksimum çalıştırmalar> | Tamsayı | Varsayılan olarak, iş akışı örnekleri varsayılan sınıra kadar aynı anda (eşzamanlı veya paralel) çalışır. Yeni <bir sayı> değeri ayarlayarak bu sınırı değiştirmek için bkz. Tetikleyici eşzamanlılığını değiştirme. |
<max-runs-queue> | Tamsayı | İş akışınız zaten özellik temelinde runtimeConfiguration.concurrency.runs değiştirebileceğiniz en fazla örnek sayısını çalıştırıyorsa, yeni çalıştırmalar varsayılan sınıra kadar bu kuyruğa alınır. Varsayılan sınırı değiştirmek için bkz . Bekleyen çalıştırma sınırını değiştirme. |
<splitOn-expression> | String | Dizi döndüren tetikleyiciler için, bu ifade kullanılacak diziye başvurur, böylece her dizi öğesi için "her bir" döngüsü yerine bir iş akışı örneği oluşturup çalıştırabilirsiniz. Örneğin, bu ifade tetikleyicinin gövde içeriği içinde döndürülen dizideki bir öğeyi temsil eder: @triggerbody()?['value'] |
<operation-option> | String | Özelliğini ayarlayarak operationOptions varsayılan davranışı değiştirebilirsiniz. Daha fazla bilgi için bkz . İşlem seçenekleri. |
Örnek
Bu tetikleyici tanımı Office 365 Outlook API'sine abonedir, API uç noktasına bir geri çağırma URL'si sağlar ve yeni bir e-posta geldiğinde uç noktanın yanıt vermesini bekler.
"When_a_new_email_arrives_(webhook)": {
"type": "ApiConnectionWebhook",
"inputs": {
"body": {
"NotificationUrl": "@{listCallbackUrl()}"
},
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"path": "/MailSubscription/$subscriptions",
"queries": {
"folderPath": "Inbox",
"hasAttachment": "Any",
"importance": "Any"
}
},
"splitOn": "@triggerBody()?['value']"
}
HTTP tetikleyicisi
Bu tetikleyici, belirtilen yineleme zamanlamasına göre belirtilen HTTP veya HTTPS uç noktasına bir istek gönderir. Ardından tetikleyici, iş akışının çalışıp çalışmadığını belirlemek için yanıtı denetler. Daha fazla bilgi için bkz . Azure Logic Apps'ten HTTP veya HTTPS üzerinden hizmet uç noktalarını çağırma.
"HTTP": {
"type": "Http",
"inputs": {
"method": "<method-type>",
"uri": "<HTTP-or-HTTPS-endpoint-URL>",
"headers": { "<header-content>" },
"queries": "<query-parameters>",
"body": "<body-content>",
"authentication": { "<authentication-type-and-property-values>" },
"retryPolicy": {
"type": "<retry-behavior>"
}
},
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>
},
"runtimeConfiguration": {
"concurrency": {
"runs": <max-runs>,
"maximumWaitingRuns": <max-runs-queue>
}
},
"operationOptions": "<operation-option>"
}
Required
Özellik | Değer | Type | Açıklama |
---|---|---|---|
method |
<yöntem türü> | String | Giden isteği göndermek için kullanılacak yöntem: "GET", "PUT", "POST", "PATCH" veya "DELETE" |
uri |
<HTTP-veya-HTTPS-endpoint-URL> | String | Giden isteği göndermek istediğiniz HTTP veya HTTPS uç nokta URL'si. En büyük dize boyutu: 2 KB Bir Azure hizmeti veya kaynağı için bu URI söz dizimi kaynak kimliğini ve erişmek istediğiniz kaynağın yolunu içerir. |
frequency |
<zaman birimi> | String | Tetikleyicinin ne sıklıkta tetiklendiğini açıklayan zaman birimi: "second", "Minute", "Hour", "Day", "Week", "Month" |
interval |
<zaman birimi sayısı> | Tamsayı | Tetikleyicinin sıklık temelinde ne sıklıkta tetiklendiğini belirten bir değerdir. Bu, tetikleyici yeniden tetiklenene kadar bekleyebileceğiniz zaman birimi sayısıdır Minimum ve maksimum aralıklar şunlardır: - Ay: 1-16 ay - Gün: 1-500 gün - Saat: 1-12.000 saat - Dakika: 1-72.000 dakika - Saniye: 1-9.999.999 saniye Örneğin, aralık 6 ve sıklık "Ay" ise, yinelenme 6 ayda bir olur. |
Optional
Özellik | Değer | Type | Açıklama |
---|---|---|---|
headers |
<üst bilgi içeriği> | JSON Nesnesi | İstekle birlikte eklemeniz gereken tüm üst bilgiler Örneğin, dili ayarlamak ve yazmak için: "headers": { "Accept-Language": "en-us", "Content-Type": "application/json" } |
queries |
<sorgu parametreleri> | JSON Nesnesi | İstekte kullanmanız gereken tüm sorgu parametreleri Örneğin, "queries": { "api-version": "2018-01-01" } nesnesi isteğe ekler ?api-version=2018-01-01 . |
body |
<gövde içeriği> | JSON Nesnesi | İstekle yük olarak gönderilecek ileti içeriği |
authentication |
<kimlik doğrulama türü ve özellik-değerleri> | JSON Nesnesi | İsteğin giden isteklerin kimliğini doğrulamak için kullandığı kimlik doğrulama modeli. Daha fazla bilgi için bkz . Giden çağrılara kimlik doğrulaması ekleme. Scheduler'ın authority ötesinde özelliği desteklenir. Belirtilmediğinde varsayılan değer olur https://management.azure.com/ , ancak farklı bir değer kullanabilirsiniz. |
retryPolicy > type |
<yeniden deneme davranışı> | JSON Nesnesi | 408, 429 ve 5XX durum koduna ve tüm bağlantı özel durumlarına sahip aralıklı hatalar için yeniden deneme davranışını özelleştirir. Daha fazla bilgi için bkz . İlkeleri yeniden deneme. |
runs |
<maksimum çalıştırmalar> | Tamsayı | Varsayılan olarak, iş akışı örnekleri varsayılan sınıra kadar aynı anda (eşzamanlı veya paralel) çalışır. Yeni <bir sayı> değeri ayarlayarak bu sınırı değiştirmek için bkz. Tetikleyici eşzamanlılığını değiştirme. |
maximumWaitingRuns |
<max-runs-queue> | Tamsayı | İş akışınız zaten özellik temelinde runtimeConfiguration.concurrency.runs değiştirebileceğiniz en fazla örnek sayısını çalıştırıyorsa, yeni çalıştırmalar varsayılan sınıra kadar bu kuyruğa alınır. Varsayılan sınırı değiştirmek için bkz . Bekleyen çalıştırma sınırını değiştirme. |
operationOptions |
<operation-option> | String | Özelliğini ayarlayarak operationOptions varsayılan davranışı değiştirebilirsiniz. Daha fazla bilgi için bkz . İşlem seçenekleri. |
Çıkışlar
Öğe | Type | Açıklama |
---|---|---|
headers |
JSON Nesnesi | Yanıttan alınan üst bilgiler |
body |
JSON Nesnesi | Yanıttan alınan gövde |
status code |
Tamsayı | Yanıttan gelen durum kodu |
Gelen istekler için gereksinimler
Mantıksal uygulamanızla iyi çalışabilmek için uç noktanın belirli bir tetikleyici desenine veya sözleşmesine uyması ve şu yanıt özelliklerini tanıması gerekir:
Özellik | Zorunlu | Açıklama |
---|---|---|
Durum kodu | Yes | "200 Tamam" durum kodu bir çalıştırma başlatır. Diğer durum kodları çalıştırma başlatmaz. |
Üst bilgiden sonra yeniden deneme | Hayır | Mantıksal uygulamanızın uç noktayı yeniden yoklamasına kadar olan saniye sayısı |
Konum üst bilgisi | Hayır | Sonraki yoklama aralığında çağrılacak URL. Belirtilmezse, özgün URL kullanılır. |
Farklı istekler için örnek davranışlar
Durum kodu | Sonra yeniden deneyin | Davranış |
---|---|---|
200 | {none} | İş akışını çalıştırın, ardından tanımlanan yinelenmeden sonra daha fazla veri olup olmadığını yeniden denetleyin. |
200 | 10 saniye | İş akışını çalıştırın ve 10 saniye sonra daha fazla veri olup olmadığını yeniden denetleyin. |
202 | 60 saniye | İş akışını tetiklemeyin. Bir sonraki deneme, tanımlanan yinelenme durumuna bağlı olarak bir dakika içinde gerçekleşir. Tanımlanan yinelenme bir dakikadan azsa, yeniden deneme sonrası üst bilgisi önceliklidir. Aksi takdirde tanımlı yinelenme kullanılır. |
400 | {none} | Hatalı istek, iş akışını çalıştırma. Tanımlanmamışsa retryPolicy , varsayılan ilke kullanılır. Yeniden deneme sayısına ulaşıldıktan sonra tetikleyici, tanımlanan yinelenmeden sonra verileri yeniden denetler. |
500 | {none} | Sunucu hatası, iş akışını çalıştırma. Tanımlanmamışsa retryPolicy , varsayılan ilke kullanılır. Yeniden deneme sayısına ulaşıldıktan sonra tetikleyici, tanımlanan yinelenmeden sonra verileri yeniden denetler. |
HTTPWebhook tetikleyicisi
Bu tetikleyici, belirtilen uç nokta URL'sini çağırarak aboneliği kaydedebilen bir uç nokta oluşturarak mantıksal uygulamanızı çağırılabilir hale getirir. İş akışınızda bu tetikleyiciyi oluşturduğunuzda, giden bir istek aboneliği kaydetmek için çağrı yapar. Bu şekilde tetikleyici olayları dinlemeye başlayabilir. Bir işlem bu tetikleyiciyi geçersiz hale getirdiğinde, giden istek otomatik olarak aboneliği iptal etmek için çağrı yapar. Daha fazla bilgi için bkz . Uç nokta abonelikleri.
HttpWebhook tetikleyicisinde zaman uyumsuz sınırlar da belirtebilirsiniz. Tetikleyicinin davranışı, kullandığınız veya atladığınız bölümlere bağlıdır.
"HTTP_Webhook": {
"type": "HttpWebhook",
"inputs": {
"subscribe": {
"method": "<method-type>",
"uri": "<endpoint-subscribe-URL>",
"headers": { "<header-content>" },
"body": "<body-content>",
"authentication": { "<authentication-type>" },
"retryPolicy": { "<retry-behavior>" }
},
"unsubscribe": {
"method": "<method-type>",
"url": "<endpoint-unsubscribe-URL>",
"headers": { "<header-content>" },
"body": "<body-content>",
"authentication": { "<authentication-type>" }
}
},
"runTimeConfiguration": {
"concurrency": {
"runs": <max-runs>,
"maximumWaitingRuns": <max-runs-queue>
}
},
"operationOptions": "<operation-option>"
}
Yöntem türü> gibi <bazı değerler hem hem "unsubscribe"
de "subscribe"
nesneleri için kullanılabilir.
Required
Değer | Type | Açıklama |
---|---|---|
<yöntem türü> | String | Abonelik isteği için kullanılacak HTTP yöntemi: "GET", "PUT", "POST", "PATCH" veya "DELETE" |
<endpoint-subscribe-URL> | String | Abonelik isteğinin gönderileceği uç nokta URL'si |
Optional
Değer | Type | Açıklama |
---|---|---|
<yöntem türü> | String | İptal isteği için kullanılacak HTTP yöntemi: "GET", "PUT", "POST", "PATCH" veya "DELETE" |
<endpoint-unsubscribe-URL> | String | İptal isteğinin gönderileceği uç nokta URL'si |
<gövde içeriği> | String | Abonelikte veya iptal isteğinde gönderilecek tüm ileti içeriği |
<kimlik doğrulama türü> | JSON Nesnesi | İsteğin giden isteklerin kimliğini doğrulamak için kullandığı kimlik doğrulama modeli. Daha fazla bilgi için bkz . Giden çağrılara kimlik doğrulaması ekleme. |
<yeniden deneme davranışı> | JSON Nesnesi | 408, 429 ve 5XX durum koduna ve tüm bağlantı özel durumlarına sahip aralıklı hatalar için yeniden deneme davranışını özelleştirir. Daha fazla bilgi için bkz . İlkeleri yeniden deneme. |
<maksimum çalıştırmalar> | Tamsayı | Varsayılan olarak, iş akışı örneklerinin tümü varsayılan sınıra kadar aynı anda (eşzamanlı veya paralel) çalışır. Yeni <bir sayı> değeri ayarlayarak bu sınırı değiştirmek için bkz. Tetikleyici eşzamanlılığını değiştirme. |
<max-runs-queue> | Tamsayı | İş akışınız zaten özellik temelinde runtimeConfiguration.concurrency.runs değiştirebileceğiniz en fazla örnek sayısını çalıştırıyorsa, yeni çalıştırmalar varsayılan sınıra kadar bu kuyruğa alınır. Varsayılan sınırı değiştirmek için bkz . Bekleyen çalıştırma sınırını değiştirme. |
<operation-option> | String | Özelliğini ayarlayarak operationOptions varsayılan davranışı değiştirebilirsiniz. Daha fazla bilgi için bkz . İşlem seçenekleri. |
Çıkışlar
Öğe | Type | Açıklama |
---|---|---|
üst bilgiler | JSON Nesnesi | Yanıttan alınan üst bilgiler |
gövde | JSON Nesnesi | Yanıttan alınan gövde |
durum kodu | Tamsayı | Yanıttan gelen durum kodu |
Örnek
Bu tetikleyici, belirtilen uç noktaya bir abonelik oluşturur, benzersiz bir geri çağırma URL'si sağlar ve yeni yayımlanan teknoloji makalelerini bekler.
"HTTP_Webhook": {
"type": "HttpWebhook",
"inputs": {
"subscribe": {
"method": "POST",
"uri": "https://pubsubhubbub.appspot.com/subscribe",
"body": {
"hub.callback": "@{listCallbackUrl()}",
"hub.mode": "subscribe",
"hub.topic": "https://pubsubhubbub.appspot.com/articleCategories/technology"
},
},
"unsubscribe": {
"method": "POST",
"url": "https://pubsubhubbub.appspot.com/subscribe",
"body": {
"hub.callback": "@{workflow().endpoint}@{listCallbackUrl()}",
"hub.mode": "unsubscribe",
"hub.topic": "https://pubsubhubbub.appspot.com/articleCategories/technology"
}
}
}
}
Yinelenme tetikleyicisi
Bu tetikleyici, belirtilen yineleme zamanlamasına göre çalışır ve düzenli olarak çalışan bir iş akışı oluşturmak için kolay bir yol sağlar.
"Recurrence": {
"type": "Recurrence",
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>,
"startTime": "<start-date-time-with-format-YYYY-MM-DDThh:mm:ss>",
"timeZone": "<time-zone>",
"schedule": {
// Applies only when frequency is Day or Week. Separate values with commas.
"hours": [ <one-or-more-hour-marks> ],
// Applies only when frequency is Day or Week. Separate values with commas.
"minutes": [ <one-or-more-minute-marks> ],
// Applies only when frequency is Week. Separate values with commas.
"weekDays": [ "Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday" ]
}
},
"runtimeConfiguration": {
"concurrency": {
"runs": <max-runs>,
"maximumWaitingRuns": <max-runs-queue>
}
},
"operationOptions": "<operation-option>"
}
Required
Değer | Type | Açıklama |
---|---|---|
<zaman birimi> | String | Tetikleyicinin ne sıklıkta tetiklendiğini açıklayan zaman birimi: "second", "Minute", "Hour", "Day", "Week", "Month" |
<zaman birimi sayısı> | Tamsayı | Tetikleyicinin sıklık temelinde ne sıklıkta tetiklendiğini belirten bir değerdir. Bu, tetikleyici yeniden tetiklenene kadar bekleyebileceğiniz zaman birimi sayısıdır Minimum ve maksimum aralıklar şunlardır: - Ay: 1-16 ay - Gün: 1-500 gün - Saat: 1-12.000 saat - Dakika: 1-72.000 dakika - Saniye: 1-9.999.999 saniye Örneğin, aralık 6 ve sıklık "Ay" ise, yinelenme 6 ayda bir olur. |
Optional
Değer | Type | Açıklama |
---|---|---|
<start-date-time-with-format-YYYY-MM-DDThh:mm:ss> | String | Başlangıç tarihi ve saati şu biçimdedir: Saat dilimi belirtirseniz YYYY-AA-GGThh:mm:ss -Veya- Saat dilimi belirtmezseniz YYYY-AA-GGThh:mm:ssZ Örneğin, 18 Eylül 2017'nin saat 14:00'da olmasını istiyorsanız, "2017-09-18T14:00:00" belirtin ve "Pasifik Standart Saati" gibi bir saat dilimi belirtin veya saat dilimi olmadan "2017-09-18T14:00:00Z" belirtin. Not: Bu başlangıç saati, gelecekte en fazla 49 yıla sahiptir ve UTC tarih saat biçiminde iso 8601 tarih saat belirtimini izlemelidir ancak UTC uzaklığı olmadan olmalıdır. Saat dilimi belirtmezseniz, sonuna boşluk bırakmadan "Z" harfini eklemeniz gerekir. Bu "Z" eşdeğer deniz zamanını ifade eder. Basit zamanlamalar için başlangıç saati ilk oluşumdur, ancak karmaşık zamanlamalar için tetikleyici başlangıç zamanından daha erken tetiklenmez. Başlangıç tarihleri ve saatleri hakkında daha fazla bilgi için bkz . Düzenli olarak çalışan görevleri oluşturma ve zamanlama. |
<saat dilimi> | String | Bu tetikleyici UTC uzaklığını kabul etmediğinden yalnızca bir başlangıç saati belirttiğinizde geçerlidir. Uygulamak istediğiniz saat dilimini belirtin. |
<bir veya daha fazla saat işareti> | Tamsayı veya tamsayı dizisi | için frequency "Gün" veya "Hafta" belirtirseniz, iş akışını çalıştırmak istediğiniz günün saatleri olarak virgülle ayrılmış olarak 0 ile 23 arasında bir veya daha fazla tamsayı belirtebilirsiniz. Örneğin, "10", "12" ve "14" belirtirseniz saat işaretleri olarak 10:00, 12:00 ve 14:00 alırsınız. |
<bir veya daha fazla dakika işareti> | Tamsayı veya tamsayı dizisi | için frequency "Gün" veya "Hafta" belirtirseniz, iş akışını çalıştırmak istediğiniz saatin dakikası olarak virgülle ayırarak 0 ile 59 arasında bir veya daha fazla tamsayı belirtebilirsiniz. Örneğin, dakika işareti olarak "30" belirtebilirsiniz ve günün saatleri için önceki örneği kullanarak 10:30, 12:30 ve 14:30 pm alırsınız. |
weekDays | Dize veya dize dizisi | için frequency "Hafta" belirtirseniz, iş akışını çalıştırmak istediğinizde virgülle ayrılmış bir veya daha fazla gün belirtebilirsiniz: "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi" ve "Pazar" |
<maksimum çalıştırmalar> | Tamsayı | Varsayılan olarak, iş akışı örneklerinin tümü varsayılan sınıra kadar aynı anda (eşzamanlı veya paralel) çalışır. Yeni <bir sayı> değeri ayarlayarak bu sınırı değiştirmek için bkz. Tetikleyici eşzamanlılığını değiştirme. |
<max-runs-queue> | Tamsayı | İş akışınız zaten özellik temelinde runtimeConfiguration.concurrency.runs değiştirebileceğiniz en fazla örnek sayısını çalıştırıyorsa, yeni çalıştırmalar varsayılan sınıra kadar bu kuyruğa alınır. Varsayılan sınırı değiştirmek için bkz . Bekleyen çalıştırma sınırını değiştirme. |
<operation-option> | String | Özelliğini ayarlayarak operationOptions varsayılan davranışı değiştirebilirsiniz. Daha fazla bilgi için bkz . İşlem seçenekleri. |
Örnek 1
Bu temel yinelenme tetikleyicisi günlük olarak çalışır:
"Recurrence": {
"type": "Recurrence",
"recurrence": {
"frequency": "Day",
"interval": 1
}
}
Örnek 2
Tetikleyiciyi başlatmak için bir başlangıç tarihi ve saati belirtebilirsiniz. Bu yinelenme tetikleyicisi belirtilen tarihte başlar ve günlük olarak tetikler:
"Recurrence": {
"type": "Recurrence",
"recurrence": {
"frequency": "Day",
"interval": 1,
"startTime": "2017-09-18T00:00:00Z"
}
}
Örnek 3
Bu yinelenme tetikleyicisi 9 Eylül 2017'de saat 14:00'da başlar ve her pazartesi 10:30, 12:30 ve Pasifik Standart Saati ile 14:30'da tetiklenir:
"Recurrence": {
"type": "Recurrence",
"recurrence": {
"frequency": "Week",
"interval": 1,
"schedule": {
"hours": [ 10, 12, 14 ],
"minutes": [ 30 ],
"weekDays": [ "Monday" ]
},
"startTime": "2017-09-07T14:00:00",
"timeZone": "Pacific Standard Time"
}
}
Bu tetikleyiciye ilişkin daha fazla bilgi ve örnekler için bkz . Düzenli olarak çalışan görevleri oluşturma ve zamanlama.
İstek tetikleyicisi
Bu tetikleyici, gelen istekleri kabul edebilen bir uç nokta oluşturarak mantıksal uygulamanızı çağırılabilir hale getirir. Bu tetikleyici için, tetikleyicinin gelen istekten aldığı yükü veya girişleri açıklayan ve doğrulayan bir JSON şeması sağlayın. Şema ayrıca iş akışındaki sonraki eylemlerden tetikleyici özelliklerine başvurmayı kolaylaştırır.
Bu tetikleyiciyi listCallbackUrl
çağırmak için İş Akışı Hizmeti REST API'sinde açıklanan API'yi kullanmanız gerekir. Bu tetikleyicinin HTTP uç noktası olarak nasıl kullanılacağını öğrenmek için bkz . HTTP uç noktalarıyla iş akışlarını çağırma, tetikleme veya iç içe yerleştirme.
"manual": {
"type": "Request",
"kind": "Http",
"inputs": {
"method": "<method-type>",
"relativePath": "<relative-path-for-accepted-parameter>",
"schema": {
"type": "object",
"properties": {
"<property-name>": {
"type": "<property-type>"
}
},
"required": [ "<required-properties>" ]
}
},
"runTimeConfiguration": {
"concurrency": {
"runs": <max-runs>,
"maximumWaitingRuns": <max-run-queue>
},
},
"operationOptions": "<operation-option>"
}
Required
Değer | Type | Açıklama |
---|---|---|
<özellik-adı> | String | Yükü açıklayan JSON şemasındaki bir özelliğin adı |
<özellik türü> | String | Özelliğin türü |
Optional
Değer | Type | Açıklama |
---|---|---|
<yöntem türü> | String | Gelen isteklerin mantıksal uygulamanızı çağırmak için kullanması gereken yöntem: "GET", "PUT", "POST", "PATCH", "DELETE" |
<relative-path-for-accepted-parameter> | String | Uç noktanızın URL'sinin kabul edebildiği parametrenin göreli yolu |
<gerekli özellikler> | Dizi | Değer gerektiren bir veya daha fazla özellik |
<maksimum çalıştırmalar> | Tamsayı | Varsayılan olarak, iş akışı örneklerinin tümü varsayılan sınıra kadar aynı anda (eşzamanlı veya paralel) çalışır. Yeni <bir sayı> değeri ayarlayarak bu sınırı değiştirmek için bkz. Tetikleyici eşzamanlılığını değiştirme. |
<max-runs-queue> | Tamsayı | İş akışınız zaten özellik temelinde runtimeConfiguration.concurrency.runs değiştirebileceğiniz en fazla örnek sayısını çalıştırıyorsa, yeni çalıştırmalar varsayılan sınıra kadar bu kuyruğa alınır. Varsayılan sınırı değiştirmek için bkz . Bekleyen çalıştırma sınırını değiştirme. |
<operation-option> | String | Özelliğini ayarlayarak operationOptions varsayılan davranışı değiştirebilirsiniz. Daha fazla bilgi için bkz . İşlem seçenekleri. |
Örnek
Bu tetikleyici, gelen bir isteğin tetikleyiciyi çağırmak için HTTP POST yöntemini kullanması gerektiğini belirtir ve gelen istekten gelen girişi doğrulayan bir şema içerir:
"manual": {
"type": "Request",
"kind": "Http",
"inputs": {
"method": "POST",
"schema": {
"type": "object",
"properties": {
"customerName": {
"type": "String"
},
"customerAddress": {
"type": "Object",
"properties": {
"streetAddress": {
"type": "string"
},
"city": {
"type": "string"
}
}
}
}
}
}
}
Tetikleme koşulları
Tüm tetikleyiciler ve yalnızca tetikleyiciler için, iş akışının çalıştırılıp çalıştırılmayacağını belirleyen koşullar için bir veya daha fazla ifade içeren bir dizi ekleyebilirsiniz. özelliğini iş akışınızdaki bir tetikleyiciye eklemek conditions
için mantıksal uygulamanızı kod görünümü düzenleyicisinde açın.
Örneğin, tetikleyicinin yalnızca bir web sitesi iç sunucu hatası döndürdüğünde tetikleyicinin özellikteki conditions
durum koduna başvurarak tetikleneceğini belirtebilirsiniz:
"Recurrence": {
"type": "Recurrence",
"recurrence": {
"frequency": "Hour",
"interval": 1
},
"conditions": [ {
"expression": "@equals(triggers().code, 'InternalServerError')"
} ]
}
Varsayılan olarak, tetikleyici yalnızca "200 Tamam" yanıtı aldıktan sonra tetikler. İfade bir tetikleyicinin durum koduna başvurduğunda tetikleyicinin varsayılan davranışı değiştirilir. Bu nedenle, tetikleyicinin "200" ve "201" durum kodu gibi birden fazla durum kodu için tetiklemesini istiyorsanız, koşulunuz olarak bu ifadeyi eklemeniz gerekir:
@or(equals(triggers().code, 200),equals(triggers().code, 201))
Dizide birden çok çalıştırma tetikleme
Tetikleyiciniz iş akışınızın işlemesi için bir dizi alırsa, bazen "her bir için" döngüsünün her dizi öğesini işlemesi çok uzun sürebilir. Bunun yerine tetikleyicinizdeki SplitOn özelliğini kullanarak dizinin eşleşmesini kaldırabilirsiniz. Kaldırıldığında dizi öğeleri bölünür ve her dizi öğesi için çalışan yeni bir iş akışı örneği başlatılır. Bu yaklaşım, örneğin yoklama aralıkları arasında birden çok yeni öğe döndürebilecek bir uç noktayı yoklamak istediğinizde kullanışlıdır.
Tetikleyicinizin Swagger dosyası bir dizi olan yükü açıklıyorsa, SplitOn özelliği tetikleyicinize otomatik olarak eklenir. Aksi takdirde, bu özelliği, eşleşmesini çözmek istediğiniz diziye sahip yanıt yükünün içine ekleyin.
SplitOn özelliğini kullanmadan önce aşağıdaki noktaları gözden geçirin:
Tetikleyici eşzamanlılığı etkinleştirilirse SplitOn sınırı önemli ölçüde azalır. Öğe sayısı bu sınırı aşarsa SplitOn özelliği devre dışı bırakılır.
SplitOn özelliğini zaman uyumlu yanıt düzeniyle kullanamazsınız. SplitOn özelliğini kullanan ve yanıt eylemi içeren tüm iş akışları zaman uyumsuz olarak çalıştırılır ve hemen bir
202 ACCEPTED
yanıt gönderir.SplitOn'un tek bir iş akışı çalıştırmasında işleyebileceği en fazla dizi öğesi sayısı için bkz. Sınırlar ve yapılandırma.
Örnek
API çağıran ve bu yanıtı alan bir HTTP tetikleyiciniz olduğunu varsayalım:
{
"Status": "Succeeded",
"Rows": [
{
"id": 938109380,
"name": "customer-name-one"
},
{
"id": 938109381,
"name": "customer-name-two"
}
]
}
İş akışınız yalnızca dizinindeki Rows
içeriğe ihtiyaç duyar, bu nedenle aşağıdaki örneğe benzer bir tetikleyici oluşturabilirsiniz:
"HTTP_Debatch": {
"type": "Http",
"inputs": {
"uri": "https://mydomain.com/myAPI",
"method": "GET"
},
"recurrence": {
"frequency": "Second",
"interval": 1
},
"splitOn": "@triggerBody()?.Rows"
}
Not
komutunu kullanırsanız SplitOn
, dizinin dışındaki özellikleri alamazsınız.
Bu nedenle bu örnekte API'den döndürülen yanıtta özelliğini alamazsınız status
.
Özellik yoksa hata oluşmasını Rows
önlemek için bu örnekte işleci kullanılır ?
.
İş akışı tanımınız artık ilk çalıştırmadan "customer-name-one"
name
ve "customer-name-two"
ikinci çalıştırmadan değerleri almak için kullanabilir@triggerBody().name
. Dolayısıyla tetikleyici çıkışlarınız şu örneklere benzer:
{
"body": {
"id": 938109380,
"name": "customer-name-one"
}
}
{
"body": {
"id": 938109381,
"name": "customer-name-two"
}
}
Eylemlere genel bakış
Azure Logic Apps, her biri eylemin benzersiz davranışını tanımlayan farklı girişlere sahip çeşitli eylem türleri sağlar. Eylemler şu üst düzey öğelere sahiptir, ancak bazıları isteğe bağlıdır:
"<action-name>": {
"type": "<action-type>",
"inputs": {
"<input-name>": { "<input-value>" },
"retryPolicy": "<retry-behavior>"
},
"runAfter": { "<previous-trigger-or-action-status>" },
"runtimeConfiguration": { "<runtime-config-options>" },
"operationOptions": "<operation-option>"
},
Required
Değer | Type | Açıklama |
---|---|---|
<eylem-adı> | String | Eylemin adı |
<eylem türü> | String | Eylem türü, örneğin, "Http" veya "Api Bağlan ion" |
<input-name> | String | Eylemin davranışını tanımlayan girişin adı |
<input-value> | Çeşitli | Dize, tamsayı, JSON nesnesi vb. olabilecek giriş değeri |
<previous-trigger-or-action-status> | JSON Nesnesi | Bu geçerli eylemin çalıştırılabilmesi için hemen çalışması gereken tetikleyici veya eylemin adı ve sonuç durumu |
Optional
Değer | Type | Açıklama |
---|---|---|
<yeniden deneme davranışı> | JSON Nesnesi | 408, 429 ve 5XX durum koduna ve tüm bağlantı özel durumlarına sahip aralıklı hatalar için yeniden deneme davranışını özelleştirir. Daha fazla bilgi için bkz. İlkeleri yeniden deneme. |
<runtime-config-options> | JSON Nesnesi | Bazı eylemler için, özellikleri ayarlayarak runtimeConfiguration eylemin çalışma zamanındaki davranışını değiştirebilirsiniz. Daha fazla bilgi için bkz . Çalışma zamanı yapılandırma ayarları. |
<operation-option> | String | Bazı eylemler için, özelliğini ayarlayarak operationOptions varsayılan davranışı değiştirebilirsiniz. Daha fazla bilgi için bkz . İşlem seçenekleri. |
Eylem türleri listesi
Yaygın olarak kullanılan bazı eylem türleri şunlardır:
Bu örnekler ve daha fazlası gibi yerleşik eylem türleri :
HTTP veya HTTPS üzerinden uç noktaları çağırmak için HTTP
İstekleri yanıtlama yanıtı
JavaScript kod parçacıklarını çalıştırmak için JavaScript Kodu yürütme
Birleştirme, Oluşturma, Tablo, Seçme gibi veri işlemi eylemleri ve çeşitli girişlerden veri oluşturan veya dönüştüren diğer eylemler
Başka bir mantıksal uygulama iş akışını çağırmak için iş akışı
Azure Service Bus, Office 365 Outlook, Power BI, Azure Blob Depolama, OneDrive, GitHub ve daha fazlası gibi Microsoft tarafından yönetilen çeşitli bağlayıcıları ve API'leri çağıran Api Bağlan ion ve Api Bağlan ionWebHook gibi yönetilen API eylem türleri
Başka eylemler içeren ve iş akışı yürütmeyi düzenlemenize yardımcı olan If, Foreach, Switch, Scope ve Until gibi iş akışı eylem türlerini denetleme
Yerleşik eylem
Eylem türü | Açıklama |
---|---|
Compose | Çeşitli türlerde olabilecek girişlerden tek bir çıkış oluşturur. |
JavaScript Kodu Yürütme | Belirli ölçütlere uyan JavaScript kod parçacıklarını çalıştırın. Kod gereksinimleri ve daha fazla bilgi için bkz . Satır içi kodla kod parçacıkları ekleme ve çalıştırma. |
İşlev | Bir Azure İşlevi çağırır. |
HTTP | HTTP uç noktasını çağırır. |
Join | Bir dizideki tüm öğelerden bir dize oluşturur ve bu öğeleri belirtilen sınırlayıcı karakteriyle ayırır. |
JSON Ayrıştırma | JSON içeriğindeki özelliklerden kullanıcı dostu belirteçler oluşturur. Ardından mantıksal uygulamanıza belirteçleri ekleyerek bu özelliklere başvurabilirsiniz. |
Sorgu | Bir koşula veya filtreye göre başka bir dizideki öğelerden dizi oluşturur. |
Response | Gelen bir çağrıya veya isteğe yanıt oluşturur. |
Seç | Belirtilen eşlemeyi temel alarak başka bir dizideki öğeleri dönüştürerek JSON nesneleriyle bir dizi oluşturur. |
Table | Diziden CSV veya HTML tablosu oluşturur. |
Terminate | Etkin olarak çalışan bir iş akışını durdurur. |
Wait | İş akışınızı belirtilen süre boyunca veya belirtilen tarih ve saate kadar duraklatır. |
Workflow | Bir iş akışını başka bir iş akışının içine iç içe yuvalar. |
Yönetilen API eylemleri
Eylem türü | Açıklama |
---|---|
ApiConnection | Microsoft tarafından yönetilen BIR API kullanarak bir HTTP uç noktasını çağırır. |
Api Bağlan ionWebhook | HTTP Web Kancası gibi çalışır ancak Microsoft tarafından yönetilen bir API kullanır. |
İş akışı eylemlerini denetleme
Bu eylemler, iş akışı yürütmeyi denetlemenize ve diğer eylemleri eklemenize yardımcı olur. Bir denetim iş akışı eyleminin dışından, bu denetim iş akışı eyleminin içindeki eylemlere doğrudan başvurabilirsiniz. Örneğin, kapsamın içinde bir Http
eyleminiz varsa, ifadeye iş akışının @body('Http')
herhangi bir yerinden başvurabilirsiniz. Ancak, bir denetim iş akışı eylemi içinde var olan eylemler yalnızca aynı denetim iş akışı yapısındaki diğer eylemlerden sonra "çalıştırılabilir".
Eylem türü | Açıklama |
---|---|
ForEach | Dizideki her öğe için döngüde aynı eylemleri çalıştırın. |
If | Belirtilen koşulun true veya false olup olmadığına bağlı olarak eylemleri çalıştırın. |
Scope | Bir dizi eylemden grup durumuna göre eylemleri çalıştırın. |
Switch | İfadelerden, nesnelerden veya belirteçlerden gelen değerlerin her büyük/küçük harf tarafından belirtilen değerlerle eşleşmesi durumlarına göre düzenlenmiş eylemleri çalıştırın. |
Kadar | Belirtilen koşul doğru olana kadar eylemleri döngüde çalıştırın. |
Eylemler - Ayrıntılı başvuru
API Bağlan ion eylemi
Bu eylem, Microsoft tarafından yönetilen bir API'ye bir HTTP isteği gönderir ve API ve parametreler hakkında bilgi ile geçerli bir bağlantıya başvuru gerektirir.
"<action-name>": {
"type": "ApiConnection",
"inputs": {
"host": {
"connection": {
"name": "@parameters('$connections')['<api-name>']['connectionId']"
},
"<other-action-specific-input-properties>"
},
"method": "<method-type>",
"path": "/<api-operation>",
"retryPolicy": "<retry-behavior>",
"queries": { "<query-parameters>" },
"<other-action-specific-properties>"
},
"runAfter": {}
}
Required
Değer | Type | Açıklama |
---|---|---|
<eylem-adı> | String | Bağlayıcı tarafından sağlanan eylemin adı |
<api-name> | String | Bağlantı için kullanılan Microsoft tarafından yönetilen API'nin adı |
<yöntem türü> | String | API'yi çağırmak için HTTP yöntemi: "GET", "PUT", "POST", "PATCH" veya "DELETE" |
<api-operation> | String | Çağrılacak API işlemi |
Optional
Değer | Type | Açıklama |
---|---|---|
<diğer eyleme özgü giriş-özellikleri> | JSON Nesnesi | Bu belirli eyleme uygulanan diğer giriş özellikleri |
<yeniden deneme davranışı> | JSON Nesnesi | 408, 429 ve 5XX durum koduna ve tüm bağlantı özel durumlarına sahip aralıklı hatalar için yeniden deneme davranışını özelleştirir. Daha fazla bilgi için bkz . İlkeleri yeniden deneme. |
<sorgu parametreleri> | JSON Nesnesi | API çağrısına eklenecek tüm sorgu parametreleri. Örneğin, "queries": { "api-version": "2018-01-01" } nesnesi çağrısına ekler ?api-version=2018-01-01 . |
<diğer eyleme özgü özellikler> | JSON Nesnesi | Bu belirli eyleme uygulanan diğer tüm özellikler |
Örnek
Bu tanım, Microsoft tarafından yönetilen bir API olan Office 365 Outlook bağlayıcısı için e-posta gönder eylemini açıklar:
"Send_an_email": {
"type": "ApiConnection",
"inputs": {
"body": {
"Body": "Thank you for your membership!",
"Subject": "Hello and welcome!",
"To": "Sophie.Owen@contoso.com"
},
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "POST",
"path": "/Mail"
},
"runAfter": {}
}
API Bağlan ionWebhook eylemi
Bu eylem, Microsoft tarafından yönetilen bir API kullanarak HTTP üzerinden uç noktaya bir abonelik isteği gönderir, uç noktanın yanıt gönderebileceği bir geri çağırma URL'si sağlar ve uç noktanın yanıt vermesini bekler. Daha fazla bilgi için bkz . Uç nokta abonelikleri.
"<action-name>": {
"type": "ApiConnectionWebhook",
"inputs": {
"subscribe": {
"method": "<method-type>",
"uri": "<api-subscribe-URL>",
"headers": { "<header-content>" },
"body": "<body-content>",
"authentication": { "<authentication-type>" },
"retryPolicy": "<retry-behavior>",
"queries": { "<query-parameters>" },
"<other-action-specific-input-properties>"
},
"unsubscribe": {
"method": "<method-type>",
"uri": "<api-unsubscribe-URL>",
"headers": { "<header-content>" },
"body": "<body-content>",
"authentication": { "<authentication-type>" },
"<other-action-specific-properties>"
},
},
"runAfter": {}
}
Yöntem türü> gibi <bazı değerler hem hem "unsubscribe"
de "subscribe"
nesneleri için kullanılabilir.
Required
Değer | Type | Açıklama |
---|---|---|
<eylem-adı> | String | Bağlayıcı tarafından sağlanan eylemin adı |
<yöntem türü> | String | Uç noktadan abone olmak veya abonelikten çıkmak için kullanılacak HTTP yöntemi: "GET", "PUT", "POST", "PATCH" veya "DELETE" |
<api-subscribe-URL> | String | API'ye abone olmak için kullanılacak URI |
Optional
Değer | Type | Açıklama |
---|---|---|
<api-unsubscribe-URL> | String | API'den abonelikten çıkmak için kullanılacak URI |
<üst bilgi içeriği> | JSON Nesnesi | İstekte gönderilecek tüm üst bilgiler Örneğin, bir isteğin dilini ve türünü ayarlamak için: "headers": { "Accept-Language": "en-us", "Content-Type": "application/json" } |
<gövde içeriği> | JSON Nesnesi | İstekte gönderilecek tüm ileti içeriği |
<kimlik doğrulama türü> | JSON Nesnesi | İsteğin giden isteklerin kimliğini doğrulamak için kullandığı kimlik doğrulama modeli. Daha fazla bilgi için bkz . Giden çağrılara kimlik doğrulaması ekleme. |
<yeniden deneme davranışı> | JSON Nesnesi | 408, 429 ve 5XX durum koduna ve tüm bağlantı özel durumlarına sahip aralıklı hatalar için yeniden deneme davranışını özelleştirir. Daha fazla bilgi için bkz . İlkeleri yeniden deneme. |
<sorgu parametreleri> | JSON Nesnesi | API çağrısına eklenecek tüm sorgu parametreleri Örneğin, "queries": { "api-version": "2018-01-01" } nesnesi çağrısına ekler ?api-version=2018-01-01 . |
<diğer eyleme özgü giriş-özellikleri> | JSON Nesnesi | Bu belirli eyleme uygulanan diğer giriş özellikleri |
<diğer eyleme özgü özellikler> | JSON Nesnesi | Bu belirli eyleme uygulanan diğer tüm özellikler |
Api Bağlan ionWebhook eyleminde sınırları HTTP zaman uyumsuz sınırlarıyla aynı şekilde de belirtebilirsiniz.
Eylem oluştur
Bu eylem, ifadeler de dahil olmak üzere birden çok girişten tek bir çıkış oluşturur. Hem çıktı hem de girişler, Azure Logic Apps'in yerel olarak desteklediği diziler, JSON nesneleri, XML ve ikili gibi herhangi bir türe sahip olabilir. Ardından eylemin çıkışını diğer eylemlerde kullanabilirsiniz.
"Compose": {
"type": "Compose",
"inputs": "<inputs-to-compose>",
"runAfter": {}
},
Required
Değer | Type | Açıklama |
---|---|---|
<girişler-oluşturma> | Tümü | Tek çıkış oluşturmaya yönelik girişler |
Örnek 1
Bu eylem tanımı, sonunda bir boşluk ve değeriyle 1234
birleştirilirabcdefg
:
"Compose": {
"type": "Compose",
"inputs": "abcdefg 1234",
"runAfter": {}
},
Bu eylemin oluşturduğu çıkış aşağıdadır:
abcdefg 1234
Örnek 2
Bu eylem tanımı, içeren abcdefg
dize değişkenlerini ve içeren 1234
bir tamsayı değişkenlerini birleştirir:
"Compose": {
"type": "Compose",
"inputs": "@{variables('myString')}@{variables('myInteger')}",
"runAfter": {}
},
Bu eylemin oluşturduğu çıkış aşağıdadır:
"abcdefg1234"
JavaScript Kodu Yürütme eylemi
Bu eylem bir JavaScript kod parçacığı çalıştırır ve sonuçları iş akışındaki sonraki eylemlerin başvurabileceği bir belirteç aracılığıyla döndürür.
"Execute_JavaScript_Code": {
"type": "JavaScriptCode",
"inputs": {
"code": "<JavaScript-code-snippet>",
"explicitDependencies": {
"actions": [ <preceding-actions> ],
"includeTrigger": true
}
},
"runAfter": {}
}
Required
Değer | Type | Açıklama |
---|---|---|
<JavaScript-code-snippet> | Değişir | Çalıştırmak istediğiniz JavaScript kodu. Kod gereksinimleri ve daha fazla bilgi için bkz . İş akışlarında kod parçacıkları çalıştırma. özniteliğinde code kod parçacığınız salt okunur workflowContext nesnesini giriş olarak kullanabilir. Bu nesne, kodunuza tetikleyiciden ve iş akışınızdaki önceki eylemlerden gelen çıkışlara erişim sağlayan alt özelliklere sahiptir. Nesne hakkında workflowContext daha fazla bilgi için bkz . workflowContext nesnesini kullanarak tetikleyiciye ve eylem sonuçlarına başvurma. |
Bazı durumlarda gereklidir
explicitDependencies
özniteliği tetikleyicinin sonuçlarını, önceki eylemleri veya her ikisini de kod parçacığınız için bağımlılık olarak açıkça eklemek istediğinizi belirtir. Bu bağımlılıkları ekleme hakkında daha fazla bilgi için bkz . Satır içi Koda parametre olarak bağımlılık ekleme eylemi.
özniteliği için includeTrigger
veya false
değerlerini belirtebilirsiniztrue
.
Değer | Type | Açıklama |
---|---|---|
<önceki eylemler> | Dize dizisi | Bağımlılık olarak JSON biçiminde eylem adlarını içeren bir dizi. İş akışı tanımınızda görünen eylem adlarını kullandığınızdan emin olun; burada eylem adları boşluk (" ") değil alt çizgi (_) kullanır. |
Örnek 1
Bu eylem, mantıksal uygulama iş akışınızın adını alan ve sonuç olarak "Logic-app-name'den <>Merhaba dünya" metnini döndüren kodu çalıştırır. Bu örnekte kod, özelliğine salt workflowContext
okunur nesnesi aracılığıyla erişerek workflowContext.workflow.name
iş akışının adına başvurur. Nesnesini kullanma workflowContext
hakkında daha fazla bilgi için bkz . Kodunuzda başvuru tetikleyicisi ve eylem sonuçları.
"Execute_JavaScript_Code": {
"type": "JavaScriptCode",
"inputs": {
"code": "var text = \"Hello world from \" + workflowContext.workflow.name;\r\n\r\nreturn text;"
},
"runAfter": {}
}
Örnek 2
Bu eylem, kodu outlook hesabına yeni bir e-posta geldiğinde tetikleyen bir mantıksal uygulama iş akışında çalıştırır. İş akışı, alınan e-postadaki içeriği bir onay isteğiyle birlikte ileten Office 365 Outlook Onay e-postası gönder eylemini de kullanır.
Kod, e-posta iletisinin Body
özelliğinden e-posta adreslerini ayıklar ve onay eylemindeki SelectedOption
özellik değeriyle birlikte adresleri döndürür. Eylem, nesnenin içindeki nesnede actions
bağımlılık olarak Onay e-postası gönder eylemini explicitDependencies
açıkça içerir.
"Execute_JavaScript_Code": {
"type": "JavaScriptCode",
"inputs": {
"code": "var myResult = /(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/g;\r\n\r\nvar email = workflowContext.trigger.outputs.body.Body;\r\n\r\nvar reply = workflowContext.actions.Send_approval_email.outputs.body.SelectedOption;\r\n\r\nreturn email.match(myResult) + \" - \" + reply;\r\n;",
"explicitDependencies": {
"actions": [
"Send_approval_email"
]
}
},
"runAfter": {}
}
İşlev eylemi
Bu eylem, daha önce oluşturulmuş bir Azure işlevini çağırır.
"<Azure-function-name>": {
"type": "Function",
"inputs": {
"function": {
"id": "<Azure-function-ID>"
},
"method": "<method-type>",
"headers": { "<header-content>" },
"body": { "<body-content>" },
"queries": { "<query-parameters>" }
},
"runAfter": {}
}
Required
Değer | Type | Açıklama |
---|---|---|
<Azure-function-ID> | String | Çağırmak istediğiniz Azure işlevinin kaynak kimliği. Bu değerin biçimi aşağıdadır: "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group>/providers/Microsoft.Web/sites/<Azure-function-app-name>/functions/<Azure-function-name>" |
<yöntem türü> | String | İşlevi çağırmak için kullanılacak HTTP yöntemi: "GET", "PUT", "POST", "PATCH" veya "DELETE" Belirtilmezse, varsayılan "POST" yöntemidir. |
Optional
Değer | Type | Açıklama |
---|---|---|
<üst bilgi içeriği> | JSON Nesnesi | Aramayla gönderilecek tüm üst bilgiler Örneğin, bir isteğin dilini ve türünü ayarlamak için: "headers": { "Accept-Language": "en-us", "Content-Type": "application/json" } |
<gövde içeriği> | JSON Nesnesi | İstekte gönderilecek tüm ileti içeriği |
<sorgu parametreleri> | JSON Nesnesi | API çağrısına eklenecek tüm sorgu parametreleri Örneğin, "queries": { "api-version": "2018-01-01" } nesnesi çağrısına ekler ?api-version=2018-01-01 . |
<diğer eyleme özgü giriş-özellikleri> | JSON Nesnesi | Bu belirli eyleme uygulanan diğer giriş özellikleri |
<diğer eyleme özgü özellikler> | JSON Nesnesi | Bu belirli eyleme uygulanan diğer tüm özellikler |
Mantıksal uygulamanızı kaydettiğinizde, Azure Logic Apps başvuruda bulunan işlevde şu denetimleri gerçekleştirir:
İş akışınızın işleve erişimi olmalıdır.
İş akışınız yalnızca standart bir HTTP tetikleyicisi veya genel bir JSON web kancası tetikleyicisi kullanabilir.
Azure Logic Apps, tetikleyicinin çalışma zamanında kullanılan URL'sini alır ve önbelleğe alır. Ancak, herhangi bir işlem önbelleğe alınan URL'yi geçersiz kılırsa, İşlev eylemi çalışma zamanında başarısız olur. Bu sorunu düzeltmek için mantıksal uygulamayı yeniden kaydedin, böylece mantıksal uygulama tetikleyici URL'sini yeniden alır ve önbelleğe alır.
İşlevde tanımlı yol olamaz.
Yalnızca "işlev" ve "anonim" yetkilendirme düzeylerine izin verilir.
Örnek
Bu eylem tanımı, daha önce oluşturulan "GetProductID" işlevini çağırır:
"GetProductID": {
"type": "Function",
"inputs": {
"function": {
"id": "/subscriptions/<XXXXXXXXXXXXXXXXXXXX>/resourceGroups/myLogicAppResourceGroup/providers/Microsoft.Web/sites/InventoryChecker/functions/GetProductID"
},
"method": "POST",
"headers": {
"x-ms-date": "@utcnow()"
},
"body": {
"Product_ID": "@variables('ProductID')"
}
},
"runAfter": {}
}
HTTP eylemi
Bu eylem, belirtilen HTTP veya HTTPS uç noktasına bir istek gönderir ve iş akışının çalışıp çalışmadığını belirlemek için yanıtı denetler. Daha fazla bilgi için bkz . Azure Logic Apps'ten HTTP veya HTTPS üzerinden hizmet uç noktalarını çağırma.
"HTTP": {
"type": "Http",
"inputs": {
"method": "<method-type>",
"uri": "<HTTP-or-HTTPS-endpoint-URL>",
"headers": { "<header-content>" },
"queries": { "<query-parameters>" },
"body": "<body-content>",
"authentication": { "<authentication-type-and-property-values>" },
"retryPolicy": {
"type": "<retry-behavior>"
},
},
"runAfter": {}
}
Required
Özellik | Değer | Type | Açıklama |
---|---|---|---|
method |
<yöntem türü> | String | Giden isteği göndermek için kullanılacak yöntem: "GET", "PUT", "POST", "PATCH" veya "DELETE" |
uri |
<HTTP-veya-HTTPS-endpoint-URL> | String | Giden isteği göndermek istediğiniz HTTP veya HTTPS uç nokta URL'si. En büyük dize boyutu: 2 KB Bir Azure hizmeti veya kaynağı için bu URI söz dizimi kaynak kimliğini ve erişmek istediğiniz kaynağın yolunu içerir. |
Optional
Özellik | Değer | Type | Açıklama |
---|---|---|---|
headers |
<üst bilgi içeriği> | JSON Nesnesi | İstekle birlikte eklemeniz gereken tüm üst bilgiler Örneğin, dili ayarlamak ve yazmak için: "headers": { "Accept-Language": "en-us", "Content-Type": "application/json" } |
queries |
<sorgu parametreleri> | JSON Nesnesi | İstekte kullanmanız gereken tüm sorgu parametreleri Örneğin, "queries": { "api-version": "2018-01-01" } nesnesi çağrısına ekler ?api-version=2018-01-01 . |
body |
<gövde içeriği> | JSON Nesnesi | İstekle yük olarak gönderilecek ileti içeriği |
authentication |
<kimlik doğrulama türü ve özellik-değerleri> | JSON Nesnesi | İsteğin giden isteklerin kimliğini doğrulamak için kullandığı kimlik doğrulama modeli. Daha fazla bilgi için bkz . Giden çağrılara kimlik doğrulaması ekleme. Scheduler'ın authority ötesinde özelliği desteklenir. Belirtilmediğinde varsayılan değer olur https://management.azure.com/ , ancak farklı bir değer kullanabilirsiniz. |
retryPolicy > type |
<yeniden deneme davranışı> | JSON Nesnesi | 408, 429 ve 5XX durum koduna ve tüm bağlantı özel durumlarına sahip aralıklı hatalar için yeniden deneme davranışını özelleştirir. Daha fazla bilgi için bkz . İlkeleri yeniden deneme. |
<diğer eyleme özgü giriş-özellikleri> | <input-property> | JSON Nesnesi | Bu belirli eyleme uygulanan diğer giriş özellikleri |
<diğer eyleme özgü özellikler> | <özellik-değer> | JSON Nesnesi | Bu belirli eyleme uygulanan diğer tüm özellikler |
Örnek
Bu eylem tanımı, belirtilen uç noktaya bir istek göndererek en son haberleri alır:
"HTTP": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "https://mynews.example.com/latest"
}
}
Birleştir eylemi
Bu eylem, bir dizideki tüm öğelerden bir dize oluşturur ve bu öğeleri belirtilen sınırlayıcı karakteriyle ayırır.
"Join": {
"type": "Join",
"inputs": {
"from": <array>,
"joinWith": "<delimiter>"
},
"runAfter": {}
}
Required
Değer | Type | Açıklama |
---|---|---|
<Dizi> | Dizi | Kaynak öğeleri sağlayan dizi veya ifade. Bir ifade belirtirseniz, bu ifadeyi çift tırnak içine alın. |
<Sınırlayıcı> | Tek karakterli dize | Dizedeki her öğeyi ayıran karakter |
Örnek
Daha önce bu tamsayı diziyi içeren bir "myIntegerArray" değişkeni oluşturduğunuzu varsayalım:
[1,2,3,4]
Bu eylem tanımı, ifadedeki işlevini kullanarak variables()
değişkendeki değerleri alır ve bu dizeyi virgülle ayrılmış değerlerle oluşturur: "1,2,3,4"
"Join": {
"type": "Join",
"inputs": {
"from": "@variables('myIntegerArray')",
"joinWith": ","
},
"runAfter": {}
}
JSON ayrıştır eylemi
Bu eylem, JSON içeriğindeki özelliklerden kullanıcı dostu alanlar veya belirteçler oluşturur. Bunun yerine belirteçleri kullanarak mantıksal uygulamanızda bu özelliklere erişebilirsiniz. Örneğin, Azure Service Bus ve Azure Cosmos DB gibi hizmetlerden gelen JSON çıkışını kullanmak istediğinizde, bu eylemi mantıksal uygulamanıza ekleyebilirsiniz, böylece bu çıktıdaki verilere daha kolay başvurabilirsiniz.
"Parse_JSON": {
"type": "ParseJson",
"inputs": {
"content": "<JSON-source>",
"schema": { "<JSON-schema>" }
},
"runAfter": {}
},
Required
Değer | Type | Açıklama |
---|---|---|
<JSON kaynağı> | JSON Nesnesi | Ayrıştırmak istediğiniz JSON içeriği |
<JSON şeması> | JSON Nesnesi | Eylemin kaynak JSON içeriğini ayrıştırma için kullandığı temel JSON içeriğini açıklayan JSON şeması. İpucu: İş akışı tasarımcısında, eylemin şemayı oluşturabilmesi için şemayı sağlayabilir veya örnek bir yük sağlayabilirsiniz. |
Örnek
Bu eylem tanımı, iş akışınızda kullanabileceğiniz ancak yalnızca JSON Ayrıştır eylemini izleyen eylemlerde kullanabileceğiniz bu belirteçleri oluşturur:
FirstName
, LastName
ve Email
"Parse_JSON": {
"type": "ParseJson",
"inputs": {
"content": {
"Member": {
"Email": "Sophie.Owen@contoso.com",
"FirstName": "Sophie",
"LastName": "Owen"
}
},
"schema": {
"type": "object",
"properties": {
"Member": {
"type": "object",
"properties": {
"Email": {
"type": "string"
},
"FirstName": {
"type": "string"
},
"LastName": {
"type": "string"
}
}
}
}
}
},
"runAfter": { }
},
Bu örnekte, "content" özelliği ayrıştırma eyleminin JSON içeriğini belirtir. Bu JSON içeriğini şemayı oluşturmak için örnek yük olarak da sağlayabilirsiniz.
"content": {
"Member": {
"FirstName": "Sophie",
"LastName": "Owen",
"Email": "Sophie.Owen@contoso.com"
}
},
"schema" özelliği, JSON içeriğini tanımlamak için kullanılan JSON şemasını belirtir:
"schema": {
"type": "object",
"properties": {
"Member": {
"type": "object",
"properties": {
"FirstName": {
"type": "string"
},
"LastName": {
"type": "string"
},
"Email": {
"type": "string"
}
}
}
}
}
Sorgu eylemi
Bu eylem, belirtilen bir koşula veya filtreye göre başka bir dizideki öğelerden bir dizi oluşturur.
"Filter_array": {
"type": "Query",
"inputs": {
"from": <array>,
"where": "<condition-or-filter>"
},
"runAfter": {}
}
Required
Değer | Type | Açıklama |
---|---|---|
<Dizi> | Dizi | Kaynak öğeleri sağlayan dizi veya ifade. Bir ifade belirtirseniz, bu ifadeyi çift tırnak içine alın. |
<koşul veya filtre> | String | Kaynak dizideki öğeleri filtrelemek için kullanılan koşul Not: Koşula uyan değer yoksa, eylem boş bir dizi oluşturur. |
Örnek
Bu eylem tanımı, belirtilen değerden daha büyük değerlere sahip bir dizi oluşturur; bu ikidir:
"Filter_array": {
"type": "Query",
"inputs": {
"from": [ 1, 3, 0, 5, 4, 2 ],
"where": "@greater(item(), 2)"
}
}
Response action
Bu eylem, bir HTTP isteğine yanıt için yük oluşturur.
"Response" {
"type": "Response",
"kind": "http",
"inputs": {
"statusCode": 200,
"headers": { <response-headers> },
"body": { <response-body> }
},
"runAfter": {}
},
Required
Değer | Type | Açıklama |
---|---|---|
<response-status-code> | Tamsayı | Gelen isteğe gönderilen HTTP durum kodu. Varsayılan kod "200 Tamam"dır, ancak kod 2xx, 4xx veya 5xx ile başlayan ancak 3xxx ile başlayan geçerli bir durum kodu olabilir. |
Optional
Değer | Type | Açıklama |
---|---|---|
<response-headers> | JSON Nesnesi | Yanıta eklenecek bir veya daha fazla üst bilgi |
<yanıt gövdesi> | Çeşitli | Bir dize, JSON nesnesi, hatta önceki bir eylemden ikili içerik olabilecek yanıt gövdesi |
Örnek
Bu eylem tanımı, belirtilen durum kodu, ileti gövdesi ve ileti üst bilgilerine sahip bir HTTP isteğine yanıt oluşturur:
"Response": {
"type": "Response",
"inputs": {
"statusCode": 200,
"body": {
"ProductID": 0,
"Description": "Organic Apples"
},
"headers": {
"x-ms-date": "@utcnow()",
"content-type": "application/json"
}
},
"runAfter": {}
}
Kısıtlamalar
Diğer eylemlerden farklı olarak, Yanıt eyleminin özel kısıtlamaları vardır:
İş akışınız Yanıt eylemini yalnızca iş akışı bir HTTP isteği tetikleyicisiyle başladığında kullanabilir; bu da iş akışınızın bir HTTP isteği tarafından tetiklenmiş olması gerektiği anlamına gelir.
İş akışınız, Sıralı döngüler ve paralel dallar dahil olmak üzere Foreach döngüleri, Until döngüleri dışında yanıt eylemini her yerde kullanabilir.
Özgün istek yalnızca Yanıt eyleminin gerektirdiği tüm eylemler HTTP zaman aşımı sınırı içinde tamamlandığında iş akışınızın yanıtını alır.
Ancak, iş akışınız başka bir mantıksal uygulamayı iç içe iş akışı olarak çağırırsa, iç içe iş akışı tamamlanmadan önce ne kadar zaman geçerse geçsin, üst iş akışı iç içe iş akışı bitene kadar bekler.
İş akışınız Yanıt eylemini ve zaman uyumlu yanıt desenini kullandığında, bu komut birden çok çalıştırma oluşturduğundan, iş akışı tetikleyici tanımında splitOn komutunu da kullanamaz. PUT yöntemi kullanıldığında bu durumu denetleyin ve doğruysa "hatalı istek" yanıtı döndür.
Aksi takdirde, iş akışınız splitOn komutunu ve Bir Yanıt eylemini kullanıyorsa, iş akışı zaman uyumsuz olarak çalışır ve hemen bir "202 KABUL EDİLEN" yanıtı döndürür.
İş akışınızın yürütmesi Yanıt eylemine ulaştığında ancak gelen istek zaten bir yanıt aldığında, çakışma nedeniyle Yanıt eylemi "Başarısız" olarak işaretlenir. Sonuç olarak mantıksal uygulama çalıştırmanız da "Başarısız" durumuyla işaretlenir.
Eylem seçin
Bu eylem, belirtilen eşlemeyi temel alarak başka bir dizideki öğeleri dönüştürerek JSON nesneleriyle bir dizi oluşturur. Çıkış dizisi ve kaynak dizi her zaman aynı sayıda öğeye sahiptir. Çıkış dizisindeki nesne sayısını değiştiremeseniz de, bu nesneler arasında özellikleri ve bunların değerlerini ekleyebilir veya kaldırabilirsiniz. özelliği, select
kaynak dizideki öğeleri dönüştürmek için eşlemeyi tanımlayan en az bir anahtar-değer çifti belirtir. Anahtar-değer çifti, çıkış dizisindeki tüm nesneler arasında bir özelliği ve değerini temsil eder.
"Select": {
"type": "Select",
"inputs": {
"from": <array>,
"select": {
"<key-name>": "<expression>",
"<key-name>": "<expression>"
}
},
"runAfter": {}
},
Required
Değer | Type | Açıklama |
---|---|---|
<Dizi> | Dizi | Kaynak öğeleri sağlayan dizi veya ifade. Bir ifadeyi çift tırnak içine aldığınızdan emin olun. Not: Kaynak dizi boşsa, eylem boş bir dizi oluşturur. |
<anahtar-adı> | String | İfadenin <sonucuna atanan özellik adı> Çıkış dizisindeki tüm nesnelere yeni bir özellik eklemek için, bu özellik için bir <anahtar-ad> ve özellik değeri için bir< ifade> sağlayın. Dizideki tüm nesnelerden bir özelliği kaldırmak için, o özelliğin <anahtar adını> atla. |
<Ifa -de> | String | Kaynak dizideki öğeyi dönüştüren ve sonucu <anahtar-ada atayan ifade> |
Select eylemi çıkış olarak bir dizi oluşturur, bu nedenle bu çıkışı kullanmak isteyen tüm eylemler bir diziyi kabul etmelidir veya diziyi tüketici eyleminin kabul eden türüne dönüştürmeniz gerekir. Örneğin, çıkış dizisini bir dizeye dönüştürmek için, bu diziyi Oluştur eylemine geçirebilir ve ardından diğer eylemlerinizde Oluştur eyleminin çıkışına başvurabilirsiniz.
Örnek
Bu eylem tanımı, bir tamsayı dizisinden bir JSON nesne dizisi oluşturur. Eylem kaynak dizide yinelenir, ifadeyi @item()
kullanarak her tamsayı değerini alır ve her değeri her JSON nesnesindeki "number
" özelliğine atar:
"Select": {
"type": "Select",
"inputs": {
"from": [ 1, 2, 3 ],
"select": {
"number": "@item()"
}
},
"runAfter": {}
},
Bu eylemin oluşturduğu dizi aşağıdadır:
[ { "number": 1 }, { "number": 2 }, { "number": 3 } ]
Bu dizi çıkışını diğer eylemlerde kullanmak için bu çıkışı Oluştur eylemine geçirin:
"Compose": {
"type": "Compose",
"inputs": "@body('Select')",
"runAfter": {
"Select": [ "Succeeded" ]
}
},
Ardından Oluştur eyleminin çıkışını diğer eylemlerinizde kullanabilirsiniz; örneğin, Office 365 Outlook - E-posta gönder eylemi:
"Send_an_email": {
"type": "ApiConnection",
"inputs": {
"body": {
"Body": "@{outputs('Compose')}",
"Subject": "Output array from Select and Compose actions",
"To": "<your-email@domain>"
},
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "post",
"path": "/Mail"
},
"runAfter": {
"Compose": [ "Succeeded" ]
}
},
Tablo eylemi
Bu eylem bir diziden CSV veya HTML tablosu oluşturur. JSON nesneleri olan diziler için, bu eylem nesnelerin özellik adlarından sütun üst bilgilerini otomatik olarak oluşturur. Diğer veri türlerine sahip diziler için sütun üst bilgilerini ve değerlerini belirtmeniz gerekir. Örneğin, bu dizi, bu eylemin sütun üst bilgisi adları için kullanabileceği "ID" ve "Product_Name" özelliklerini içerir:
[ {"ID": 0, "Product_Name": "Apples"}, {"ID": 1, "Product_Name": "Oranges"} ]
"Create_<CSV | HTML>_table": {
"type": "Table",
"inputs": {
"format": "<CSV | HTML>",
"from": <array>,
"columns": [
{
"header": "<column-name>",
"value": "<column-value>"
},
{
"header": "<column-name>",
"value": "<column-value>"
}
]
},
"runAfter": {}
}
Required
Değer | Type | Açıklama |
---|---|---|
<CSV veya HTML> | String | Oluşturmak istediğiniz tablonun biçimi |
<Dizi> | Dizi | Tablo için kaynak öğeleri sağlayan dizi veya ifade Not: Kaynak dizi boşsa, eylem boş bir tablo oluşturur. |
Optional
Sütun üst bilgilerini ve değerlerini belirtmek veya özelleştirmek için dizisini columns
kullanın. Çiftler aynı üst bilgi adına sahip olduğunda header-value
, değerleri bu üst bilgi adının altında aynı sütunda görünür. Aksi takdirde, her benzersiz üst bilgi benzersiz bir sütun tanımlar.
Değer | Type | Açıklama |
---|---|---|
<sütun-adı> | String | Sütunun üst bilgi adı |
<sütun-değer> | Tümü | Bu sütundaki değer |
Örnek 1
Şu anda şu diziyi içeren bir "myItemArray" değişkeni oluşturduğunuzu varsayalım:
[ {"ID": 0, "Product_Name": "Apples"}, {"ID": 1, "Product_Name": "Oranges"} ]
Bu eylem tanımı, "myItemArray" değişkeninden bir CSV tablosu oluşturur. özelliği tarafından from
kullanılan ifade, işlevini kullanarak variables()
diziyi "myItemArray" öğesinden alır:
"Create_CSV_table": {
"type": "Table",
"inputs": {
"format": "CSV",
"from": "@variables('myItemArray')"
},
"runAfter": {}
}
Bu eylemin oluşturduğu CSV tablosu aşağıdadır:
ID,Product_Name
0,Apples
1,Oranges
Örnek 2
Bu eylem tanımı, "myItemArray" değişkeninden bir HTML tablosu oluşturur. özelliği tarafından from
kullanılan ifade, işlevini kullanarak variables()
diziyi "myItemArray" öğesinden alır:
"Create_HTML_table": {
"type": "Table",
"inputs": {
"format": "HTML",
"from": "@variables('myItemArray')"
},
"runAfter": {}
}
Bu eylemin oluşturduğu HTML tablosu aşağıdadır:
Kimlik | Product_Name |
---|---|
0 | Elma |
1 | Portakal |
Örnek 3
Bu eylem tanımı, "myItemArray" değişkeninden bir HTML tablosu oluşturur. Ancak, bu örnek varsayılan sütun üst bilgisi adlarını "Stock_ID" ve "Açıklama" ile geçersiz kılar ve "Description" sütunundaki değerlere "Organik" sözcüğünü ekler.
"Create_HTML_table": {
"type": "Table",
"inputs": {
"format": "HTML",
"from": "@variables('myItemArray')",
"columns": [
{
"header": "Stock_ID",
"value": "@item().ID"
},
{
"header": "Description",
"value": "@concat('Organic ', item().Product_Name)"
}
]
},
"runAfter": {}
},
Bu eylemin oluşturduğu HTML tablosu aşağıdadır:
Stock_ID | Açıklama |
---|---|
0 | Organik Elmalar |
1 | Organik Portakallar |
Sonlandırma eylemi
Bu eylem bir iş akışı örneği için çalıştırmayı durdurur, devam eden eylemleri iptal eder, kalan eylemleri atlar ve belirtilen durumu döndürür. Örneğin, mantıksal uygulamanızın hata durumundan tamamen çıkması gerektiğinde Sonlandır eylemini kullanabilirsiniz. Bu eylem zaten tamamlanmış eylemleri etkilemez ve sıralı döngüler de dahil olmak üzere Foreach ve Until döngülerinin içinde görünmez.
"Terminate": {
"type": "Terminate",
"inputs": {
"runStatus": "<status>",
"runError": {
"code": "<error-code-or-name>",
"message": "<error-message>"
}
},
"runAfter": {}
}
Required
Değer | Type | Açıklama |
---|---|---|
<durum> | String | Çalıştırma için döndürülecek durum: "Başarısız", "İptal Edildi" veya "Başarılı" |
Optional
"runStatus" nesnesinin özellikleri yalnızca "runStatus" özelliği "Failed" durumuna ayarlandığında uygulanır.
Değer | Type | Açıklama |
---|---|---|
<error-code-or-name> | String | Hatanın kodu veya adı |
<hata iletisi> | String | Hatayı ve uygulamanın gerçekleştirebileceği eylemleri açıklayan ileti veya metin |
Örnek
Bu eylem tanımı bir iş akışı çalıştırmasını durdurur, çalıştırma durumunu "Başarısız" olarak ayarlar ve durumu, hata kodunu ve hata iletisini döndürür:
"Terminate": {
"type": "Terminate",
"inputs": {
"runStatus": "Failed",
"runError": {
"code": "Unexpected response",
"message": "The service received an unexpected response. Please try again."
}
},
"runAfter": {}
}
Bekleme eylemi
Bu eylem, iş akışı yürütmesini belirtilen aralık için veya belirtilen saate kadar duraklatır, ancak ikisini birden duraklatmaz.
Belirtilen aralık
"Delay": {
"type": "Wait",
"inputs": {
"interval": {
"count": <number-of-units>,
"unit": "<interval>"
}
},
"runAfter": {}
},
Belirtilen süre
"Delay_until": {
"type": "Wait",
"inputs": {
"until": {
"timestamp": "<date-time-stamp>"
}
},
"runAfter": {}
},
Required
Değer | Type | Açıklama |
---|---|---|
<birim sayısı> | Tamsayı | Gecikme eylemi için, bekliyecek birim sayısı |
<interval> | String | Gecikme eylemi için bekleme aralığı: "Second", "Minute", "Hour", "Day", "Week", "Month" |
<tarih-saat damgası> | String | Gecikme Süresi eylemi için yürütmenin sürdürülmesi için tarih ve saat. Bu değer UTC tarih saat biçimini kullanmalıdır. |
Örnek 1
Bu eylem tanımı iş akışını 15 dakika duraklatır:
"Delay": {
"type": "Wait",
"inputs": {
"interval": {
"count": 15,
"unit": "Minute"
}
},
"runAfter": {}
},
Örnek 2
Bu eylem tanımı, iş akışını belirtilen saate kadar duraklatır:
"Delay_until": {
"type": "Wait",
"inputs": {
"until": {
"timestamp": "2017-10-01T00:00:00Z"
}
},
"runAfter": {}
},
İş akışı eylemi
Bu eylem, daha önce oluşturulmuş başka bir mantıksal uygulamayı çağırır; bu da diğer mantıksal uygulama iş akışlarını dahil edip yeniden kullanabileceğiniz anlamına gelir. Alt mantıksal uygulamanın yanıt döndürmesi koşuluyla, iç içe mantıksal uygulamayı izleyen eylemlerde alt veya iç içe mantıksal uygulamanın çıkışlarını da kullanabilirsiniz.
Azure Logic Apps, çağırmak istediğiniz tetikleyiciye erişimi denetler, bu nedenle bu tetikleyiciye erişebildiğinizden emin olun. Ayrıca, iç içe mantıksal uygulamanın şu ölçütleri karşılaması gerekir:
Tetikleyici, iç içe mantıksal uygulamayı İstek veya HTTP tetikleyicisi gibi çağrılabilir hale getirir
Üst mantıksal uygulamanızla aynı Azure aboneliği
İç içe mantıksal uygulamanızdaki çıkışları üst mantıksal uygulamanızda kullanmak için, iç içe mantıksal uygulamanın bir Yanıt eylemi olmalıdır
"<nested-logic-app-name>": {
"type": "Workflow",
"inputs": {
"body": { "<body-content" },
"headers": { "<header-content>" },
"host": {
"triggerName": "<trigger-name>",
"workflow": {
"id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group>/providers/Microsoft.Logic/<nested-logic-app-name>"
}
}
},
"runAfter": {}
}
Required
Değer | Type | Açıklama |
---|---|---|
<nested-logic-app-name> | String | Çağırmak istediğiniz mantıksal uygulamanın adı |
<tetikleyici-adı> | String | Çağırmak istediğiniz iç içe mantıksal uygulamadaki tetikleyicinin adı |
<Azure-abonelik-kimliği> | String | İç içe mantıksal uygulamanın Azure abonelik kimliği |
<Azure-resource-group> | String | İç içe mantıksal uygulamanın Azure kaynak grubu adı |
Optional
Değer | Type | Açıklama |
---|---|---|
<üst bilgi içeriği> | JSON Nesnesi | Aramayla gönderilecek tüm üst bilgiler |
<gövde içeriği> | JSON Nesnesi | Aramayla gönderilecek tüm ileti içeriği |
Çıkışlar
Bu eylemin çıkışları, iç içe mantıksal uygulamanın Yanıt eylemine göre değişir. İç içe mantıksal uygulama bir Yanıt eylemi içermiyorsa çıkışlar boş olur.
Örnek
"Start_search" eylemi başarıyla tamamlandıktan sonra, bu iş akışı eylem tanımı belirtilen girişleri geçiren "Get_product_information" adlı başka bir mantıksal uygulamayı çağırır:
"actions": {
"Start_search": { <action-definition> },
"Get_product_information": {
"type": "Workflow",
"inputs": {
"body": {
"ProductID": "24601",
},
"host": {
"id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/InventoryManager-RG/providers/Microsoft.Logic/Get_product_information",
"triggerName": "Find_product"
},
"headers": {
"content-type": "application/json"
}
},
"runAfter": {
"Start_search": [ "Succeeded" ]
}
}
},
İş akışı eylemi ayrıntılarını denetleme
Foreach eylemi
Bu döngü eylemi bir dizide yinelenir ve her dizi öğesinde eylemler gerçekleştirir. Varsayılan olarak, "her biri için" döngüsü en fazla döngü sayısına kadar paralel olarak çalışır. Bu üst sınır için bkz. Sınırlar ve yapılandırma. "Her döngü için" oluşturma hakkında bilgi edinin.
"For_each": {
"type": "Foreach",
"actions": {
"<action-1>": { "<action-definition-1>" },
"<action-2>": { "<action-definition-2>" }
},
"foreach": "<for-each-expression>",
"runAfter": {},
"runtimeConfiguration": {
"concurrency": {
"repetitions": <count>
}
},
"operationOptions": "<operation-option>"
}
Required
Değer | Type | Açıklama |
---|---|---|
<eylem-1... n> | String | Her dizi öğesinde çalışan eylemlerin adları |
<eylem tanımı-1... n> | JSON Nesnesi | Çalışan eylemlerin tanımları |
<her ifade için> | String | Belirtilen dizideki her öğeye başvuran ifade |
Optional
Değer | Type | Açıklama |
---|---|---|
<count> | Tamsayı | Varsayılan olarak, "her biri için" döngü yinelemeleri varsayılan sınıra kadar aynı anda (eşzamanlı veya paralel olarak) çalışır. Yeni <bir sayı> değeri ayarlayarak bu sınırı değiştirmek için bkz. "Her bir için" döngü eşzamanlılığını değiştirme. |
<operation-option> | String | Bir "her biri için" döngüsünü paralel olarak değil sıralı olarak çalıştırmak için, işlem seçeneğini> Sequential olarak veya <olarak ayarlayın1 >, ancak ikisini birden değil.< Daha fazla bilgi için bkz . "Her döngü için" sırayla çalıştırma. |
Örnek
Bu "her öğe için" döngüsü, dizideki her öğe için gelen e-postanın eklerini içeren bir e-posta gönderir. Döngü, eki gözden geçiren bir kişiye eki de içeren bir e-posta gönderir.
"For_each": {
"type": "Foreach",
"actions": {
"Send_an_email": {
"type": "ApiConnection",
"inputs": {
"body": {
"Body": "@base64ToString(items('For_each')?['Content'])",
"Subject": "Review attachment",
"To": "Sophie.Owen@contoso.com"
},
"host": {
"connection": {
"id": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "post",
"path": "/Mail"
},
"runAfter": {}
}
},
"foreach": "@triggerBody()?['Attachments']",
"runAfter": {}
}
Yalnızca tetikleyiciden çıkış olarak geçirilen bir dizi belirtmek için, bu ifade tetikleyici gövdesinden dizi adı> dizisini alır<. Dizi yoksa hata oluşmasını önlemek için ifade şu ?
işlecini kullanır:
@triggerBody()?['<array-name>']
If eylemi
Koşullu bir deyim olan bu eylem, koşulu temsil eden bir ifadeyi değerlendirir ve koşulun true veya false olmasına bağlı olarak farklı bir dal çalıştırır. Koşul true ise, koşul "Başarılı" durumuyla işaretlenir. Koşullu deyimleri oluşturmayı öğrenin.
"Condition": {
"type": "If",
"expression": { "<condition>" },
"actions": {
"<action-1>": { "<action-definition>" }
},
"else": {
"actions": {
"<action-2>": { "<action-definition" }
}
},
"runAfter": {}
}
Değer | Type | Açıklama |
---|---|---|
<Durum> | JSON Nesnesi | Değerlendirilecek bir ifade olabilecek koşul |
<eylem-1> | JSON Nesnesi | Koşul> true olarak değerlendirildiğinde <çalıştırılacak eylem |
<eylem tanımı> | JSON Nesnesi | Eylemin tanımı |
<eylem-2> | JSON Nesnesi | Koşul> false olarak değerlendirildiğinde <çalıştırılacak eylem |
veya else
nesnelerindeki actions
eylemler şu durumları alır:
- Çalıştırıldığında ve başarılı olduğunda "Başarılı"
- Çalıştırıldığında ve başarısız olduğunda "Başarısız"
- İlgili dal çalışmadığında "Atlandı"
Örnek
Bu koşul, tamsayı değişkeni sıfırdan büyük bir değere sahip olduğunda iş akışının bir web sitesini denetlediğini belirtir. Değişken sıfır veya daha azsa, iş akışı farklı bir web sitesini denetler.
"Condition": {
"type": "If",
"expression": {
"and": [ {
"greater": [ "@variables('myIntegerVariable')", 0 ]
} ]
},
"actions": {
"HTTP - Check this website": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "http://this-url"
},
"runAfter": {}
}
},
"else": {
"actions": {
"HTTP - Check this other website": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "http://this-other-url"
},
"runAfter": {}
}
}
},
"runAfter": {}
}
Koşullar ifadeleri nasıl kullanır?
Koşullarda ifadeleri nasıl kullanabileceğinizi gösteren bazı örnekler aşağıda verilmiştir:
JSON | Sonuç |
---|---|
"expression": "@parameters('<hasSpecialAction>')" | Yalnızca Boole ifadeleri için koşul, true olarak değerlendirilen herhangi bir değer için geçer. Diğer türleri Boole'a dönüştürmek için şu işlevleri kullanın: empty() veya equals() . |
"expression": "@greater(actions('<action>').output.value, parameters('<threshold>'))" | Karşılaştırma işlevleri için eylem yalnızca eylemin çıktısı <> eşik> değerinden <fazla olduğunda çalışır. |
"expression": "@or(greater(actions('<action>').output.value, parameters('<threshold>')), less(actions('<same-action>').output.value, 100))" | Mantıksal işlevler ve iç içe Boole ifadeleri oluşturmak için eylem, eylemin <>çıktısı eşik> değerinden <fazla veya 100'ün altında olduğunda çalışır. |
"expression": "@equals(length(actions('<action>').outputs.errors), 0)" | Dizinin herhangi bir öğesi olup olmadığını denetlemek için dizi işlevlerini kullanabilirsiniz. Eylem, dizi boş olduğunda errors çalışır. |
Kapsam eylemi
Bu eylem, eylemleri mantıksal olarak kapsamlar halinde gruplandırarak söz konusu kapsamdaki eylemlerin çalışması tamamlandıktan sonra kendi durumlarını alır. Ardından kapsamın durumunu kullanarak diğer eylemlerin çalıştırılıp çalıştırılmayacağını belirleyebilirsiniz. Kapsam oluşturmayı öğrenin.
"Scope": {
"type": "Scope",
"actions": {
"<inner-action-1>": {
"type": "<action-type>",
"inputs": { "<action-inputs>" },
"runAfter": {}
},
"<inner-action-2>": {
"type": "<action-type>",
"inputs": { "<action-inputs>" },
"runAfter": {}
}
}
}
Required
Değer | Type | Açıklama |
---|---|---|
<iç eylem-1... n> | JSON Nesnesi | Kapsamın içinde çalışan bir veya daha fazla eylem |
<eylem girişleri> | JSON Nesnesi | Her eylem için girişler |
Switch eylemi
Switch deyimi olarak da bilinen bu eylem, diğer eylemleri servis talepleri halinde düzenler ve varsa varsayılan servis talebi dışında her servis talebine bir değer atar. İş akışınız çalıştırıldığında, Anahtar eylemi bir ifadeden, nesneden veya belirteçten gelen değeri her servis talebi için belirtilen değerlerle karşılaştırır. Anahtar eylemi eşleşen bir servis talebi bulursa, iş akışınız yalnızca bu servis talebine yönelik eylemleri çalıştırır. Anahtar eylemi her çalıştığında, yalnızca bir eşleşen servis talebi vardır veya eşleşme yoktur. Eşleşme yoksa, Değiştir eylemi varsayılan eylemleri çalıştırır. Switch deyimleri oluşturmayı öğrenin.
"Switch": {
"type": "Switch",
"expression": "<expression-object-or-token>",
"cases": {
"Case": {
"actions": {
"<action-name>": { "<action-definition>" }
},
"case": "<matching-value>"
},
"Case_2": {
"actions": {
"<action-name>": { "<action-definition>" }
},
"case": "<matching-value>"
}
},
"default": {
"actions": {
"<default-action-name>": { "<default-action-definition>" }
}
},
"runAfter": {}
}
Required
Değer | Type | Açıklama |
---|---|---|
<expression-object-or-token> | Değişir | Değerlendirilecek ifade, JSON nesnesi veya belirteç |
<eylem-adı> | String | Eşleşen büyük/küçük harf için çalıştırılacak eylemin adı |
<eylem tanımı> | JSON Nesnesi | Eşleşen büyük/küçük harf için çalıştırılacak eylemin tanımı |
<eşleşen değer> | Değişir | Değerlendirilen sonuçla karşılaştırılan değer |
Optional
Değer | Type | Açıklama |
---|---|---|
<default-action-name> | String | Eşleşen bir büyük/küçük harf olmadığında çalıştırılacak varsayılan eylemin adı |
<default-action-definition> | JSON Nesnesi | Eşleşen bir büyük/küçük harf olmadığında çalıştırılacak eylemin tanımı |
Örnek
Bu eylem tanımı, onay isteği e-postasına yanıt veren kişinin "Onayla" seçeneğini mi yoksa "Reddet" seçeneğini mi seçtiğini değerlendirir. Bu seçime bağlı olarak, Anahtar eylemi, yanıtlayana başka bir e-posta göndermek ancak her durumda farklı ifadelerle eşleşen büyük/küçük harfe yönelik eylemleri çalıştırır.
"Switch": {
"type": "Switch",
"expression": "@body('Send_approval_email')?['SelectedOption']",
"cases": {
"Case": {
"actions": {
"Send_an_email": {
"type": "ApiConnection",
"inputs": {
"Body": "Thank you for your approval.",
"Subject": "Response received",
"To": "Sophie.Owen@contoso.com"
},
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "post",
"path": "/Mail"
},
"runAfter": {}
},
"case": "Approve"
},
"Case_2": {
"actions": {
"Send_an_email_2": {
"type": "ApiConnection",
"inputs": {
"Body": "Thank you for your response.",
"Subject": "Response received",
"To": "Sophie.Owen@contoso.com"
},
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "post",
"path": "/Mail"
},
"runAfter": {}
},
"case": "Reject"
}
},
"default": {
"actions": {
"Send_an_email_3": {
"type": "ApiConnection",
"inputs": {
"Body": "Please respond with either 'Approve' or 'Reject'.",
"Subject": "Please respond",
"To": "Sophie.Owen@contoso.com"
},
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "post",
"path": "/Mail"
},
"runAfter": {}
}
},
"runAfter": {
"Send_approval_email": [
"Succeeded"
]
}
}
Until eylemi
Bu döngü eylemi, belirtilen koşul doğru olana kadar çalışan eylemler içerir. Döngü, diğer tüm eylemler çalıştırıldıktan sonra son adım olarak koşulu denetler. Nesneye "actions"
birden fazla eylem ekleyebilirsiniz ve eylemin en az bir sınır tanımlaması gerekir. "Until" döngüleri oluşturmayı öğrenin.
"Until": {
"type": "Until",
"actions": {
"<action-name>": {
"type": "<action-type>",
"inputs": { "<action-inputs>" },
"runAfter": {}
},
"<action-name>": {
"type": "<action-type>",
"inputs": { "<action-inputs>" },
"runAfter": {}
}
},
"expression": "<condition>",
"limit": {
"count": <loop-count>,
"timeout": "<loop-timeout>"
},
"runAfter": {}
}
Değer | Type | Açıklama |
---|---|---|
<eylem-adı> | String | Döngü içinde çalıştırmak istediğiniz eylemin adı |
<eylem türü> | String | Çalıştırmak istediğiniz eylem türü |
<eylem girişleri> | Çeşitli | Eylemin çalıştırılacak girişleri |
<Durum> | String | Döngüdeki tüm eylemler tamamlandıktan sonra değerlendirilecek koşul veya ifade |
<döngü sayısı> | Tamsayı | Eylemin çalıştırabileceği en fazla döngü sayısı sınırı. Varsayılan sınır ve maksimum sınır hakkında daha fazla bilgi için bkz . Azure Logic Apps için sınırlar ve yapılandırma. |
<döngü zaman aşımı> | String | Döngünün çalıştırabileceği en uzun süre sınırı. Varsayılan timeout değer, PT1H gerekli ISO 8601 biçimi olan değeridir. |
Not
İfade, Until döngüsündeki herhangi bir eylemin çıkışına bağlıysa, bu eylemden kaynaklanan hataları hesaba eklediğinizden emin olun.
Örnek
Bu döngü eylemi tanımı, aşağıdaki koşullardan biri karşılanıncaya kadar belirtilen URL'ye bir HTTP isteği gönderir:
- İstek, "200 Tamam" durum koduyla bir yanıt alır.
- Döngü 60 kez çalıştırılır.
- Döngü bir saat boyunca çalışır.
"Run_until_loop_succeeds_or_expires": {
"type": "Until",
"actions": {
"HTTP": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "http://myurl"
},
"runAfter": {}
}
},
"expression": "@equals(outputs('HTTP')['statusCode'], 200)",
"limit": {
"count": 60,
"timeout": "PT1H"
},
"runAfter": {}
}
Web kancaları ve abonelikler
Web kancası tabanlı tetikleyiciler ve eylemler düzenli olarak uç noktaları denetlemez, ancak bunun yerine bu uç noktalarda belirli olayları veya verileri bekler. Bu tetikleyiciler ve eylemler, uç noktanın yanıt gönderebileceği bir geri çağırma URL'si sağlayarak uç noktalara abone olabilir.
Çağrı subscribe
, iş akışı herhangi bir şekilde değiştiğinde, örneğin kimlik bilgileri yenilendiğinde veya bir tetikleyici veya eylem için giriş parametreleri değiştiğinde gerçekleşir. Bu çağrı, standart HTTP eylemleriyle aynı parametreleri kullanır.
Çağrı, unsubscribe
bir işlem tetikleyiciyi veya eylemi geçersiz hale getirdiğinde otomatik olarak gerçekleşir, örneğin:
- Tetikleyici siliniyor veya devre dışı bırakiliyor.
- İş akışını silme veya devre dışı bırakma.
- Aboneliği silme veya devre dışı bırakma.
Bu çağrıları desteklemek için ifade, @listCallbackUrl()
tetikleyici veya eylem için benzersiz bir "geri çağırma URL'si" döndürür. Bu URL, hizmetin REST API'sini kullanan uç noktalar için benzersiz bir tanımlayıcıyı temsil eder. Bu işlevin parametreleri web kancası tetikleyicisi veya eylemiyle aynıdır.
Zaman uyumsuz süreyi değiştirme
Hem tetikleyiciler hem de eylemler için, özelliğini ekleyerek zaman uyumsuz desenin süresini belirli bir zaman aralığıyla limit.timeout
sınırlayabilirsiniz. Bu şekilde, aralık atlandığında eylem tamamlanmamışsa, eylemin durumu kodla birlikte ActionTimedOut
olarak Cancelled
işaretlenir. timeout
özelliği ISO 8601 biçimini kullanır.
"<trigger-or-action-name>": {
"type": "Workflow | Webhook | Http | ApiConnectionWebhook | ApiConnection",
"inputs": {},
"limit": {
"timeout": "PT10S"
},
"runAfter": {}
}
Çalışma zamanı yapılandırma ayarları
Tetikleyici veya eylem tanımına bu runtimeConfiguration
özellikleri ekleyerek tetikleyiciler ve eylemler için varsayılan çalışma zamanı davranışını değiştirebilirsiniz.
Özellik | Türü | Açıklama | Tetikleyici veya eylem |
---|---|---|---|
runtimeConfiguration.concurrency.runs |
Tamsayı | Aynı anda (eşzamanlı veya paralel olarak) çalışabilen iş akışı örneği sayısı için varsayılan sınırı değiştirin. Bu değerin ayarlanması, arka uç sistemlerinin aldığı istek sayısını sınırlamaya yardımcı olabilir. özelliğini olarak 1 ayarlamak, runs özelliğini SingleInstance olarak ayarlamakla operationOptions aynı şekilde çalışır. İki özelliği de ayarlayabilirsiniz, ancak ikisini birden ayarlayamayın. Varsayılan sınırı değiştirmek için bkz . Tetikleyici eşzamanlılığını değiştirme veya Tetikleyici örneklerini sırayla değiştirme. |
Tüm tetikleyiciler |
runtimeConfiguration.concurrency.maximumWaitingRuns |
Tamsayı | Mantıksal uygulamanız zaten en fazla eşzamanlı örneği çalıştırırken çalışması için beklemesi gereken iş akışı örneği sayısıyla ilgili varsayılan sınırı değiştirin. Varsayılan sınırı değiştirmek için bkz . Bekleyen çalıştırma sınırını değiştirme. |
Tüm tetikleyiciler |
runtimeConfiguration.concurrency.repetitions |
Tamsayı | Aynı anda (eşzamanlı veya paralel olarak) çalışabilen "her bir döngü yinelemesi için" sayısı üzerindeki varsayılan sınırı değiştirin. özelliğini olarak 1 ayarlamak, repetitions özelliğini SingleInstance olarak ayarlamakla operationOptions aynı şekilde çalışır. İki özelliği de ayarlayabilirsiniz, ancak ikisini birden ayarlayamayın. Varsayılan sınırı değiştirmek için bkz . "Her bir için" eşzamanlılığını değiştirme veya "her için" döngülerini sırayla çalıştırma. |
Eylem: Foreach |
runtimeConfiguration.paginationPolicy.minimumItemCount |
Tamsayı | Sayfalandırmayı destekleyen ve açık olan belirli eylemler için bu değer alınacak en az sonuç sayısını belirtir. Sayfalandırmayı açmak için bkz . Sayfalandırma kullanarak toplu veri, öğe veya sonuç alma |
Eylem: Çeşitli |
runtimeConfiguration.secureData.properties |
Dizi | Birçok tetikleyicide ve eylemde, bu ayarlar girişleri, çıkışları veya her ikisini de mantıksal uygulamanın çalıştırma geçmişinden gizler. Bu verileri koruma hakkında daha fazla bilgi edinmek için bkz . Çalıştırma geçmişinden girişleri ve çıkışları gizleme. |
Çoğu tetikleyici ve eylem |
runtimeConfiguration.staticResult |
JSON Nesnesi | Statik sonuç ayarını destekleyen ve açık olan eylemler için nesnenin staticResult şu öznitelikleri vardır:- name , mantıksal uygulama iş akışınızın definition özniteliğindeki özniteliğin içinde görünen geçerli eylemin staticResults statik sonuç tanımı adına başvurur. Daha fazla bilgi için bkz . Statik sonuçlar - İş Akışı Tanım Dili için şema başvurusu. - staticResultOptions , statik sonuçların Enabled geçerli eylem için olup olmadığını belirtir. Statik sonuçları açmak için bkz . Statik sonuçları ayarlayarak mantıksal uygulamaları sahte verilerle test etme |
Eylem: Çeşitli |
İşlem seçenekleri
Tetikleyici veya eylem tanımında özelliğiyle operationOptions
tetikleyiciler ve eylemler için varsayılan davranışı değiştirebilirsiniz.
İşlem seçeneği | Type | Açıklama | Tetikleyici veya eylem |
---|---|---|---|
DisableAsyncPattern |
String | HTTP tabanlı eylemleri zaman uyumsuz olarak değil zaman uyumlu olarak çalıştırın. Bu seçeneği ayarlamak için bkz . Eylemleri zaman uyumlu olarak çalıştırma. |
Eylem: Api Bağlan ion, HTTP, Response |
IncludeAuthorizationHeadersInOutputs |
String | İstek tabanlı bir tetikleyici uç noktasına gelen çağrılar için erişim yetkisi vermek üzere Microsoft Entra ID ile OAuth'u etkinleştiren mantıksal uygulamalar için, tetikleyici çıkışlarına OAuth erişim belirtecinden üst bilgiyi ekleyinAuthorization . Daha fazla bilgi için bkz . İstek tetikleyicisi çıkışlarına 'Yetkilendirme' üst bilgisini ekleme. |
Tetikleyiciler: İstek, HTTP Web kancası |
Sequential |
String | "Her biri için" döngü yinelemelerini aynı anda paralel olarak çalıştırmak yerine birer birer çalıştırın. Bu seçenek, özelliğini 1 olarak ayarlamakla runtimeConfiguration.concurrency.repetitions aynı şekilde çalışır. İki özelliği de ayarlayabilirsiniz, ancak ikisini birden ayarlayamayın. Bu seçeneği ayarlamak için bkz . "Her döngü için" sırayla çalıştırma. |
Eylem: Foreach |
SingleInstance |
String | Her mantıksal uygulama örneği için tetikleyiciyi sıralı olarak çalıştırın ve sonraki mantıksal uygulama örneğini tetiklemeden önce önceden etkin olan çalıştırmanın tamamlanmasını bekleyin. Bu seçenek, özelliğini 1 olarak ayarlamakla runtimeConfiguration.concurrency.runs aynı şekilde çalışır. İki özelliği de ayarlayabilirsiniz, ancak ikisini birden ayarlayamayın. Bu seçeneği ayarlamak için bkz . Örnekleri sırayla tetikleme. |
Tüm tetikleyiciler |
SuppressWorkflowHeaders |
String | Giden isteklerde meta veri üst bilgilerini göndermeyin x-ms-* . Varsayılan olarak, Azure Logic Apps giden isteklerin x-ms- bir parçası olarak üst bilgi adında önek içeren ek meta veri üst bilgileri içerir. Ancak bazı eski hizmetler, fazla bilinmeyen üst bilgiler içeren istekleri kabul etmez ve başarısız isteklerle sonuçlanır. |
Eylem: HTTP, İşlev, APIManagement |
SuppressWorkflowHeadersOnResponse |
String | Gelen tetikleyici isteklerine yanıt olarak meta veri üst bilgileri göndermeyin x-ms-* . Varsayılan olarak, Azure Logic Apps üst bilgi adında önek içeren x-ms- ek meta veri üst bilgileri içeren gelen isteklere yanıt gönderir. Ancak bazı eski hizmetler, fazladan bilinmeyen üst bilgiler içeren istekleri veya yanıtları kabul etmez ve başarısız isteklerle sonuçlanır. |
Tetikleyiciler: İstek, HTTP Web kancası |
Tetikleyici eşzamanlılığını değiştirme
Varsayılan olarak, mantıksal uygulama iş akışı örneklerinin tümü aynı anda (eşzamanlı veya paralel) çalışır. Bu davranış, her tetikleyici örneğinin daha önce etkin olan iş akışı örneğinin çalışması tamamlanmadan önce tetiklendiğini gösterir. Ancak, eşzamanlı olarak çalışan örneklerin sayısı varsayılan bir sınıra sahiptir. Eşzamanlı olarak çalışan iş akışı örneklerinin sayısı bu sınıra ulaştığında, diğer tüm yeni örneklerin çalıştırılmasını beklemesi gerekir. Bu sınır, arka uç sistemlerinin aldığı istek sayısını denetlemeye yardımcı olur.
Tetikleyicinin eşzamanlılık denetimini açtığınızda, tetikleyici örnekleri varsayılan sınıra kadar paralel olarak çalışır. Bu varsayılan eşzamanlılık sınırını değiştirmek için kod görünümü düzenleyicisini veya iş akışı tasarımcısını kullanabilirsiniz çünkü eşzamanlılık ayarını tasarımcı aracılığıyla değiştirmek, temel tetikleyici tanımında özelliği ekler veya güncelleştirir runtimeConfiguration.concurrency.runs
ve bunun tersi de geçerlidir. Bu özellik, paralel olarak çalışabilecek en fazla yeni iş akışı örneği sayısını denetler.
Tetikleyicide eşzamanlılığı etkinleştirmeden önce aşağıdaki noktaları gözden geçirin:
Eşzamanlılık denetimini etkinleştirdikten sonra eşzamanlılığı devre dışı bırakamazsınız.
Eşzamanlı tetikleyici çalıştırma sayısı üst sınırı paralellik derecesine ulaşırsa, sonraki tetikleyici çalıştırmaları azaltma veya "429 - Çok fazla istek" hatasıyla karşılaşabilir. 429 hatalarını işleyen bir yeniden deneme ilkesi ayarlarsanız tetikleyici, yeni tetikleyici isteklerini işlemede uzun gecikmelere neden olan bir yeniden deneme ve azaltma davranışı döngüsüyle karşılaşabilir.
Eşzamanlılık etkinleştirildiğinde, dizilerin eşleşmesini kaldırma için SplitOn sınırı önemli ölçüde azaltılır. Öğe sayısı bu sınırı aşarsa SplitOn özelliği devre dışı bırakılır.
Eşzamanlılık etkinleştirildiğinde, uzun süre çalışan bir mantıksal uygulama örneği yeni mantıksal uygulama örneklerinin bekleme durumuna girmesine neden olabilir. Bu durum, Azure Logic Apps'in yeni örnekler oluşturmasını engeller ve eşzamanlı çalıştırma sayısı belirtilen en fazla eşzamanlı çalıştırma sayısından az olduğunda bile gerçekleşir.
Bu durumu kesintiye uğratmak için, çalışmaya devam eden en eski örnekleri iptal edin.
Mantıksal uygulamanızın menüsünde Genel Bakış'ı seçin.
Çalıştırma geçmişi bölümünde, çalışmaya devam eden en eski örneği seçin, örneğin:
İpucu
Yalnızca çalışmakta olan örnekleri görüntülemek için Tümü listesini açın ve Çalışıyor'ı seçin.
Mantıksal uygulama çalıştırma'nın altında Çalıştırmayı iptal et'i seçin.
Bu olasılığı geçici olarak çözmek için, bu çalıştırmaları tutabilecek herhangi bir eyleme zaman aşımı ekleyin. Kod düzenleyicisinde çalışıyorsanız bkz . Zaman uyumsuz süreyi değiştirme. Aksi takdirde, tasarımcıyı kullanıyorsanız şu adımları izleyin:
Mantıksal uygulama iş akışınızda, zaman aşımı eklemek istediğiniz eylemi seçin. Eylemin sağ üst köşesinde üç nokta (...) düğmesini ve ardından Ayarlar seçin.
Zaman Aşımı'nın altında, iso 8601 biçiminde zaman aşımı süresini belirtin.
Mantıksal uygulamanızı sırayla çalıştırmak için kod görünümü düzenleyicisini veya tasarımcıyı kullanarak tetikleyicinin eşzamanlılığını
1
olarak ayarlayın. TetikleyicininoperationOptions
özelliğiniSingleInstance
kod görünümü düzenleyicisinde olarak ayarlamadığınızdan emin olun. Aksi takdirde doğrulama hatası alırsınız. Daha fazla bilgi için bkz . Örnekleri sırayla tetikleme.
Kod görünümünde düzenleme
Temel tetikleyici tanımında özelliğini ekleyin runtimeConfiguration.concurrency.runs
ve tetikleyici eşzamanlılık sınırlarına göre değeri ayarlayın. İş akışınızı sırayla çalıştırmak için özellik değerini olarak 1
ayarlayın.
Bu örnek eşzamanlı çalıştırmaları 10 örnekle sınırlar:
"<trigger-name>": {
"type": "<trigger-name>",
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>,
},
"runtimeConfiguration": {
"concurrency": {
"runs": 10
}
}
}
Daha fazla bilgi için bkz . Çalışma zamanı yapılandırma ayarları.
İş akışı tasarımcısında düzenleme
Tetikleyicinin sağ üst köşesinde üç nokta (...) düğmesini ve ardından Ayarlar seçin.
Eşzamanlılık Denetimi'nin altında Sınır'ı Açık olarak ayarlayın.
Paralellik Derecesi kaydırıcısını istediğiniz değere sürükleyin. Mantıksal uygulamanızı sırayla çalıştırmak için kaydırıcı değerini 1'e sürükleyin.
"Her bir için" eşzamanlılığını değiştirme
Varsayılan olarak, "her biri için" döngü yinelemelerinin tümü aynı anda (eşzamanlı veya paralel olarak) çalışır. Bu davranış, önceki yinelemenin çalışması tamamlanmadan önce her yinelemenin çalışmaya başladığı anlamına gelir. Ancak, eşzamanlı olarak çalışan yinelemelerin sayısı varsayılan bir sınıra sahiptir. Eşzamanlı olarak çalışan yinelemelerin sayısı bu sınıra ulaştığında, diğer yinelemelerin çalıştırılmasını beklemesi gerekir.
Varsayılan sınırı değiştirmek için kod görünümü düzenleyicisini veya iş akışı tasarımcısını kullanabilirsiniz çünkü eşzamanlılık ayarını tasarımcı aracılığıyla değiştirmek, temel alınan "her biri için" eylem tanımında özelliği ekler veya güncelleştirir runtimeConfiguration.concurrency.repetitions
ve bunun tersi de geçerlidir. Bu özellik, paralel olarak çalışabilecek en fazla yineleme sayısını denetler.
Not
"Her eylem için" eylemini tasarımcıyı veya kod görünümü düzenleyicisini kullanarak sırayla çalışacak şekilde ayarlarsanız, eylemin operationOptions
özelliğini kod görünümü düzenleyicisinde olarak Sequential
ayarlamayın. Aksi takdirde doğrulama hatası alırsınız. Daha fazla bilgi için bkz . "Her döngü için" sırayla çalıştırma.
Kod görünümünde düzenleme
Temel alınan "her bir için" tanımında runtimeConfiguration.concurrency.repetitions
ve arasında bir 1
50
değere sahip olabilecek özelliğini ekleyin veya güncelleştirin.
Eş zamanlı çalıştırmaları 10 yinelemeyle sınırlayan bir örnek aşağıda verilmiştir:
"For_each" {
"type": "Foreach",
"actions": { "<actions-to-run>" },
"foreach": "<for-each-expression>",
"runAfter": {},
"runtimeConfiguration": {
"concurrency": {
"repetitions": 10
}
}
}
Daha fazla bilgi için bkz . Çalışma zamanı yapılandırma ayarları.
İş akışı tasarımcısında düzenleme
Her eylem için'in sağ üst köşesindeki üç nokta (...) düğmesini ve ardından Ayarlar'ı seçin.
Eşzamanlılık Denetimi'nin altında Eşzamanlılık Denetimi'yi Açık olarak ayarlayın.
Paralellik Derecesi kaydırıcısını istediğiniz değere sürükleyin. Mantıksal uygulamanızı sırayla çalıştırmak için kaydırıcı değerini 1'e sürükleyin.
Bekleyen çalıştırma sınırını değiştirme
Varsayılan olarak, mantıksal uygulama iş akışı örneklerinin tümü aynı anda (eşzamanlı veya paralel) çalışır. Bu davranış, her tetikleyici örneğinin daha önce etkin olan iş akışı örneğinin çalışması tamamlanmadan önce tetiklendiğini gösterir. Ancak, eşzamanlı olarak çalışan iş akışı örneklerinin sayısında varsayılan bir sınır vardır. Eş zamanlı çalıştırma sayısı bu sınıra ulaştığında, diğer tüm yeni iş akışı örneklerinin çalıştırılmasını beklemesi gerekir. Bekleyen iş akışı örneklerinin sayısında da varsayılan bir sınır vardır. Bekleyen örneklerin sayısı bu sınıra ulaştığında Azure Logic Apps artık çalıştırılacak yeni iş akışı örneklerini kabul etmemektedir. İstek ve web kancası tetikleyicileri 429 döndürür - Çok fazla istek hatası ve yinelenen tetikleyiciler yoklama girişimlerini atlamaya başlar.
Tetikleyici eşzamanlılığında varsayılan sınırı ve bekleme çalıştırmalarında varsayılan sınırı değiştirebilirsiniz. Ancak bu değişiklik, eşzamanlılık nedeniyle baskıyı hafifletmek için öncelikle tetikleyiciyi yavaşlatır. Örneğin yoklama tetikleyiciniz varsa ve devam eden çalıştırmalar nedeniyle bekleme çalıştırmaları kuyruğu doluysa Azure Logic Apps yoklamayı durdurur. İş akışınız istek tabanlı tetikleyici kullanıyorsa ve bekleyen çalıştırmalar kuyruğu doluysa Azure Logic Apps 429 hatasını döndürmeye başlar. Azure Logic Apps'in hatalara neden olmadan tetikleyicinin yoklamasını durduramadığı ve çağrı çalıştırmalarında başarısız olmadan bu tür çalıştırmaları yine de bekleme çalıştırmaları kuyruğuna eklemeyi tercih ettiği bazı senaryolar vardır.
Temel tetikleyici tanımında, ile arasında bir 1
100
değere sahip olabilecek özelliğini ekleyinruntimeConfiguration.concurrency.maximumWaitingRuns
.
"<trigger-name>": {
"type": "<trigger-name>",
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>,
},
"runtimeConfiguration": {
"concurrency": {
"maximumWaitingRuns": 50
}
}
}
Daha fazla bilgi için bkz . Çalışma zamanı yapılandırma ayarları.
Örnekleri sıralı olarak tetikleme
Her mantıksal uygulama iş akışı örneğini yalnızca önceki örnek çalışmasını tamamladıktan sonra çalıştırmak için tetikleyiciyi sırayla çalışacak şekilde ayarlayın. Kod görünümü düzenleyicisini veya iş akışı tasarımcısını kullanabilirsiniz çünkü eşzamanlılık ayarını tasarımcı aracılığıyla değiştirmek, temel tetikleyici tanımına özelliği de ekler veya güncelleştirir runtimeConfiguration.concurrency.runs
ve bunun tersi de geçerlidir.
Not
Tasarımcıyı veya kod görünümü düzenleyicisini kullanarak sırayla çalışacak bir tetikleyici ayarladığınızda, tetikleyicinin operationOptions
özelliğini Sequential
kod görünümü düzenleyicisinde olarak ayarlamayın.
Aksi takdirde doğrulama hatası alırsınız.
Kod görünümünde düzenleme
Tetikleyici tanımında bu özelliklerden birini ayarlayın, ancak ikisini birden ayarlamayın.
özelliğini olarak runtimeConfiguration.concurrency.runs
1
ayarlayın:
"<trigger-name>": {
"type": "<trigger-name>",
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>,
},
"runtimeConfiguration": {
"concurrency": {
"runs": 1
}
}
}
-Veya-
özelliğini olarak operationOptions
SingleInstance
ayarlayın:
"<trigger-name>": {
"type": "<trigger-name>",
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>,
},
"operationOptions": "SingleInstance"
}
Daha fazla bilgi için bkz . Çalışma zamanı yapılandırma ayarları ve İşlem seçenekleri.
İş akışı tasarımcısında düzenleme
Tetikleyicinin sağ üst köşesinde üç nokta (...) düğmesini ve ardından Ayarlar seçin.
Eşzamanlılık Denetimi'nin altında Sınır'ı Açık olarak ayarlayın.
Paralellik Derecesi kaydırıcısını numarasına
1
sürükleyin.
"Her bir döngü için" döngülerini sıralı olarak çalıştırma
Yalnızca önceki yinelemenin çalışması tamamlandıktan sonra "her biri için" döngü yinelemesini çalıştırmak için, "her biri için" eylemini sırayla çalışacak şekilde ayarlayın. Eylemin eşzamanlılığını tasarımcı aracılığıyla değiştirdiğinizden kod görünümü düzenleyicisini veya iş akışı tasarımcısını kullanabilirsiniz. Bunun nedeni, temel alınan eylem tanımına özelliği de ekler veya güncelleştirir runtimeConfiguration.concurrency.repetitions
.
Not
Tasarımcıyı veya kod görünümü düzenleyicisini kullanarak "her eylem için" eylemini sırayla çalışacak şekilde ayarladığınızda, eylemin operationOptions
özelliğini kod görünümü düzenleyicisinde olarak Sequential
ayarlamayın.
Aksi takdirde doğrulama hatası alırsınız.
Kod görünümünde düzenleme
Eylem tanımında bu özelliklerden birini ayarlayın, ancak ikisini birden ayarlamayın.
özelliğini olarak runtimeConfiguration.concurrency.repetitions
1
ayarlayın:
"For_each" {
"type": "Foreach",
"actions": { "<actions-to-run>" },
"foreach": "<for-each-expression>",
"runAfter": {},
"runtimeConfiguration": {
"concurrency": {
"repetitions": 1
}
}
}
-Veya-
özelliğini olarak operationOptions
Sequential
ayarlayın:
"For_each" {
"type": "Foreach",
"actions": { "<actions-to-run>" },
"foreach": "<for-each-expression>",
"runAfter": {},
"operationOptions": "Sequential"
}
Daha fazla bilgi için bkz . Çalışma zamanı yapılandırma ayarları ve İşlem seçenekleri.
İş akışı tasarımcısında düzenleme
Her eylemin sağ üst köşesinde üç nokta (...) düğmesini ve ardından Ayarlar seçin.
Eşzamanlılık Denetimi'nin altında Eşzamanlılık Denetimi'yi Açık olarak ayarlayın.
Paralellik Derecesi kaydırıcısını numarasına
1
sürükleyin.
Eylemleri zaman uyumlu bir işlem düzeninde çalıştırma
Varsayılan olarak, Azure Logic Apps'teki HTTP eylemi ve API Bağlan ion eylemleri standart zaman uyumsuz işlem desenini, Yanıt eylemi ise zaman uyumlu işlem desenini izler. Zaman uyumsuz desen, bir eylem belirtilen uç noktayı, hizmeti, sistemi veya API'yi çağırdıktan veya istek gönderdikten sonra alıcının hemen bir "202 KABUL EDİLEN" yanıtı döndürdüğünü belirtir. Bu kod, alıcının isteği kabul ettiğini ancak işlemeyi tamamlamadığını onaylar. Yanıt, alıcı işlemeyi durdurup "200 Tamam" başarı yanıtı veya 202 dışı başka bir yanıt döndürene kadar çağıranın sürekli yoklama yapmak veya zaman uyumsuz isteğin durumunu denetlemek için kullanabileceği URL'yi ve yenileme kimliğini belirten bir üst bilgi içerebilirlocation
. Daha fazla bilgi için bkz . Zaman uyumsuz mikro hizmet tümleştirmesi mikro hizmet özerkliğini zorlar.
Mantıksal Uygulama Tasarım Aracı HTTP eylemi, API Bağlan ion eylemleri ve Yanıt eylemi Zaman Uyumsuz Desen ayarına sahiptir. Etkinleştirildiğinde, bu ayar çağıranın işlemin bitmesini beklemediğini ve sonraki eyleme geçebileceğini ancak işleme durdurulana kadar durumu denetlemeye devam ettiğini belirtir. Devre dışı bırakılırsa, bu ayar çağıranın bir sonraki eyleme geçmeden önce işlemin tamamlanmasını beklediğini belirtir. Bu ayarı bulmak için şu adımları izleyin:
HTTP eyleminin başlık çubuğunda, eylemin ayarlarını açan üç nokta (...) düğmesini seçin.
Zaman Uyumsuz Desen ayarını bulun.
Eylemin temel alınan JavaScript Nesne Gösterimi (JSON) tanımında HTTP eylemi ve API Bağlan ion eylemleri zaman uyumsuz işlem desenini örtük olarak izler.
Bazı senaryolarda, bunun yerine bir eylemin zaman uyumlu deseni izlemesini isteyebilirsiniz. Örneğin, HTTP eylemini kullandığınızda şunları yapmak isteyebilirsiniz:
- Uzun süre çalışan görevler için HTTP zaman aşımlarından kaçının
- Konum üst bilgilerini denetlemeyi devre dışı bırakma
Bu gibi durumlarda, şu seçenekleri kullanarak bir eylemin zaman uyumlu bir şekilde çalıştırılmasını sağlayabilirsiniz:
Varsa, bu eylemin yoklama sürümünü bir web kancası sürümüyle değiştirin.
Herhangi bir seçeneği izleyerek eylemin zaman uyumsuz davranışını devre dışı bırakın:
Mantıksal Uygulama Tasarım Aracı Zaman Uyumsuz Desen ayarını kapatın.
Eylemin temel alınan JSON tanımına
"DisableAsyncPattern"
işlem seçeneğini ekleyin.
Zaman Uyumsuz Desen ayarını kapatma
Mantıksal Uygulama Tasarım Aracı eylemin başlık çubuğunda, eylemin ayarlarını açan üç nokta (...) düğmesini seçin.
Zaman Uyumsuz Desen ayarını bulun, etkinleştirildiyse ayarı Kapalı duruma getirin ve Bitti'yi seçin.
Eylemin JSON tanımında zaman uyumsuz deseni devre dışı bırakma
Eylemin temel alınan JSON tanımında, eylemin bölümünde "operationOptions" özelliğini "DisableAsyncPattern"
"inputs"
ekleyin ve ayarlayın, örneğin:
"<some-long-running-action>": {
"type": "Http",
"inputs": { "<action-inputs>" },
"operationOptions": "DisableAsyncPattern",
"runAfter": {}
}
Tetikleyicilerin ve eylemlerin kimliğini doğrulama
HTTP ve HTTPS uç noktaları farklı kimlik doğrulama türlerini destekler. Bu uç noktalara erişmek için giden çağrılar veya istekler yapmak için kullandığınız tetikleyiciye veya eyleme bağlı olarak, farklı kimlik doğrulama türleri arasından seçim yapabilirsiniz. Daha fazla bilgi için bkz . Giden çağrılara kimlik doğrulaması ekleme.
Sonraki adımlar
- İş Akışı Tanım Dili hakkında daha fazla bilgi edinin