Membuat pemicu yang menjalankan alur pada jadwal

BERLAKU UNTUK:Azure Data Factory Azure Synapse Analytics

Tip

Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!

Artikel ini menyediakan informasi tentang pemicu jadwal dan langkah-langkah untuk membuat, memulai, dan memantau pemicu jadwal. Untuk jenis pemicu lainnya, lihat Eksekusi dan pemicu alur.

Saat membuat pemicu jadwal, Anda menentukan jadwal (tanggal mulai, pengulangan, tanggal selesai, dll.) untuk pemicu, dan mengaitkan dengan alur. Alur dan pemicu memiliki hubungan banyak ke banyak. Beberapa pemicu dapat memulai satu alur. Satu pemicu dapat memulai beberapa alur.

Bagian berikut ini menyediakan langkah-langkah untuk membuat pemicu jadwal dengan cara yang berbeda.

Pengalaman portal Azure Data Factory dan Synapse

Anda dapat membuat pemicu jadwal untuk menjadwalkan eksekusi alur secara berkala (per jam, per hari, dan sebagainya).

Catatan

Untuk panduan lengkap membuat alur dan pemicu jadwal, yang mengaitkan pemicu dengan alur, dan menjalankan serta memantau alur, lihat Mulai cepat: membuat pabrik data menggunakan antarmuka pengguna Data Factory.

  1. Beralih ke tab Edit di Data Factory atau tab Integrasikan di Azure Synapse.


  1. Pilih Pemicu pada menu, lalu pilih Baru/Edit.

    New trigger menu

  2. Pada halaman Tambahkan Pemicu, pilih Pilih pemicu..., lalu pilih +Baru.

    Add triggers - new trigger

  3. Pada halaman Pemicu Baru, lakukan langkah-langkah berikut ini:

    1. Konfirmasikan bahwa Jadwal dipilih untuk Jenis.

    2. Tentukan tanggal mulai pemicu untuk Tanggal Mulai. Ini disetel ke tanggal waktu saat ini di Waktu Universal Terkoordinasi (UTC) secara default.

    3. Tentukan zona waktu di tempat pemicu akan dibuat. Pengaturan zona waktu akan berlaku untuk Tanggal Mulai, Tanggal Selesai, dan Waktu Eksekusi Jadwal dalam opsi pengulangan Tingkat Lanjut. Mengubah pengaturan Zona Waktu tidak akan secara otomatis mengubah tanggal mulai Anda. Pastikan Tanggal Mulai sudah benar di zona waktu yang ditentukan. Harap dicatat bahwa Waktu Eksekusi Pemicu Terjadwal akan dianggap pasca Tanggal Mulai (Pastikan Tanggal Mulai setidaknya lebih cepat 1 menit daripada waktu Eksekusi lainnya, apabila tidak ia akan memicu alur dalam pengulangan berikutnya).

      Catatan

      Untuk zona waktu yang mengalami pergeseran siang hari, waktu pemicu akan menyesuaikan secara otomatis pada perubahan sebanyak dua kali setahun, jika pengulangan diatur ke Hari atau di atasnya. Untuk memilih keluar dari perubahan pergeseran siang hari, silakan pilih zona waktu yang tidak mengikuti waktu musim panas, misalnya UTC

      Penting

      Penyesuaian pergeseran siang hari hanya terjadi untuk pemicu dengan pengulangan yang diatur ke Hari atau lebih tinggi. Jika pemicu diatur ke Frekuensi Jam atau Menit, ia akan terus aktif secara teratur.

    4. Tentukan Pengulangan untuk pemicunya. Pilih salah satu nilai dari daftar menurun (Setiap menit, Per Jam, Harian, Mingguan, dan Bulanan). Masukkan pengali dalam kotak teks. Misalnya, jika Anda ingin pemicu berjalan sekali selama setiap 15 menit, Anda memilih Setiap Menit, dan memasukkan 15 di kotak teks.

    5. Di Pengulangan, jika Anda memilih "Hari, Minggu, atau Bulan" dari drop-down, Anda dapat menemukan "Opsi pengulangan lanjutan". Advanced recurrence options of Day(s), Week(s) or Month(s)

    6. Untuk menentukan waktu tanggal selesai, pilih Tentukan Tanggal Selesai, dan tentukan Berakhir Pada, lalu pilih OK. Ada biaya yang terkait di setiap eksekusi alur. Jika Anda menguji, Anda mungkin ingin memastikan bahwa alur hanya dipicu beberapa kali. Namun, pastikan ada cukup waktu bagi alur untuk dijalankan di antara waktu penerbitan dan waktu selesai. Pemicu mulai berlaku hanya setelah Anda menerbitkan solusi, bukan saat Anda menyimpan pemicu di antarmuka pengguna.

      Trigger settings

      Trigger settings for End Date

  4. Di jendela Pemicu Baru, pilih Ya di opsi Diaktifkan, lalu pilih OK. Anda dapat menggunakan kotak centang ini untuk menonaktifkan pemicunya nanti.

    Trigger settings - Next button

  5. Di jendela Pemicu Baru, tinjau pesan peringatan, lalu pilih OK.

    Trigger settings - Finish button

  6. Pilih Terbitkan semua untuk menerbitkan perubahan. Sampai Anda menerbitkan perubahan, pemicu tidak mulai memicu eksekusi alur.

    Publish button

  7. Beralih ke tab Alur yang berjalan di sebelah kiri, lalu pilih Refresh untuk merefresh daftar. Anda akan melihat alur berjalan dipicu oleh pemicu terjadwal. Perhatikan nilai di kolom Dipicu oleh. Jika Anda menggunakan opsi Memicu Sekarang, Anda akan melihat pemicu manual berjalan dalam daftar.


  1. Beralih ke tampilan Pemicu Berjalan \ Jadwal.


Azure PowerShell

Catatan

Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Bagian ini memperlihatkan kepada Anda cara menggunakan Azure PowerShell untuk membuat, memulai, dan memantau pemicu jadwal. Untuk melihat sampel ini berfungsi, pertama-tama pergi ke Mulai Cepat: Membuat pabrik data menggunakan Azure PowerShell. Kemudian, tambahkan kode berikut ke metode utama untuk membuat dan memulai pemicu jadwal yang berjalan setiap 15 menit. Pemicu dikaitkan dengan alur bernama Adfv2QuickStartPipeline yang Anda buat sebagai bagian dari Mulai Cepat.

Prasyarat

Kode Sampel

  1. Buat file JSON bernama MyTrigger.json di folder C:\ADFv2QuickStartPSH\ dengan konten berikut:

    Penting

    Sebelum Anda menyimpan file JSON, atur nilai elemen startTime ke waktu UTC saat ini. Atur nilai elemen endTime menjadi satu jam melewati waktu UTC saat ini.

    {
        "properties": {
            "name": "MyTrigger",
            "type": "ScheduleTrigger",
            "typeProperties": {
                "recurrence": {
                    "frequency": "Minute",
                    "interval": 15,
                    "startTime": "2017-12-08T00:00:00Z",
                    "endTime": "2017-12-08T01:00:00Z",
                    "timeZone": "UTC"
                }
            },
            "pipelines": [{
                    "pipelineReference": {
                        "type": "PipelineReference",
                        "referenceName": "Adfv2QuickStartPipeline"
                    },
                    "parameters": {
                        "inputPath": "adftutorial/input",
                        "outputPath": "adftutorial/output"
                    }
                }
            ]
        }
    }
    

    Dalam cuplikan JSON:

    • Elemen jenis pemicu diatur ke "ScheduleTrigger".

    • Elemen frekuensi diatur ke "Menit" dan elemen interval diatur ke 15. Dengan demikian, pemicu menjalankan alur setiap 15 menit antara waktu mulai dan berakhir.

    • Elemen timeZone menentukan zona waktu tempat pemicu dibuat. Pengaturan ini mempengaruhi startTime dan endTime.

    • Elemen endTime adalah satu jam setelah nilai elemen startTime. Dengan demikian, pemicu menjalankan alur 15 menit, 30 menit, dan 45 menit setelah waktu mulai. Jangan lupa untuk memperbarui waktu mulai ke waktu UTC saat ini, dan waktu selesai hingga satu jam melewati waktu mulai.

      Penting

      Untuk zona waktu UTC, Waktu mulai dan Waktu selesai harus mengikuti format 'yyyy-MM-ddTHH:mm:ssZ', sedangkan untuk zona waktu lainnya, Waktu mulai dan waktu Selesai ikuti 'yyyy-MM-ddTHH:mm:ss'.

      Sesuai standar ISO 8601, akhiran Z ke tanda waktu menandai tanggalwaktu ke zona waktu UTC, dan merender bidang zona waktu yang tidak berguna. Sementara akhiran Z yang hilang untuk zona waktu UTC akan mengakibatkan kesalahan pada aktivasi pemicu.

    • Pemicu dikaitkan dengan alur Adfv2QuickStartPipeline. Untuk mengaitkan beberapa alur dengan pemicu, tambahkan lebih banyak bagian pipelineReference.

    • Alur di Mulai Cepat mengambil dua nilai: parameterinputPath dan outputPath. Dan Anda meneruskan nilai untuk parameter ini dari pemicu.

  2. Buat pemicu dengan menggunakan cmdlet Set-AzDataFactoryV2Trigger:

    Set-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger" -DefinitionFile "C:\ADFv2QuickStartPSH\MyTrigger.json"
    
  3. Konfirmasikan bahwa status pemicu Dihentikan dengan menggunakan cmdlet Get-AzDataFactoryV2Trigger:

    Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  4. Mulai pemicu dengan menggunakan cmdlet Set-AzDataFactoryV2Trigger:

    Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  5. Konfirmasikan bahwa status pemicu Dimulai dengan menggunakan cmdlet Get-AzDataFactoryV2Trigger:

    Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  6. Jalankan pemicu di Azure PowerShell dengan menggunakan cmdlet Get-AzDataFactoryV2TriggerRun. Untuk mendapatkan informasi tentang pemicu berjalan, jalankan perintah berikut secara berkala. Perbarui nilai TriggerRunStartedAfter dan TriggerRunStartedBefore agar sesuai dengan nilai dalam definisi pemicu Anda:

    Get-AzDataFactoryV2TriggerRun -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -TriggerName "MyTrigger" -TriggerRunStartedAfter "2017-12-08T00:00:00" -TriggerRunStartedBefore "2017-12-08T01:00:00"
    

    Catatan

    Waktu pemicu dari pemicu Jadwal ditentukan dalam tanda waktu UTC. TriggerRunStartedAfter dan TriggerRunStartedBefore juga mengharapkan tanda waktu UTC

    Untuk memantau pemicu berjalan dan alur berjalan di portal Microsoft Azure, lihat Memantau alur berjalan.

Azure CLI

Bagian ini menunjukkan kepada Anda cara menggunakan Azure CLI untuk membuat, memulai, dan memantau pemicu jadwal. Untuk melihat sampel ini bekerja, pertama melalui Mulai Cepat: Buat Azure Data Factory menggunakan Azure CLI. Kemudian, ikuti langkah-langkah di bawah ini untuk membuat dan memulai pemicu jadwal yang berjalan setiap 15 menit. Pemicu dikaitkan dengan alur bernama Adfv2QuickStartPipeline yang Anda buat sebagai bagian dari Mulai Cepat.

Prasyarat

Kode Sampel

  1. Di direktori kerja Anda, buat file JSON bernama MyTrigger.json dengan properti pemicu. Untuk contoh ini gunakan konten berikut:

    Penting

    Sebelum Anda menyimpan file JSON, atur nilai elemen startTime ke waktu UTC saat ini. Atur nilai elemen endTime menjadi satu jam melewati waktu UTC saat ini.

    {
        "name": "MyTrigger",
        "type": "ScheduleTrigger",
        "typeProperties": {
            "recurrence": {
                "frequency": "Minute",
                "interval": 15,
                "startTime": "2017-12-08T00:00:00Z",
                "endTime": "2017-12-08T01:00:00Z",
                "timeZone": "UTC"
            }
        },
        "pipelines": [{
                "pipelineReference": {
                    "type": "PipelineReference",
                    "referenceName": "Adfv2QuickStartPipeline"
                },
                "parameters": {
                    "inputPath": "adftutorial/input",
                    "outputPath": "adftutorial/output"
                }
            }
        ]
    }
    

    Dalam cuplikan JSON:

    • Elemen jenis pemicu diatur ke "ScheduleTrigger".

    • Elemen frekuensi diatur ke "Menit" dan elemen interval diatur ke 15. Dengan demikian, pemicu menjalankan alur setiap 15 menit antara waktu mulai dan berakhir.

    • Elemen timeZone menentukan zona waktu tempat pemicu dibuat. Pengaturan ini mempengaruhi startTime dan endTime.

    • Elemen endTime adalah satu jam setelah nilai elemen startTime. Dengan demikian, pemicu menjalankan alur 15 menit, 30 menit, dan 45 menit setelah waktu mulai. Jangan lupa untuk memperbarui waktu mulai ke waktu UTC saat ini, dan waktu selesai hingga satu jam melewati waktu mulai.

      Penting

      Untuk zona waktu UTC, Waktu mulai dan Waktu selesai harus mengikuti format 'yyyy-MM-ddTHH:mm:ssZ', sedangkan untuk zona waktu lainnya, Waktu mulai dan waktu Selesai ikuti 'yyyy-MM-ddTHH:mm:ss'.

      Sesuai standar ISO 8601, akhiran Z ke tanda waktu menandai tanggalwaktu ke zona waktu UTC, dan merender bidang zona waktu yang tidak berguna. Sementara akhiran Z yang hilang untuk zona waktu UTC akan mengakibatkan kesalahan pada aktivasi pemicu.

    • Pemicu dikaitkan dengan alur Adfv2QuickStartPipeline. Untuk mengaitkan beberapa alur dengan pemicu, tambahkan lebih banyak bagian pipelineReference.

    • Alur di Mulai Cepat mengambil dua nilai: parameterinputPath dan outputPath. Dan Anda meneruskan nilai untuk parameter ini dari pemicu.

  2. Buat pemicu dengan menggunakan perintah az datafactory trigger create:

    az datafactory trigger create --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory"  --name "MyTrigger" --properties @MyTrigger.json  
    
  3. Konfirmasikan bahwa status pemicu Dihentikan dengan menggunakan perintah az datafactory trigger show:

    az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  4. Mulai pemicu dengan menggunakan perintah az datafactory trigger start:

    az datafactory trigger start --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  5. Konfirmasikan bahwa status pemicu Dimulai dengan menggunakan perintah az datafactory trigger show:

    az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  6. Dapatkan eksekusi pemicu di Azure CLI dengan menggunakan perintah az datafactory trigger-run query-by-factory. Untuk mendapatkan informasi tentang eksekusi pemicu, jalankan perintah berikut secara berkala. Perbarui nilai last-updated-after dan last-updated-before agar sesuai dengan nilai dalam definisi pemicu Anda:

    az datafactory trigger-run query-by-factory --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --filters operand="TriggerName" operator="Equals" values="MyTrigger" --last-updated-after "2017-12-08T00:00:00" --last-updated-before "2017-12-08T01:00:00"
    

    Catatan

    Waktu pemicu dari pemicu Jadwal ditentukan dalam tanda waktu UTC. last-updated-after dan last-updated-before juga mengharapkan tanda waktu UTC

    Untuk memantau pemicu berjalan dan alur berjalan di portal Microsoft Azure, lihat Memantau alur berjalan.

.NET SDK

Bagian ini memperlihatkan kepada Anda cara menggunakan .NET SDK untuk membuat, memulai, dan memantau pemicu. Untuk melihat sampel ini berfungsi, pertama-tama buka Mulai Cepat: Membuat pabrik data menggunakan NET.SDK. Kemudian, tambahkan kode berikut ke metode utama untuk membuat dan memulai pemicu jadwal yang berjalan setiap 15 menit. Pemicu dikaitkan dengan alur bernama Adfv2QuickStartPipeline yang Anda buat sebagai bagian dari Mulai Cepat.

Kemudian, tambahkan kode berikut ke metode utama, yang membuat dan memulai pemicu jadwal yang berjalan setiap 15 menit.

            // Create the trigger
            Console.WriteLine("Creating the trigger");

            // Set the start time to the current UTC time
            DateTime startTime = DateTime.UtcNow;

            // Specify values for the inputPath and outputPath parameters
            Dictionary<string, object> pipelineParameters = new Dictionary<string, object>();
            pipelineParameters.Add("inputPath", "adftutorial/input");
            pipelineParameters.Add("outputPath", "adftutorial/output");

            // Create a schedule trigger
            string triggerName = "MyTrigger";
            ScheduleTrigger myTrigger = new ScheduleTrigger()
            {
                Pipelines = new List<TriggerPipelineReference>()
                {
                    // Associate the Adfv2QuickStartPipeline pipeline with the trigger
                    new TriggerPipelineReference()
                    {
                        PipelineReference = new PipelineReference(pipelineName),
                        Parameters = pipelineParameters,
                    }
                },
                Recurrence = new ScheduleTriggerRecurrence()
                {
                    // Set the start time to the current UTC time and the end time to one hour after the start time
                    StartTime = startTime,
                    TimeZone = "UTC",
                    EndTime = startTime.AddHours(1),
                    Frequency = RecurrenceFrequency.Minute,
                    Interval = 15,
                }
            };

            // Now, create the trigger by invoking the CreateOrUpdate method
            TriggerResource triggerResource = new TriggerResource()
            {
                Properties = myTrigger
            };
            client.Triggers.CreateOrUpdate(resourceGroup, dataFactoryName, triggerName, triggerResource);

            // Start the trigger
            Console.WriteLine("Starting the trigger");
            client.Triggers.Start(resourceGroup, dataFactoryName, triggerName);

Untuk membuat pemicu di zona waktu yang berbeda, selain UTC, pengaturan berikut diperlukan:

<<ClientInstance>>.SerializationSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat;
<<ClientInstance>>.SerializationSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Unspecified;
<<ClientInstance>>.SerializationSettings.DateParseHandling = DateParseHandling.None;
<<ClientInstance>>.DeserializationSettings.DateParseHandling = DateParseHandling.None;
<<ClientInstance>>.DeserializationSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat;
<<ClientInstance>>.DeserializationSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Unspecified;

Untuk memantau eksekusi pemicu, tambahkan kode berikut sebelum pernyataan terakhir Console.WriteLine dalam sampel:

            // Check that the trigger runs every 15 minutes
            Console.WriteLine("Trigger runs. You see the output every 15 minutes");

            for (int i = 0; i < 3; i++)
            {
                System.Threading.Thread.Sleep(TimeSpan.FromMinutes(15));
                List<TriggerRun> triggerRuns = client.Triggers.ListRuns(resourceGroup, dataFactoryName, triggerName, DateTime.UtcNow.AddMinutes(-15 * (i + 1)), DateTime.UtcNow.AddMinutes(2)).ToList();
                Console.WriteLine("{0} trigger runs found", triggerRuns.Count);

                foreach (TriggerRun run in triggerRuns)
                {
                    foreach (KeyValuePair<string, string> triggeredPipeline in run.TriggeredPipelines)
                    {
                        PipelineRun triggeredPipelineRun = client.PipelineRuns.Get(resourceGroup, dataFactoryName, triggeredPipeline.Value);
                        Console.WriteLine("Pipeline run ID: {0}, Status: {1}", triggeredPipelineRun.RunId, triggeredPipelineRun.Status);
                        List<ActivityRun> runs = client.ActivityRuns.ListByPipelineRun(resourceGroup, dataFactoryName, triggeredPipelineRun.RunId, run.TriggerRunTimestamp.Value, run.TriggerRunTimestamp.Value.AddMinutes(20)).ToList();
                    }
                }
            }

Untuk memantau pemicu berjalan dan alur berjalan di portal Microsoft Azure, lihat Memantau alur berjalan.

Python SDK

Bagian ini memperlihatkan kepada Anda cara menggunakan Python SDK untuk membuat, memulai, dan memantau pemicu. Untuk melihat sampel ini berfungsi, pertama-tama buka Mulai Cepat: Membuat pabrik data menggunakan Python SDK. Kemudian, tambahkan blok kode berikut setelah blok kode "memantau alur menjalankan" blok kode di skrip Python. Kode ini membuat pemicu jadwal berjalan setiap 15 menit antara waktu mulai dan selesai yang ditentukan. Perbarui variabel start_time ke waktu UTC saat ini, dan variabel end_time menjadi satu jam melewati waktu UTC saat ini.

    # Create a trigger
    tr_name = 'mytrigger'
    scheduler_recurrence = ScheduleTriggerRecurrence(frequency='Minute', interval='15',start_time='2017-12-12T04:00:00Z', end_time='2017-12-12T05:00:00Z', time_zone='UTC')
    pipeline_parameters = {'inputPath':'adftutorial/input', 'outputPath':'adftutorial/output'}
    pipelines_to_run = []
    pipeline_reference = PipelineReference('copyPipeline')
    pipelines_to_run.append(TriggerPipelineReference(pipeline_reference, pipeline_parameters))
    tr_properties = TriggerResource(properties=ScheduleTrigger(description='My scheduler trigger', pipelines = pipelines_to_run, recurrence=scheduler_recurrence))
    adf_client.triggers.create_or_update(rg_name, df_name, tr_name, tr_properties)

    # Start the trigger
    adf_client.triggers.start(rg_name, df_name, tr_name)

Untuk memantau pemicu berjalan dan alur berjalan di portal Microsoft Azure, lihat Memantau alur berjalan.

Templat Azure Resource Manager

Anda dapat menggunakan templat Azure Resource Manager untuk membuat pemicu. Untuk instruksi langkah demi langkah, lihat Membuat pabrik data Azure menggunakan templat Resource Manager.

Meneruskan waktu mulai pemicu ke alur

Azure Data Factory versi 1 mendukung pembacaan atau penulisan data yang dipartisi menggunakan variabel sistem: SliceStart, SliceEnd, WindowStart, dan WindowEnd. Dalam versi saat ini dari alur Azure Data Factory dan Synapse, Anda dapat mencapai perilaku ini menggunakan parameter alur. Waktu mulai dan waktu terjadwal untuk pemicu ditetapkan sebagai nilai untuk parameter alur. Dalam contoh berikut, waktu terjadwal untuk pemicu diteruskan sebagai nilai ke parameter alur scheduledRunTime:

"parameters": {
    "scheduledRunTime": "@trigger().scheduledTime"
}

Skema JSON

Definisi JSON berikut menunjukkan kepada Anda cara membuat pemicu jadwal dengan penjadwalan dan pengulangan:

{
  "properties": {
    "type": "ScheduleTrigger",
    "typeProperties": {
      "recurrence": {
        "frequency": <<Minute, Hour, Day, Week, Month>>,
        "interval": <<int>>,             // Optional, specifies how often to fire (default to 1)
        "startTime": <<datetime>>,
        "endTime": <<datetime - optional>>,
        "timeZone": "UTC"
        "schedule": {                    // Optional (advanced scheduling specifics)
          "hours": [<<0-23>>],
          "weekDays": [<<Monday-Sunday>>],
          "minutes": [<<0-59>>],
          "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>"
                }
           }
      ]
  }
}

Penting

Properti parameter adalah properti wajib dari elemen alur. Jika alur Anda tidak mengambil parameter apa pun, Anda harus menyertakan definisi JSON kosong untuk properti parameter.

Gambaran umum Skema

Tabel berikut ini menyediakan gambaran umum tingkat tinggi tentang elemen skema utama yang terkait dengan pengulangan dan penjadwalan pemicu:

Properti JSON Deskripsi
startTime Nilai Tanggal-Waktu. Untuk jadwal sederhana, nilai properti startTime berlaku untuk kemunculan pertama. Untuk jadwal yang kompleks, pemicu dimulai tidak lebih cepat dari nilai startTime yang ditentukan.
Untuk zona waktu UTC, format adalah 'yyyy-MM-ddTHH:mm:ssZ', untuk zona waktu lain, format adalah 'yyyy-MM-ddTHH:mm:ss'.
endTime Tanggal dan waktu berakhir untuk pemicu. Pemicu tidak dieksekusi setelah tanggal dan waktu berakhir yang ditentukan. Nilai untuk properti tidak boleh ada di masa lalu. Properti ini bersifat opsional.
Untuk zona waktu UTC, format adalah 'yyyy-MM-ddTHH:mm:ssZ', untuk zona waktu lain, format adalah 'yyyy-MM-ddTHH:mm:ss'.
timeZone Zona waktu pemicu dibuat. Pengaturan ini memengaruhi startTime, endTime, dan schedule. Lihat daftar zona waktu yang didukung
recurrence Objek pengulangan yang menentukan aturan pengulangan untuk pemicu. Objek pengulangan mendukung elemen frekuensi, interval, Waktu selesai, jumlah, dan jadwal. Saat objek pengulangan ditentukan, elemen frekuensi diperlukan. Elemen lain dari objek pengulangan bersifat opsional.
frekuensi Pelajaran frekuensi di pemicu yang berulang. Nilai yang didukung termasuk "menit," "jam," "hari," "minggu," dan "bulan."
interval Bilangan bulat positif yang menunjukkan interval untuk nilai frekuensi, yang menentukan seberapa sering pemicu berjalan. Misalnya, jika interval adalah 3 dan frekuensi adalah "minggu," pemicunya berulang setiap 3 minggu.
jadwal Jadwal pengulangan pemicu. Pemicu dengan nilai frekuensi tertentu mengubah pengulangan berdasarkan jadwal pengulangan. Properti jadwal berisi modifikasi untuk pengulangan yang didasarkan pada menit, jam kerja, hari kerja, hari bulan, dan nomor minggu.

Penting

Untuk zona waktu UTC, Waktu mulai dan Waktu selesai harus mengikuti format 'yyyy-MM-ddTHH:mm:ssZ', sedangkan untuk zona waktu lainnya, Waktu mulai dan waktu Selesai ikuti 'yyyy-MM-ddTHH:mm:ss'.

Sesuai standar ISO 8601, akhiran Z ke tanda waktu menandai tanggalwaktu ke zona waktu UTC, dan merender bidang zona waktu yang tidak berguna. Sementara akhiran Z yang hilang untuk zona waktu UTC akan mengakibatkan kesalahan pada aktivasi pemicu.

Default, batasan, dan contoh skema

Properti JSON Jenis Wajib Nilai default Nilai yang valid Contoh
startTime String Ya Tidak ada ISO-8601 Date-Times untuk zona waktu UTC "startTime" : "2013-01-09T09:30:00-08:00Z"
untuk zona waktu lainnya "2013-01-09T09:30:00-08:00"
timeZone String Ya Tidak ada Nilai Zona Waktu "UTC"
recurrence Objek Ya Tidak ada Objek pengulangan "recurrence" : { "frequency" : "monthly", "interval" : 1 }
interval Angka Tidak 1 1 sampai 1.000 "interval":10
endTime String Ya Tidak ada Nilai Tanggal-Waktu yang mewakili waktu di masa depan. untuk zona waktu UTC "endTime" : "2013-02-09T09:30:00-08:00Z"
untuk zona waktu lainnya "endTime" : "2013-02-09T09:30:00-08:00"
jadwal Objek Tidak Tidak ada Objek jadwal "schedule" : { "minute" : [30], "hour" : [8,17] }

Opsi zona waktu

Berikut adalah beberapa zona waktu yang didukung untuk pemicu Jadwal:

Zona Waktu Offset UTC (Pergeseran Non-Siang Hari) Nilai Zona waktu Mengamati Pergeseran Siang Hari Format Tanda Waktu
Waktu Universal Terkoordinasi 0 UTC Tidak 'yyyy-MM-ddTHH:mm:ssZ'
Waktu Pasifik (PT) -8 Pacific Standard Time Ya 'yyyy-MM-ddTHH:mm:ss'
Waktu Tengah (CT) -6 Central Standard Time Ya 'yyyy-MM-ddTHH:mm:ss'
Waktu Timur (ET) 5- Eastern Standard Time Ya 'yyyy-MM-ddTHH:mm:ss'
Waktu Rata-Rata Greenwich (GMT) 0 GMT Standard Time Ya 'yyyy-MM-ddTHH:mm:ss'
Waktu Standar Eropa Tengah +1 W. Europe Standard Time Ya 'yyyy-MM-ddTHH:mm:ss'
Waktu Standar India (IST) +5:30 India Standard Time Tidak 'yyyy-MM-ddTHH:mm:ss'
Waktu Standar Tiongkok 8+ China Standard Time Tidak 'yyyy-MM-ddTHH:mm:ss'

Daftar ini tidak lengkap. Untuk daftar lengkap opsi zona waktu, jelajahi di portal Halaman pembuatan pemicu

Properti startTime

Tabel berikut ini memperlihatkan kepada Anda bagaimana properti startTime mengontrol pemicu berjalan:

nilai startTime Pengulangan tanpa jadwal Pengulangan dengan jadwal
Waktu mulai di masa lalu Menghitung waktu eksekusi di masa mendatang pertama setelah waktu mulai dan berjalan pada saat itu.

Menjalankan eksekusi berikutnya berdasarkan penghitungan dari waktu eksekusi terakhir.

Lihat contoh yang mengikuti tabel ini.
Pemicu dimulai tidak lebih cepat dari waktu mulai yang ditentukan. Kemunculan pertama didasarkan pada jadwal yang dihitung dari waktu mulai.

Menjalankan eksekusi berikutnya berdasarkan jadwal pengulangan.
Waktu mulai di masa depan atau saat ini Berjalan sekali pada waktu mulai yang ditentukan.

Menjalankan eksekusi berikutnya berdasarkan penghitungan dari waktu eksekusi terakhir.
Pemicu dimulai tidak lebih cepat dari waktu mulai yang ditentukan. Kemunculan pertama didasarkan pada jadwal yang dihitung dari waktu mulai.

Menjalankan eksekusi berikutnya berdasarkan jadwal pengulangan.

Mari kita lihat contoh apa yang terjadi ketika waktu mulai di masa lalu, dengan pengulangan, tetapi tidak ada jadwal. Asumsikan bahwa waktu saat ini adalah 2017-04-08 13:00, waktu mulai adalah 2017-04-07 14:00,dan pengulangannya yaitu setiap dua hari. (Nilai pengulangan ditentukan dengan mengatur properti frekuensi ke "hari" dan properti interval ke 2.) Perhatikan bahwa nilai startTime sudah berlalu dan terjadi sebelum waktu saat ini.

Dalam kondisi ini, eksekusi pertama adalah 2017-04-09 pada 14:00. Mesin Scheduler menghitung kemunculan eksekusi dari waktu mulai. Instans apa pun yang sudah berlalu dibuang. Mesin menggunakan instans berikutnya yang terjadi di masa depan. Dalam skenario ini, waktu mulai adalah 2017-04-07 pada 2:00pm, jadi instans berikutnya adalah dua hari dari waktu itu, yang 2017-04-09 berada di 2:00pm.

Waktu eksekusi pertama sama bahkan jika nilai startTime adalah 2017-04-05 14:00 atau 2017-04-01 14:00. Setelah eksekusi pertama, eksekusi berikutnya dihitung menggunakan jadwal. Oleh karena itu, eksekusi berikutnya berada di 2017-04-11 di 2:00pm, kemudian 2017-04-13 di 2:00pm, kemudian 2017-04-15 di 2:00pm, dan sebagainya.

Akhirnya, ketika jam atau menit tidak diatur dalam jadwal pemicu, jam atau menit eksekusi pertama digunakan sebagai default.

properti jadwal

Di satu sisi, penggunaan jadwal dapat membatasi jumlah eksekusi pemicu. Misalnya, jika pemicu dengan frekuensi bulanan dijadwalkan hanya berjalan pada hari ke-31, pemicu hanya berjalan pada bulan-bulan yang memiliki hari ke-31.

Sedangkan, jadwal juga dapat memperluas jumlah eksekusi pemicu. Misalnya, pemicu dengan frekuensi bulanan yang dijadwalkan untuk berjalan pada hari bulan 1 dan 2, berjalan pada hari ke-1 dan ke-2 dalam sebulan, bukan sebulan sekali.

Jika beberapa elemen jadwal ditentukan, urutan evaluasi berdasarkan dari pengaturan jadwal terbesar hingga terkecil. Evaluasi dimulai dengan nomor minggu, dan kemudian hari bulan, hari kerja, jam, dan akhirnya, menit.

Tabel berikut ini menjelaskan elemen jadwal secara terperinci:

Elemen JSON Deskripsi Nilai yang valid
menit Menit dari jam di mana pemicu berjalan.
  • Bilangan bulat
  • Larik bilangan bulat
hours Jam dari hari tempat pemicu berjalan.
  • Bilangan bulat
  • Larik bilangan bulat
weekDays Hari-hari dalam seminggu di mana pemicu berjalan. Nilai hanya dapat ditentukan dengan frekuensi mingguan.
  • Setiap hari, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu, Minggu
  • Larik nilai hari (ukuran larik maksimum adalah 7)
  • Nilai tidak peka huruf besar/kecil
monthlyOccurrences Hari dalam bulan tempat pemicu berjalan. Nilai hanya dapat ditentukan dengan frekuensi mingguan.
  • Larik objek: monthlyOccurrence{ "day": day, "occurrence": occurrence }.
  • Atribut hari adalah hari dalam seminggu di mana pemicu berjalan. Misalnya, properti monthlyOccurrences dengan nilai hari{Sunday} rata-rata setiap Hari Minggu dalam sebulan. Atribut hari wajib.
  • Atribut kemunculan adalah munculnya hari yang ditentukan selama bulan tersebut. Misalnya, properti monthlyOccurrences dengan nilai hari dan kemunculan{Sunday, -1} berarti hari Minggu terakhir dalam sebulan. Atribut kemunculan bersifat opsional.
monthDays Hari dalam seminggu ketika pemicu berjalan. Nilai hanya dapat ditentukan dengan frekuensi mingguan.
  • Nilai apa pun <= -1 dan >= -31
  • Nilai apa pun >= 1 dan <= 31
  • Larik nilai

Contoh jadwal pengulangan pemicu

Bagian ini menyediakan contoh jadwal pengulangan dan berfokus pada objek jadwal dan elemennya.

Contohnya mengasumsikan bahwa nilai interval adalah 1, dan bahwa nilai frekuensi sudah benar sesuai dengan definisi jadwal. Misalnya, Anda tidak dapat memiliki nilai frekuensi "hari" dan juga memiliki modifikasi "monthDays" di objek jadwal. Pembatasan seperti ini disebutkan dalam tabel di bagian sebelumnya.

Contoh Deskripsi
{"hours":[5]} Jalankan pada pukul 05.00 tiap hari.
{"minutes":[15], "hours":[5]} Berjalan pukul 5.15 setiap hari.
{"minutes":[15], "hours":[5,17]} Berjalan pukul 5.15 dan 17.15 setiap hari.
{"minutes":[15,45], "hours":[5,17]} Berjalan pukul 5.15, 5.45, 17.15, dan 17.45 setiap hari.
{"minutes":[0,15,30,45]} Berjalan setiap 15 menit.
{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]} Jalankan tiap jam. Pemicu ini berjalan tiap jam. Menit dikontrol oleh nilai startTime saat nilai ditentukan. Jika nilai tidak ditentukan, menit dikontrol oleh waktu pembuatan. Misalnya, jika waktu mulai atau waktu pembuatan (mana saja yang berlaku) adalah 12.25, pemicu berjalan pukul 00.25, 01.25, 02.25, ..., dan 23.25.

Jadwal ini setara dengan memiliki pemicu dengan nilai frekuensi "jam," nilai interval 1, dan tanpa jadwal. Jadwal ini dapat digunakan dengan nilai frekuensi dan interval yang berbeda untuk membuat pemicu lain. Misalnya, ketika nilai frekuensi adalah "bulan," jadwal hanya berjalan sebulan sekali, daripada setiap hari, ketika nilai frekuensi adalah "hari."
{"minutes":[0]} Jalankan tiap jam pada jam. Pemicu ini berlangsung setiap jam pada jam mulai pukul 12.00, 01.00, 02.00, dan sebagainya.

Jadwal ini setara dengan pemicu dengan nilai frekuensi "jam" dan nilai startTime nol menit, atau tanpa jadwal tetapi frekuensi nilai "hari". Jika nilai frekuensi adalah "minggu" atau "bulan", jadwal masing-masing dijalankan hanya satu hari dalam seminggu atau satu hari dalam sebulan.
{"minutes":[15]} Berjalan pada 15 menit yang lalu setiap jam. Pemicu ini berlangsung setiap jam pada 15 menit melewati jam mulai pukul 00:15, 01:15, 02:15, dan sebagainya, dan berakhir pada pukul 23:15.
{"hours":[17], "weekDays":["saturday"]} Jalankan pukul 17.00 pada hari Sabtu tiap minggu.
{"hours":[17], "weekDays":["monday", "wednesday", "friday"]} Jalankan pukul 17.00 pada hari Senin, Rabu, dan Jumat tiap minggu.
{"minutes":[15,45], "hours":[17], "weekDays":["monday", "wednesday", "friday"]} Berjalan pukul 17.15 dan 17.45 pada hari Senin, Rabu, dan Jumat setiap minggu.
{"minutes":[0,15,30,45], "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} Jalankan tiap 15 menit pada hari kerja.
{"minutes":[0,15,30,45], "hours": [9, 10, 11, 12, 13, 14, 15, 16] "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} Berjalan setiap 15 menit pada hari kerja antara pukul 09:00 dan 16:45.
{"weekDays":["tuesday", "thursday"]} Jalankan pada hari Selasa dan Kamis pada waktu mulai yang ditentukan.
{"minutes":[0], "hours":[6], "monthDays":[28]} Berjalan pada pukul 06.00 pada hari ke-28 setiap bulan (dengan asumsi nilai frekuensi "bulan").
{"minutes":[0], "hours":[6], "monthDays":[-1]} Berjalan pada pukul 06.00 di hari terakhir dalam sebulan. Untuk menjalankan pemicu pada hari terakhir sebulan, gunakan -1, bukan tanggal 28, 29, 30, atau 31.
{"minutes":[0], "hours":[6], "monthDays":[1,-1]} Berjalan pada pukul 06.00 pada hari pertama dan terakhir setiap bulan.
{monthDays":[1,14]} Berjalan pada hari pertama dan ke-14 setiap bulan pada waktu mulai yang ditentukan.
{"minutes":[0], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1}]} Berjalan pada hari Jumat pertama setiap bulan pada pukul 05.00.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1}]} Jalankan pada hari Jumat pertama tiap bulan pada waktu mulai yang ditentukan.
{"monthlyOccurrences":[{"day":"friday", "occurrence":-3}]} Jalankan pada hari Jumat ketiga dari akhir bulan, tiap bulan, pada waktu mulai yang ditentukan.
{"minutes":[15], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} Berjalan pada hari Jumat pertama dan terakhir setiap bulan pukul 05:15.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} Jalankan pada hari Jumat pertama dan terakhir tiap bulan pada waktu mulai yang ditentukan.
{"monthlyOccurrences":[{"day":"friday", "occurrence":5}]} Jalankan pada hari Jumat kelima tiap bulan pada waktu mulai yang ditentukan. Ketika tidak ada Jumat kelima dalam sebulan, alur tidak berjalan, karena dijadwalkan untuk berjalan hanya pada hari Jumat kelima. Untuk menjalankan pemicu pada hari Jumat terakhir yang terjadi bulan ini, pertimbangkan untuk menggunakan -1, bukan 5 untuk nilai kemunculan.
{"minutes":[0,15,30,45], "monthlyOccurrences":[{"day":"friday", "occurrence":-1}]} Berjalan setiap 15 menit pada hari Jumat terakhir dari bulan.
{"minutes":[15,45], "hours":[5,17], "monthlyOccurrences":[{"day":"wednesday", "occurrence":3}]} Berjalan pukul 05.15, 05.45, 17.15, dan 17.45 pada hari Rabu ketiga setiap bulan.