Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
KAPSAMINDA: Azure Data Factory
Azure Synapse Analytics
İpucu
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ı olacaktır. Her işlem hattı çalışması benzersiz bir işlem hattı kimliğine sahiptir. Çalıştırma kimliği, belirli bir pipeline çalıştırmasını benzersiz bir şekilde tanımlayan bir GUID'tir.
İşlem hattı çalıştırmaları, genelde işlem hattında tanımladığınız parametrelere bağımsız değişkenlerin iletilmesiyle başlatılır. İş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.
İşlem hattını manuel olarak tetiklemeyi seçerseniz, anında çalışmaya başlar. 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.
Tetikleyici türünü seçmenize olanak sağlayan tetikleyici yapılandırma penceresini görürsünüz.
Zamanlanmış, atlayan pencere, depolama olayı ve özel olay tetikleyicileri hakkında daha fazla bilgiyi aşağıda bulabilirsiniz.
El ile yürütme
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.
Diğer API'lerle/SDK'larla el ile yürütme
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ı
.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.
Not
.NET SDK'sını kullanarak Azure İşlevleri, web hizmetlerinizden vb. işlem hatlarını çağırabilirsiniz.
Azure PowerShell
Not
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ü gövdesinde iletirsiniz. .NET SDK, Azure PowerShell ve Python SDK’da, çağrıya bağımsız değişken olarak iletilen bir sözlük içerisindeki değerleri 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.
Python SDK'sı
Eksiksiz bir örnek için bkz . Hızlı Başlangıç: Python kullanarak veri fabrikası ve işlem hattı oluşturma
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.
Tetikleyici Türleri
Tetikleyiciler, bir işlem hattını çalıştırmanın alternatif bir 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.
Devirli pencere tetikleyicisi: Durumunu koruyarak periyodik aralıklarla çalışan bir tetikleyici.
Olay tabanlı tetikleyici: Bir olaya yanıt veren tetikleyicidir.
İşlem hatları ve tetikleyiciler, (sabit zaman aralıklı tetikleyici hariç) çoklu ilişkiler kurabilir. 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>"
}
}
]
}
}
Tetikleyiciyi 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ı tetiklemek için, tetikleyici tanımına belirli işlem hattının 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>>,
"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 |
---|---|
başlangıçZamanı | 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. |
bitiş Zamanı | 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) | Saat dilimi. Desteklenen saat dilimlerinin listesi için bkz Bir zamanlamaya göre işlem hattı çalıştıran bir tetikleyici oluşturma. |
yinelenme | 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. |
frekans | Tetikleyicinin yineleneceği sıklık birimi. "Minute", "hour", "day", "week" ve "month" değerleri desteklenir. |
ara | 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. |
program | 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. |
Not
Gün ışığından yararlanma saati uygulanan saat dilimleri için, belirli zaman aralıkları Günler veya üzerinde ayarlandığında, tetikleme zamanı yılda iki kez yapılan değişikliğe otomatik olarak uyum sağlar. Yaz saati uygulamasından çıkmak için, yaz saati uygulamasını gözlemlemeyen bir saat dilimi seçin, örneğin UTC.
Yaz saati ayarlaması, yalnızca yineleme Günler veya daha fazla olarak ayarlanmış olan bir tetikleyici için gerçekleşir. Tetikleyici Saatler veya Dakikalar frekansına ayarlandığında, düzenli aralıklarla çalışmaya devam eder.
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 | Varsayılan değer | Geçerli değerler | Örnek |
---|---|---|---|---|---|
başlangıçZamanı | String | Evet | Hiçbiri | ISO 8601 tarih-saatleri | "startTime" : "2013-01-09T09:30:00-08:00" |
yinelenme | nesne | Evet | Hiçbiri | Yinelenme nesnesi | "recurrence" : { "frequency" : "monthly", "interval" : 1 } |
ara | sayı | Hayır | 1 | 1-1000 arası | "interval":10 |
bitiş Zamanı | String | Evet | Hiçbiri | Gelecekteki bir zamanı temsil eden tarih-saat değeri | "endTime" : "2013-02-09T09:30:00-08:00" |
program | nesne | Hayır | 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 | Programlı yinelenme |
---|---|---|
Başlangıç zamanı geçmişte | 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, yineleme zamanlamasına göre yapar. |
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, yineleme zamanlamasına göre yapar. |
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 sıklık özelliği "gün" ve aralık özelliği 2 olarak ayarlanarak tanımlanır.) Başlangıç zamanı 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ı motoru yürütme oluşumlarını başlangıç zamanından itibaren hesaplar. Geçmişteki örnekler dikkate alınmaz. Motor gelecekte gerçekleşecek olan 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, sonraki yürütmeler sırasıyla, 11-04-2017 tarihinde saat 14:00'te, 13-04-2017 tarihinde saat 14:00'te, 15-04-2017 tarihinde saat 14:00'te ve bu şekilde devam eder.
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.
zamanlama ö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 |
---|---|---|
dakika | Tetikleyicinin çalıştığı saatin dakikaları. | - Tamsayı - Tamsayı dizisi |
saatler | Tetikleyicinin çalıştığı günün saatleri. | - Tamsayı - Tamsayı dizisi |
hafta içi | Tetikleyicinin çalışacağı 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 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 olan bir {Sunday} ö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 olan bir {Sunday, -1} özelliği, ayın son Pazar günü anlamına gelir.
occurrence özniteliği isteğe bağlıdır. |
ayGün | 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 |
Dönen pencere tetikleyicisi
Fırlayan pencere tetikleyicileri, durumu koruyarak belirtilen bir başlangıç zamanından itibaren periyodik bir zaman aralığında çalışan bir tetikleyici türüdür. Yuvarlanan pencereler sabit boyutlu, çakışmayan ve bitişik zaman aralıklarından oluşan bir dizidir.
Tumbling window tetikleyicileri hakkında daha fazla bilgi ve örnekler için Tumbling window tetikleyici oluşturma bölümüne bakın.
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 saat 05.00'te koş. |
{"minutes":[15], "hours":[5]} |
Her gün sabah 5:15'te koş. |
{"minutes":[15], "hours":[5,17]} |
Her gün saat 05.15 ve 17.15’te koş. |
{"minutes":[15,45], "hours":[5,17]} |
Her gün saat 05.15, 05.45, 17.15 ve 17.45’te çalış. |
{"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 "month" olduğunda zamanlama yalnızca ayda bir kez çalışır, frequency değeri "day" olduğunda ise her gün çalışır. |
{"minutes":[0]} |
Her saat başında çalışacak şekilde ayarla. Bu tetikleyici, 00:00, 01:00, 02:00 gibi saatlerde başlayarak her 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şında 15 dakika geçe başlat. 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 saat 17.00'de başlar. |
{"hours":[17], "weekDays":["monday", "wednesday", "friday"]} |
Her hafta pazartesi, çarşamba ve cuma günleri saat 17.00'de koşu yap. |
{"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 gerçekleştirilir. |
{"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 başlat. 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 koş. |
{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ılı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ü belirtilen başlangıç saatinde çalıştırılacak. |
{"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 gerçekleşir. |
{"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. Bir ayda beşinci Cuma yoksa, boru 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ü saat 05.15, 05.45, 17.15 ve 17.45’te çalışır. |
Olay tabanlı tetikleyici
Olay tabanlı tetikleyici, bir olaya yanıt olarak işlem hatlarını çalıştırır. Davranışsal olarak, olay tabanlı bir tetikleyiciyi durdurup başlatırsanız, eski tetikleyici desenine devam eder ve bu da işlem hattının istenmeyen şekilde tetiklenmesine neden olabilir. Bu durumda, yeni olay tabanlı tetikleyiciyi silip oluşturmanız gerekir. Yeni tetikleyici, geçmiş olmadan yeni başlar. 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 depolama hesabında gerçekleşen olaylara karşı işlem hattı çalıştırır.
- Özel olay tetikleyicisi, Event Grid'de özel içerikleri işler ve yönetir.
Olay tabanlı tetikleyiciler hakkında daha fazla bilgi için bkz . Depolama Olay Tetikleyicisi ve Özel Olay Tetikleyicisi.
Tetikleyici türü karşılaştırması
Hem kayan pencere tetikleyicisi hem de zamanlama tetikleyicisi zaman sinyalleriyle çalışıyor. Bunların birbirinden farkı nedir?
Not
Tetikleyici pencerenin çalıştırılması, tetiklenen işlem hattı çalışmasının tamamlanmasını bekler. Çalıştırma durumu, tetiklenen işlem hattındaki çalıştırmanın durumunu yansıtır. Örneğin, tetiklenen bir işlem hattı çalıştırması iptal edilirse, buna karşılık gelen atlamalı pencere tetikleyici çalıştırması da iptal edildi olarak işaretlenir. Bu, işlem hattı çalıştırması başlatıldıktan sonra başarılı olarak işaretlenen zamanlayıcı tetikleyicisinin "ateşle ve unut" davranışından farklıdır.
Aşağıdaki tabloda dönen pencere tetikleyicisi ile program tetikleyicisinin karşılaştırması verilmiştir.
Madde | Dönen pencere tetikleyicisi | Tetikleyiciyi zamanlama |
---|---|---|
Doldurma senaryoları | Destekleniyor. Geçmişteki zaman dilimleri ile ilgili işlem hattı çalışmaları 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 kesintisiz bir şekilde tüm aralıklar için boru hattı çalışması 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/sınırlandırma sınırları nedeniyle başarısız olduğunda otomatik olarak yeniden dener (yani, durum kodları 400: kullanıcı hatası, 429: çok fazla istek ile 500: iç 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ı tetiklenen işlem hattı çalıştırılmasına izin verir. | Desteklenmiyor. |
Sistem değişkenleri | ve @trigger().scheduledTimeile @trigger().startTime 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ı ve tetikleyici ilişkisi | Bire bir ilişkileri destekler. Yalnızca bir işlem hattı etkinleştirilebilir. | Birçok-çoklu 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. |
İlgili içerik
Aşağıdaki eğitimlere göz atın.