Azure Data Factory veya Azure Synapse Analytics'te işlem hattı yürütme ve tetikleyiciler

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

Bahşiş

Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!

Azure Data Factory ve Azure Synapse'de işlem hattı çalıştırması, işlem hattı yürütme örneğini tanımlar. Örneğin, 08.00, 09.00 ve 10.00'da çalışan bir işlem hattınız olduğunu kabul edelim. Bu durumda, işlem hattının üç ayrı çalıştırması (işlem hattı çalıştırması) olacaktır. Her işlem hattı çalıştırması benzersiz bir işlem hattı çalıştırma kimliğine sahiptir. Çalıştırma kimliği, belirli bir işlem hattı çalıştırmasını benzersiz bir şekilde tanımlayan GUID’dir.

İşlem hattı çalıştırmaları örneği genelde bağımsız değişkenlerin işlem hatlarında tanımladığınız parametrelere iletilmesiyle oluşturulur. İşlem hattını el ile veya bir tetikleyici kullanarak çalıştırabilirsiniz. Bu makalede her iki işlem hattı çalıştırma yöntemiyle ilgili ayrıntılı bilgiler yer almaktadır.

Kullanıcı arabirimiyle tetikleyiciler oluşturma

İşlem hattını el ile tetikleme veya yeni bir zamanlanmış, atlayan pencere, depolama olayı veya özel olay tetikleyicisi yapılandırmak için işlem hattı düzenleyicisinin üst kısmındaki Tetikleyici ekle'yi seçin.

Shows how to add a new trigger with UI from the pipeline editor.

İşlem hattını el ile tetiklemeyi seçerseniz işlem hattı hemen yürütülür. Aksi takdirde Yeni/Düzenle'yi seçerseniz, düzenlemek üzere mevcut bir tetikleyiciyi seçmeniz veya yeni bir tetikleyici oluşturmanız için tetikleyici ekleme penceresi istenir.

Shows the add triggers window highlighting where to create a new trigger.

Tetikleyici türünü seçmenize olanak sağlayan tetikleyici yapılandırma penceresini görürsünüz.

Shows the new trigger configuration window with the type dropdown showing the various types of triggers you can create.

Zamanlanmış, atlayan pencere, depolama olayı ve özel olay tetikleyicileri hakkında daha fazla bilgiyi aşağıda bulabilirsiniz.

JSON ile el ile yürütme (isteğe bağlı)

Bir işlem hattının el ile yürütülmesine isteğe bağlı yürütme de denir.

Örneğin çalıştırmak istediğiniz copyPipeline adlı temel bir işlem hattına sahip olduğunuzu düşünelim. Bu işlem hattı, bir Azure Blob depolama kaynak klasöründen aynı depolama alanı içindeki hedef bir klasöre kopyalama yapan tek bir etkinlik içerir. Aşağıdaki JSON tanımında bu örnek işlem hattı gösterilmektedir:

{
    "name": "copyPipeline",
    "properties": {
        "activities": [
            {
                "type": "Copy",
                "typeProperties": {
                    "source": {
                        "type": "BlobSource"
                    },
                    "sink": {
                        "type": "BlobSink"
                    }
                },
                "name": "CopyBlobtoBlob",
                "inputs": [
                    {
                        "referenceName": "sourceBlobDataset",
                        "type": "DatasetReference"
                    }
                ],
                "outputs": [
                    {
                        "referenceName": "sinkBlobDataset",
                        "type": "DatasetReference"
                    }
                ]
            }
        ],
        "parameters": {
            "sourceBlobContainer": {
                "type": "String"
            },
            "sinkBlobContainer": {
                "type": "String"
            }
        }
    }
}

JSON tanımında, işlem hattı iki parametre kabul eder: sourceBlobContainer ve sinkBlobContainer. Çalışma zamanında bu parametrelere değer verirsiniz.

Aşağıdaki yöntemlerden birini kullanarak işlem hattınızı el ile çalıştırabilirsiniz:

  • .NET SDK
  • Azure PowerShell modülü
  • REST API
  • Python SDK'sı

REST API

Aşağıdaki örnek komut, REST API'yi el ile kullanarak işlem hattınızı nasıl çalıştırabileceğinizi gösterir:

POST
https://management.azure.com/subscriptions/mySubId/resourceGroups/myResourceGroup/providers/Microsoft.DataFactory/factories/myDataFactory/pipelines/copyPipeline/createRun?api-version=2017-03-01-preview

Eksiksiz bir örnek için bkz. Hızlı başlangıç: REST API kullanarak veri fabrikası oluşturma.

Azure PowerShell

Dekont

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Aşağıdaki örnek komutta Azure PowerShell kullanarak işlem hattınızı nasıl el ile çalıştırabileceğiniz gösterilmiştir:

Invoke-AzDataFactoryV2Pipeline -DataFactory $df -PipelineName "Adfv2QuickStartPipeline" -ParameterFile .\PipelineParameters.json -ResourceGroupName "myResourceGroup"

Parametreleri istek yükünün gövde kısmında iletirsiniz. .NET SDK, Azure PowerShell ve Python SDK’da değerleri, çağrıya bağımsız değişken olarak iletilen bir sözlükte iletirsiniz:

{
  "sourceBlobContainer": "MySourceFolder",
  "sinkBlobContainer": "MySinkFolder"
}

Yanıt yükü, işlem hattı çalıştırmasının benzersiz kimliği olur:

{
  "runId": "0448d45a-a0bd-23f3-90a5-bfeea9264aed"
}

Eksiksiz bir örnek için bkz. Hızlı başlangıç: Azure PowerShell kullanarak veri fabrikası oluşturma.

.NET SDK

Aşağıdaki örnek çağrı, .NET SDK'sını el ile kullanarak işlem hattınızı nasıl çalıştırabileceğinizi gösterir:

client.Pipelines.CreateRunWithHttpMessagesAsync(resourceGroup, dataFactoryName, pipelineName, parameters)

Eksiksiz bir örnek için bkz. Hızlı başlangıç: .NET SDK kullanarak veri fabrikası oluşturma.

Dekont

.NET SDK'sını kullanarak Azure İşlevleri, web hizmetlerinizden vb. işlem hatlarını çağırabilirsiniz.

JSON ile yürütmeyi tetikleme

Tetikleyiciler, işlem hattı çalıştırmasını yürütmenin bir diğer yoludur. Tetikleyiciler, bir işlem hattı çalıştırmasının başlatılması gereken zamanı belirleyen işlem birimini temsil eder. Şu anda hizmet üç tetikleyici türünü destekler:

  • Zamanlama tetikleyicisi: Bir işlem hattını duvar saati zamanlamasıyla çağıran bir tetikleyici.

  • Atlayan pencere tetikleyicisi: Durumunu koruyarak düzenli bir aralıkta çalışan bir tetikleyici.

  • Olay tabanlı tetikleyici: Bir olaya yanıt veren tetikleyicidir.

İşlem hatları ve tetikleyicilerin çoktan çoğa ilişkisi vardır (yuvarlanan zaman çerçevesi tetikleyicisi dışında). Birden çok tetikleyici tek bir işlem hattını başlatabilirken, bir tetikleyici birden fazla işlem hattını başlatabilir. Aşağıdaki tetikleyici tanımında, pipelines özelliği belirli bir tetikleyici tarafından tetiklenen işlem hattı listesini ifade eder. Özellik tanımı, işlem hattı parametrelerinin değerlerini içerir.

Temel tetikleyici tanımı

{
    "properties": {
        "name": "MyTrigger",
        "type": "<type of trigger>",
        "typeProperties": {...},
        "pipelines": [
            {
                "pipelineReference": {
                    "type": "PipelineReference",
                    "referenceName": "<Name of your pipeline>"
                },
                "parameters": {
                    "<parameter 1 Name>": {
                        "type": "Expression",
                        "value": "<parameter 1 Value>"
                    },
                    "<parameter 2 Name>": "<parameter 2 Value>"
                }
            }
        ]
    }
}

JSON ile tetikleyici zamanlama

Zamanlama tetikleyicisi, işlem hatlarını duvar saati zamanlamasıyla çalıştırır. Bu tetikleyici düzenli ve gelişmiş takvim seçeneklerini destekler. Örneğin, tetikleyici "haftalık" veya "Pazartesi 17:00 ve Perşembe 21:00" gibi aralıkları destekler. Zamanlama tetikleyicisi esnektir çünkü veri kümesi deseni belirsizdir ve tetikleyici zaman serisi ile zaman serisi olmayan veriler arasında ayrım yapmaz.

Zamanlama tetikleyicileri hakkında daha fazla bilgi için ve örnekler için bkz . Zamanlamaya göre işlem hattı çalıştıran bir tetikleyici oluşturma.

Zamanlama tetikleyicisi tanımı

Bir zamanlama tetikleyicisi oluştururken JSON tanımı kullanarak zamanlamayı ve yinelemeyi belirtirsiniz.

Zamanlama tetikleyicinizin bir işlem hattı çalıştırmasını başlatması için tetikleyici tanımındaki belirli işlem hattının işlem hattı başvurusunu ekleyin. İşlem hatları ve tetikleyiciler çoka çok ilişkisine sahiptir. Birden çok tetikleyici tek bir işlem hattını başlatabilir. Tek bir tetikleyici birden fazla işlem hattını başlatabilir.

{
  "properties": {
    "type": "ScheduleTrigger",
    "typeProperties": {
      "recurrence": {
        "frequency": <<Minute, Hour, Day, Week, Year>>,
        "interval": <<int>>, // How often to fire
        "startTime": <<datetime>>,
        "endTime": <<datetime>>,
        "timeZone": "UTC",
        "schedule": { // Optional (advanced scheduling specifics)
          "hours": [<<0-24>>],
          "weekDays": [<<Monday-Sunday>>],
          "minutes": [<<0-60>>],
          "monthDays": [<<1-31>>],
          "monthlyOccurrences": [
            {
              "day": <<Monday-Sunday>>,
              "occurrence": <<1-5>>
            }
          ]
        }
      }
    },
  "pipelines": [
    {
      "pipelineReference": {
        "type": "PipelineReference",
        "referenceName": "<Name of your pipeline>"
      },
      "parameters": {
        "<parameter 1 Name>": {
          "type": "Expression",
          "value": "<parameter 1 Value>"
        },
        "<parameter 2 Name>": "<parameter 2 Value>"
      }
    }
  ]}
}

Önemli

parameters özelliği, pipelines öğesinin zorunlu bir özelliğidir. İşlem hattınız herhangi bir parametre almasa bile, parameters özelliği için boş bir JSON tanımı eklemeniz gerekir.

Şemaya genel bakış

Aşağıdaki tabloda bir tetikleyicinin yinelenmesi ve zamanlanmasıyla ilgili ana şema öğelerinin genel bir özeti verilmiştir:

JSON özelliği Açıklama
startTime Bir tarih-saat değeri. Temel zamanlamalar için startTime özelliğinin değeri ilk oluşum için geçerli olur. Karmaşık zamanlamalar için tetikleyici belirtilen startTime değerinden önce başlamaz.
endTime Tetikleyicinin bitiş tarihi ve saati. Tetikleyici belirtilen bitiş tarihi ve saatinden sonra yürütülmez. Bu özelliğin değeri geçmişte olamaz.
timeZone Saat dilimi. Desteklenen saat dilimlerinin listesi için bkz . Zamanlamaya göre işlem hattı çalıştıran bir tetikleyici oluşturma.
recurrence Tetikleyici için yinelenme kurallarını belirten bir yinelenme nesnesi. recurrence nesnesi şu öğeleri destekler: frequency, interval, endTime, count ve schedule. Bir yinelenme nesnesi tanımlanırken frequency öğesi gereklidir. Yinelenme nesnesinin diğer öğeleri isteğe bağlıdır.
frequency Tetikleyicinin yineleneceği sıklık birimi. "Minute", "hour", "day", "week" ve "month" değerleri desteklenir.
interval frequency değerinin aralığını gösteren pozitif bir tamsayı. frequency değeri tetikleyicinin çalışma sıklığını belirler. Örneğin interval değeri 3, frequency değeri de "week" ise tetikleyici üç haftada bir yinelenir.
schedule Tetikleyicinin yinelenme zamanlaması. frequency değeri belirtilen bir tetikleyici, yinelenmesini bir yinelenme zamanlamasına göre değiştirir. schedule özelliği, yinelenme için dakika, saat, haftanın günü, ayın günü ve hafta numarası tabanlı değişiklikleri içerir.

Zamanlama tetikleyicisi örneği

{
  "properties": {
    "name": "MyTrigger",
    "type": "ScheduleTrigger",
    "typeProperties": {
      "recurrence": {
        "frequency": "Hour",
        "interval": 1,
        "startTime": "2017-11-01T09:00:00-08:00",
        "endTime": "2017-11-02T22:00:00-08:00"
      }
    },
    "pipelines": [{
        "pipelineReference": {
          "type": "PipelineReference",
          "referenceName": "SQLServerToBlobPipeline"
        },
        "parameters": {}
      },
      {
        "pipelineReference": {
          "type": "PipelineReference",
          "referenceName": "SQLServerToAzureSQLPipeline"
        },
        "parameters": {}
      }
    ]
  }
}

Şema varsayılanları, sınırlar ve örnekler

JSON özelliği Tür Zorunlu Default value Geçerli değerler Örnek
startTime Dize Evet Hiçbiri ISO 8601 tarih-saatleri "startTime" : "2013-01-09T09:30:00-08:00"
recurrence nesne Evet Hiçbiri Yinelenme nesnesi "recurrence" : { "frequency" : "monthly", "interval" : 1 }
interval numara No 1 1-1000 arası "interval":10
endTime Dize Evet Hiçbiri Gelecekteki bir zamanı temsil eden tarih-saat değeri "endTime" : "2013-02-09T09:30:00-08:00"
schedule nesne No Hiçbiri Zamanlama nesnesi "schedule" : { "minute" : [30], "hour" : [8,17] }

startTime özelliği

Aşağıdaki tabloda startTime özelliğinin bir tetikleyici çalıştırmasını nasıl denetlediği gösterilmektedir:

startTime değeri Zamanlama olmadan yinelenme Zamanlama ile yinelenme
Geçmişe ait bir başlangıç zamanı Başlangıç zamanından sonraki ilk gelecek yürütme zamanını hesaplar ve bu zamanda çalıştırır.

Son yürütme zamanına göre hesaplanan sonraki yürütmeleri çalıştırır.

Bu tablonun altındaki örneğe bakın.
Tetikleyici belirtilen başlangıç zamanından önce başlamaz. İlk yinelenme, başlangıç zamanından hesaplanan zamanlamaya göre gerçekleştirilir.

Sonraki yürütmeleri yinelenme zamanlamasına göre çalıştırır.
Geleceğe ait veya şimdiki zamana denk gelen başlangıç zamanı Belirtilen başlangıç zamanında bir kez çalışır.

Son yürütme zamanına göre hesaplanan sonraki yürütmeleri çalıştırır.
Tetikleyici belirtilen başlangıç zamanından önce başlamaz. İlk yinelenme, başlangıç zamanından hesaplanan zamanlamaya göre gerçekleştirilir.

Sonraki yürütmeleri yinelenme zamanlamasına göre çalıştırır.

Başlangıç zamanı geçmişte olduğunda ve bir yinelenme olmasına rağmen zamanlama olmadığında neler olacağını gösteren bir örneğe bakalım. Geçerli zamanın 2017-04-08 13:00, başlangıç zamanının 2017-04-07 14:00 ve yinelemenin iki günde bir olduğunu varsayalım. (Yinelenme değeri frequency özelliği "day" ve interval özelliği 2 olarak ayarlanarak tanımlanır.) startTime değerinin geçmişte olduğuna ve geçerli saatten önce oluştuğuna dikkat edin.

Bu şartlar altında ilk yürütme zamanı 09-04-2017'de saat 14:00'da olacaktır. Zamanlayıcı altyapısı çalıştırma yinelenmelerini başlangıç zamanından itibaren hesaplar. Geçmişteki örnekler dikkate alınmaz. Altyapı gelecekte gerçekleşen bir sonraki örneği kullanır. Bu senaryoda başlangıç zamanı 07-04-2017, saat 14:00 olur. Sonraki örnek bu zamandan iki gün sonrası olan 09-04-2017 saat 14:00'a denk gelir.

startTime ister 05-04-2017 14:00 isterse 01-04-2017 14:00 olsun, ilk yürütme zamanı değişmez. İlk yürütme sonrasındaki yürütmeler zamanlama kullanılarak hesaplanır. Dolayısıyla, izleyen yürütmeler 11-04-2017 14:00, sonra 13-04-2017 14:00, sonra 15-04-2017 14:00, vb. olur.

Son olarak, bir tetikleyici için zamanlamada saatler veya dakikalar ayarlanmamışsa, ilk yürütmenin saatleri veya dakikaları varsayılan olarak kullanılır.

schedule özelliği

Tetikleyici yürütmelerinin sayısını sınırlandırmak için schedule özelliğini kullanabilirsiniz. Örneğin, aylık sıklığa sahip bir tetikleyici 31. günde çalışacak şekilde zamanlanırsa, tetikleyici yalnızca otuz birinci günü olan aylarda çalışır.

Ayrıca, tetikleyici yürütmelerinin sayısını artırmak için de schedule kullanabilirsiniz. Örneğin, aylık sıklığa sahip olan ve ayın 1. ve 2. günlerinde çalışacak şekilde zamanlanan bir tetikleyici, ayda bir kez çalışmak yerine ayın birinci ve ikinci günlerinde çalışır.

Birden çok zamanlama öğesi belirtilirse değerlendirme sırası en büyükten en küçük zamanlama ayarına kadardır: hafta numarası, ay günü, hafta içi, saat, dakika.

Aşağıdaki tabloda schedule öğeleri ayrıntılı bir şekilde açıklanmıştır:

JSON öğesi Açıklama Geçerli değerler
minutes Tetikleyicinin çalıştığı dakika değeri. - Tamsayı
- Tamsayı dizisi
hours Tetikleyicinin çalıştığı saat değeri. - Tamsayı
- Tamsayı dizisi
weekDays Tetikleyicinin çalıştığı hafta günleri. Bu değer yalnızca haftalık bir sıklıkta belirtilebilir.
- Pazartesi
- Salı
- Çarşamba
- Perşembe
- Cuma
- Cumartesi
- Pazar
- Gün değerleri dizisi (en fazla dizi boyutu 7’dir)

Gün değerleri büyük/küçük harfe duyarlı değildir
monthlyOccurrences Tetikleyicinin çalıştığı ay günleri. Bu değer yalnızca aylık bir sıklık ile belirtilebilir. - monthlyOccurrence nesnelerinin dizisi:{ "day": day, "occurrence": occurrence }
- day özniteliği, tetikleyicinin çalıştığı gündür. Örneğin, day değeri {Sunday} olan bir monthlyOccurrences özelliği, ayın her Pazar günü anlamına gelir. day özniteliği gereklidir.
- occurrence özniteliği, ay içinde belirtilen day değerinin gerçekleşmesidir. Örneğin, day ve occurrence değerleri {Sunday, -1} olan bir monthlyOccurrences özelliği, ayın son Pazar günü anlamına gelir. occurrence özniteliği isteğe bağlıdır.
monthDays Tetikleyicinin çalıştığı ay günü. Bu değer yalnızca aylık bir sıklık ile belirtilebilir. - Herhangi bir değer <= -1 ve >= -31
- Herhangi bir değer >= 1 ve <= 31
- Değer dizisi

Atlayan pencere tetikleyicisi

Atlayan pencere tetikleyicileri, durumu korurken belirtilen bir başlangıç zamanından itibaren periyodik bir zaman aralığında başlatılan bir tetikleyici türüdür. Atlayan pencereler sabit boyutlu, çakışmayan ve bitişik zaman aralıkları dizisidir.

Atlayan pencere tetikleyicileri hakkında daha fazla bilgi için ve örnekler için bkz . Atlayan pencere tetikleyicisi oluşturma.

Tetikleyici yineleme zamanlaması örnekleri

Bu bölümde yineleme zamanlaması örnekleri sağlanır. schedule nesnesine ve onun öğelerine odaklanılmıştır.

Örneklerde aralık değerinin 1 olduğu ve sıklık değerinin zamanlama tanımına göre doğru olduğu varsayılır. Örneğin, hem "day" şeklinde bir frequency değeriniz hem de schedule nesnesinde bir monthDays değişikliğiniz olamaz. Bu tür kısıtlamalar önceki bölümde verilen tabloda açıklanmıştır.

Örnek Açıklama
{"hours":[5]} Her gün 05.00'te çalıştır.
{"minutes":[15], "hours":[5]} Her gün 05.15'te çalıştır.
{"minutes":[15], "hours":[5,17]} Her gün 05.15 ve 17.15’te çalıştır.
{"minutes":[15,45], "hours":[5,17]} Her gün 05.15, 05.45, 17.15 ve 17.45’te çalıştır.
{"minutes":[0,15,30,45]} 15 dakikada bir çalıştır.
{hours":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]} Saatte bir çalıştır.

Bu tetikleyici saatte bir çalışır. startTime değeri belirtilirse dakikalar bu değer tarafından denetlenir. Değer belirtilmezse, dakikalar oluşturma zamanı tarafından denetlenir. Örneğin başlangıç zamanı veya oluşturma zamanı (hangisi geçerliyse) 12:25 ise tetikleyici 00.25, 01.25, 02.25, ... ve 23.25 saatlerinde çalışır.

Bu zamanlama, frequency değeri "hour", interval değeri 1 olan ve schedule olmayan bir tetikleyiciye sahip olmakla eşdeğerdir. Bu zamanlama farklı frequency ve interval değerleriyle kullanılarak başka tetikleyiciler oluşturulabilir. Örneğin, frequency değeri "day" olduğunda her gün çalışan zamanlama, frequency değeri "month" olduğunda yalnızca ayda bir kez çalışır.
{"minutes":[0]} Her saat başı çalıştır.

Bu tetikleyici 12.00, 01.00, 02.00 gibi bir saatte başlayarak saat başı çalışır.

Bu zamanlama, frequency değeri "hour" olup startTime değeri sıfır dakika olan ve schedule değeri olmayıp frequency değeri "day" olan bir tetikleyiciye eşdeğerdir. frequency değeri "week" veya "month" olursa zamanlama yalnızca haftada bir gün veya ayda bir gün çalışır.
{"minutes":[15]} Her saat başını 15 dakika geçe çalıştır.

Bu tetikleyici, 00.15, 01.15, 02.15, vb. bir saatte başlayıp 23.15’te bitecek şekilde her saat başını 15 dakika geçe çalışır.
{"hours":[17], "weekDays":["saturday"]} Her hafta Cumartesi günleri saat 17.00'de çalıştır.
{"hours":[17], "weekDays":["monday", "wednesday", "friday"]} Her hafta Pazartesi, Çarşamba ve Cuma günleri saat 17.00'de çalıştır.
{"minutes":[15,45], "hours":[17], "weekDays":["monday", "wednesday", "friday"]} Her hafta Pazartesi, Çarşamba ve Cuma günleri saat 17.15 ve 17.45'te çalıştır.
{"minutes":[0,15,30,45], "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} Haftanın her günü 15 dakikada bir çalıştır.
{"minutes":[0,15,30,45], "hours": [9, 10, 11, 12, 13, 14, 15, 16] "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} Haftanın her günü 09.00 ile 16.45 arasında 15 dakikada bir çalıştır.
{"weekDays":["tuesday", "thursday"]} Salı ve Perşembe günleri belirtilen başlangıç saatinde çalıştır.
{"minutes":[0], "hours":[6], "monthDays":[28]} Her ayın yirmi sekizinci gününde saat 06.00'da çalıştır (frequency değerinin "month" olduğu kabul edilir).
{"minutes":[0], "hours":[6], "monthDays":[-1]} Ayın son günü saat 06.00'da çalıştır.

Bir tetikleyiciyi ayın son gününde çalıştırmak için 28, 29, 30 veya 31 yerine -1 değerini kullanın.
{"minutes":[0], "hours":[6], "monthDays":[1,-1]} Her ayın ilk ve son günü saat 06.00'da çalıştır.
{monthDays":[1,14]} Her ayın ilk ve on dördüncü gününde belirtilen başlangıç zamanında çalıştır.
{"minutes":[0], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1}]} Her ayın ilk Cuma günü saat 05.00'te çalıştır.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1}]} Her ayın ilk Cuma gününde belirtilen başlangıç zamanında çalıştır.
{"monthlyOccurrences":[{"day":"friday", "occurrence":-3}]} Her ay, ayın sondan üçüncü Cuma gününde belirtilen zamanda çalıştır.
{"minutes":[15], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} Her ayın ilk ve son Cuma günü saat 05.15'te çalıştır.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} Her ayın ilk ve son Cuma günü belirtilen başlangıç zamanında çalıştır.
{"monthlyOccurrences":[{"day":"friday", "occurrence":5}]} Her ayın beşinci Cuma günü belirtilen başlangıç zamanında çalıştır.

Ayın beşinci Cuma günü yoksa, işlem hattı çalıştırılmaz. Tetikleyiciyi ayın son Cuma gününde çalıştırmak istiyorsanız occurrence değeri için 5 yerine -1 yazın.
{"minutes":[0,15,30,45], "monthlyOccurrences":[{"day":"friday", "occurrence":-1}]} Ayın son Cuma günü 15 dakikada bir çalıştır.
{"minutes":[15,45], "hours":[5,17], "monthlyOccurrences":[{"day":"wednesday", "occurrence":3}]} Her ayın üçüncü Çarşamba günü 05.15, 05.45, 17.15 ve 17.45’te çalıştır.

Tetikleyici türü karşılaştırması

Hem atlayan pencere tetikleyicisi hem de zamanlama tetikleyicisi zaman sinyalleriyle çalışıyor. Bunların birbirinden farkı nedir?

Dekont

Atlayan pencere tetikleyici çalıştırması , tetiklenen işlem hattı çalıştırmasının tamamlanmasını bekler. Çalıştırma durumu, tetiklenen işlem hattı çalıştırmasının durumunu yansıtır. Örneğin, tetiklenen işlem hattı çalıştırması iptal edilirse ilgili atlayan pencere tetikleyici çalıştırması iptal edildi olarak işaretlenir. Bu, işlem hattı çalıştırması başlatıldıktan sonra başarılı olarak işaretlenen zamanlama tetikleyicisinin "tetikle ve unut" davranışından farklıdır.

Aşağıdaki tabloda atlayan pencere tetikleyicisi ile zamanlama tetikleyicisinin karşılaştırması sağlanmıştır:

Ürün Atlayan pencere tetikleyicisi Tetikleyiciyi zamanlama
Doldurma senaryoları Destekleniyor. Geçmişteki aralıklar için işlem hattı çalıştırmaları zamanlanabilir. Desteklenmiyor. İşlem hattı çalıştırmaları yalnızca geçerli zamandan sonraki ve gelecekteki zaman dönemlerinde yürütülebilir.
Güvenilirlik %100 güvenilirlik. Belirtilen bir başlangıç tarihinden itibaren boşluk olmayacak şekilde tüm aralıklar için işlem hattı çalıştırması zamanlanabilir. Daha az güvenilir.
Yeniden deneme özelliği Destekleniyor. Başarısız işlem hattı çalıştırmaları varsayılan olarak 0 yeniden deneme ilkesine veya kullanıcı tarafından tetikleyici tanımında belirtilen bir ilkeye sahiptir. İşlem hattı çalıştırmaları eşzamanlılık/sunucu/azaltma sınırları nedeniyle başarısız olduğunda otomatik olarak yeniden denemeler (yani durum kodları 400: Kullanıcı Hatası, 429: Çok fazla istek ve 500: İç Sunucu hatası). Desteklenmiyor.
Eşzamanlılık Destekleniyor. Kullanıcılar tetikleyicinin eş zamanlılık sınırlarını açıkça ayarlayabilir. 1 ile 50 arasında eş zamanlı tetikleyici işlem hattı çalıştırmasına izin verir. Desteklenmiyor.
Sistem değişkenleri ve @trigger().startTimeile @trigger().scheduledTime birlikte, WindowStart ve WindowEnd sistem değişkenlerinin kullanımını da destekler. Kullanıcılar, tetikleyici tanımında tetikleyici sistem değişkenleri olarak trigger().outputs.windowStartTime ve trigger().outputs.windowEndTime değişkenine erişebilir. Değerler sırasıyla aralık başlangıç zamanı ve aralık bitiş zamanı olarak kullanılır. Örneğin, saat başı çalışan bir atlayan pencere tetikleyicisi için 01.00 ile 02.00 arası aralığın tanımı trigger().outputs.windowStartTime = 2017-09-01T01:00:00Z ve trigger().outputs.windowEndTime = 2017-09-01T02:00:00Z şeklinde olur. Yalnızca varsayılan @trigger().scheduledTime ve @trigger().startTime değişkenleri destekler.
İşlem hattı-tetikleyici ilişkisi Bire bir ilişkileri destekler. Yalnızca bir işlem hattı tetiklenebilir. Çoka çok ilişkileri destekler. Birden çok tetikleyici tek bir işlem hattını başlatabilir. Tek bir tetikleyici birden fazla işlem hattını başlatabilir.

Olay tabanlı tetikleyici

Olay tabanlı tetikleyici, bir olaya yanıt olarak işlem hatlarını çalıştırır. Olay tabanlı tetikleyicilerin iki çeşidi vardır.

  • Depolama olay tetikleyicisi, bir dosyanın gelmesi veya Azure Blob Depolama hesabındaki bir dosyanın silinmesi gibi bir Depolama hesabında gerçekleşen olaylara karşı işlem hattı çalıştırır.
  • Özel olay tetikleyicisi Event Grid'de özel makaleleri işler ve işler

Olay tabanlı tetikleyiciler hakkında daha fazla bilgi için bkz. Depolama Olay Tetikleyicisi ve Özel Olay Tetikleyicisi.

Aşağıdaki öğreticilere bakın: