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>"
},

Gerekli

Değer Türü 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.

İsteğe bağlı

Değer Türü 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>"
}

Gerekli

Değer Türü Açıklama
<API Bağlanion_trigger_name> String Tetikleyicinin adı
<bağlantı adı> String İş akışının kullandığı yönetilen API bağlantısının adı
<yöntem türü> String Yönetilen API ile iletişim kurmak için HTTP yöntemi: "GET", "PUT", "POST", "PATCH", "DELETE"
<api-operation> String Çağrılacak API işlemi
<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.

İsteğe bağlı

Değer Türü 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.

Çıkışlar

Öğe Türü 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 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>"
}

Gerekli

Değer Türü 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

İsteğe bağlı

Değer Türü 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>"
}

Gerekli

Özellik Değer Türü 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.

İsteğe bağlı

Özellik Değer Türü 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 Türü 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 Evet "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 No Mantıksal uygulamanızın uç noktayı yeniden yoklamasına kadar olan saniye sayısı
Konum üst bilgisi No 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.

Gerekli

Değer Türü 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

İsteğe bağlı

Değer Türü 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 Türü 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>"
}

Gerekli

Değer Türü 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.

İsteğe bağlı

Değer Türü 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 belirtiminiizlemelidir 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.

1. Örnek

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

Gerekli

Değer Türü Açıklama
<özellik-adı> String Yükü açıklayan JSON şemasındaki bir özelliğin adı
<özellik türü> String Özelliğin türü

İsteğe bağlı

Değer Türü 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 Rowsiç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"
}

Dekont

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>"
},

Gerekli

Değer Türü 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

İsteğe bağlı

Değer Türü 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:

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.
Yanıt 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": {}
}

Gerekli

Değer Türü 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

İsteğe bağlı

Değer Türü 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.

Gerekli

Değer Türü 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

İsteğe bağlı

Değer Türü 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": {}
},

Gerekli

Değer Türü Açıklama
<girişler-oluşturma> Tümü Tek çıkış oluşturmaya yönelik girişler

1. Örnek

Bu eylem tanımı, sonunda bir boşluk ve değeriyle 1234birleş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 1234bir 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": {}
}

Gerekli

Değer Türü 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 Türü 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.

1. Örnek

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

Gerekli

Değer Türü 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.

İsteğe bağlı

Değer Türü 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 Logic Apps altyapısı 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.

    Logic Apps altyapısı 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": {}
}

Gerekli

Özellik Değer Türü 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.

İsteğe bağlı

Özellik Değer Türü 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": {}
}

Gerekli

Değer Türü 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": {}
},

Gerekli

Değer Türü 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: Logic Apps Tasarım Aracı'da, 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, LastNameve 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": {}
}

Gerekli

Değer Türü 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": {}
},

Gerekli

Değer Türü 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.

İsteğe bağlı

Değer Türü 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ışındayanı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": {}
},

Gerekli

Değer Türü 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": {}
}

Gerekli

Değer Türü 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.

İsteğe bağlı

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 Türü Açıklama
<sütun-adı> String Sütunun üst bilgi adı
<sütun-değer> Tümü Bu sütundaki değer

1. Örnek

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

KimlikProduct_Name
0Elma
1Portakal

Ö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_IDAçıklama
0Organik Elmalar
1Organik 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": {}
}

Gerekli

Değer Türü Açıklama
<status> String Çalıştırma için döndürülecek durum: "Başarısız", "İptal Edildi" veya "Başarılı"

İsteğe bağlı

"runStatus" nesnesinin özellikleri yalnızca "runStatus" özelliği "Failed" durumuna ayarlandığında uygulanır.

Değer Türü 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": {}
},

Gerekli

Değer Türü 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.

1. Örnek

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.

Logic Apps altyapısı, ç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": {}
}

Gerekli

Değer Türü 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ı

İsteğe bağlı

Değer Türü 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>"
}

Gerekli

Değer Türü 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

İsteğe bağlı

Değer Türü 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>Sequentialolarak 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 Türü 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": {}
      }
   }
}

Gerekli

Değer Türü 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": {}
}

Gerekli

Değer Türü 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

İsteğe bağlı

Değer Türü 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 Türü 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, PT1Hgerekli ISO 8601 biçimi olan değeridir.

Dekont

İ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 SingleInstanceolarak 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 SingleInstanceolarak 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 Türü 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,
Yanıt

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 1olarak 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 1olarak 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 hizmeti 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 hizmeti ü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 Logic Apps Tasarım Aracı kullanabilirsiniz çünkü eşzamanlılık ayarını tasarımcı aracılığıyla değiştirmek, temel tetikleyici tanımına ö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.

      1. Mantıksal uygulamanızın menüsünde Genel Bakış'ı seçin.

      2. Çalıştırma geçmişi bölümünde, çalışmaya devam eden en eski örneği seçin, örneğin:

        Select earliest running instance

        Bahşiş

        Yalnızca çalışmakta olan örnekleri görüntülemek için Tümü listesini açın ve Çalışıyor'ı seçin.

      3. Mantıksal uygulama çalıştırma'nın altında Çalıştırmayı iptal et'i seçin.

        Find earliest running instance

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

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

        Open action settings

      2. Zaman Aşımı'nın altında, iso 8601 biçiminde zaman aşımı süresini belirtin.

        Specify timeout duration

  • 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. Tetikleyicinin operationOptions özelliğini SingleInstance 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 1ayarlayı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ı.

Logic Apps Tasarım Aracı düzenleme

  1. Tetikleyicinin sağ üst köşesinde üç nokta (...) düğmesini ve ardından Ayarlar seçin.

  2. Eşzamanlılık Denetimi'nin altında Sınır'ıAçık olarak ayarlayın.

  3. 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 Logic Apps Tasarım Aracı 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.

Dekont

"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 150değ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ı.

Logic Apps Tasarım Aracı düzenleme

  1. Her eylem için'in sağ üst köşesindeki üç nokta (...) düğmesini ve ardından Ayarlar'ı seçin.

  2. Eşzamanlılık Denetimi'nin altında Eşzamanlılık Denetimi'yiAçık olarak ayarlayın.

  3. 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 örnek sayısı bu sınıra ulaştığında, Azure Logic Apps altyapısı 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 1100değ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 Logic Apps Tasarım Aracı kullanabilirsiniz çünkü eşzamanlılık ayarını tasarımcı aracılığıyla değiştirmek, temel tetikleyici tanımına runtimeConfiguration.concurrency.runs özelliği de ekler veya güncelleştirir ve bunun tersi de geçerlidir.

Dekont

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.runs1ayarlayın:

"<trigger-name>": {
   "type": "<trigger-name>",
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>,
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": 1
      }
   }
}

-Veya-

özelliğini olarak operationOptionsSingleInstanceayarlayı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.

Logic Apps Tasarım Aracı düzenleme

  1. Tetikleyicinin sağ üst köşesinde üç nokta (...) düğmesini ve ardından Ayarlar seçin.

  2. Eşzamanlılık Denetimi'nin altında Sınır'ıAçık olarak ayarlayın.

  3. Paralellik Derecesi kaydırıcısını numarasına 1sü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ğinizde temel eylem tanımına özelliği de eklediği veya güncelleştirdiği runtimeConfiguration.concurrency.repetitions için kod görünümü düzenleyicisini veya Logic Apps Tasarım Aracı kullanabilirsiniz.

Dekont

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.repetitions1ayarlayın:

"For_each" {
   "type": "Foreach",
   "actions": { "<actions-to-run>" },
   "foreach": "<for-each-expression>",
   "runAfter": {},
   "runtimeConfiguration": {
      "concurrency": {
         "repetitions": 1
      }
   }
}

-Veya-

özelliğini olarak operationOptionsSequentialayarlayı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.

Logic Apps Tasarım Aracı düzenleme

  1. Her eylemin sağ üst köşesinde üç nokta (...) düğmesini ve ardından Ayarlar seçin.

  2. Eşzamanlılık Denetimi'nin altında Eşzamanlılık Denetimi'yiAçık olarak ayarlayın.

  3. Paralellik Derecesi kaydırıcısını numarasına 1sü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:

    1. HTTP eyleminin başlık çubuğunda, eylemin ayarlarını açan üç nokta (...) düğmesini seçin.

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

Bu gibi durumlarda, şu seçenekleri kullanarak bir eylemin zaman uyumlu bir şekilde çalıştırılmasını sağlayabilirsiniz:

Zaman Uyumsuz Desen ayarını kapatma

  1. Mantıksal Uygulama Tasarım Aracı eylemin başlık çubuğunda, eylemin ayarlarını açan üç nokta (...) düğmesini seçin.

  2. Zaman Uyumsuz Desen ayarını bulun, etkinleştirildiyse ayarı Kapalı duruma getirin ve Bitti'yi seçin.

    Turn off

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