Bagikan melalui


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 seperti tanggal mulai, pengulangan, atau tanggal akhir untuk pemicu dan mengaitkannya 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 Azure Synapse

Anda dapat membuat pemicu jadwal untuk menjadwalkan alur agar berjalan secara berkala, seperti per jam atau harian.

Catatan

Untuk panduan lengkap membuat alur dan pemicu jadwal, yang mengaitkan pemicu dengan alur dan menjalankan dan memantau alur, lihat Mulai Cepat: Membuat pabrik data dengan menggunakan UI 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.

    Cuplikan layar yang memperlihatkan menu Pemicu baru.

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

    Cuplikan layar yang memperlihatkan panel Tambahkan pemicu.

  3. Pada halaman Pemicu baru:

    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 tempat pemicu dibuat. Pengaturan zona waktu berlaku untuk Tanggal Mulai, Tanggal Selesai, dan Waktu Eksekusi Jadwal di opsi Pengulangan tingkat lanjut. Mengubah pengaturan Zona Waktu tidak secara otomatis mengubah tanggal mulai Anda. Pastikan tanggal mulai sudah benar di zona waktu yang ditentukan. Waktu Eksekusi Terjadwal Pemicu dianggap pasca tanggal mulai. (Pastikan bahwa tanggal mulai setidaknya 1 menit kurang dari waktu eksekusi atau memicu alur di pengulangan berikutnya.)

      Catatan

      Untuk zona waktu yang mengamati penghematan siang hari, waktu pemicu akan disesuaikan secara otomatis untuk perubahan dua kali setahun, jika pengulangan diatur ke Hari atau di atasnya. Untuk menolak perubahan musim panas, pilih zona waktu yang tidak mengamati musim panas, misalnya, UTC.

      Penyesuaian penghematan siang hari hanya terjadi untuk pemicu dengan pengulangan yang diatur ke Hari atau di atasnya. Jika pemicu diatur ke frekuensi Jam atau Menit , pemicu akan terus diaktifkan secara berkala.

    4. Tentukan Pengulangan untuk pemicunya. Pilih salah satu nilai dari daftar dropdown (Setiap menit, Per Jam, Harian, Mingguan, atau 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 bawah Pengulangan, jika Anda memilih Hari, Minggu, atau Bulan dari daftar dropdown, Anda dapat melihat Opsi pengulangan tingkat lanjut.

      Cuplikan layar yang memperlihatkan opsi pengulangan tingkat lanjut Dari Hari, Minggu, dan Bulan.

    6. Untuk menentukan waktu tanggal akhir, pilih Tentukan tanggal selesai. Tentukan informasi Berakhir Pada, lalu pilih OK.

      Biaya dikaitkan dengan setiap eksekusi alur. Jika Anda menguji, Anda mungkin ingin memastikan bahwa alur hanya dipicu beberapa kali. Namun, pastikan ada cukup waktu bagi alur untuk dieksekusi di antara waktu penerbitan dan waktu selesai. Pemicu mulai berlaku hanya setelah Anda menerbitkan solusi, bukan saat Anda menyimpan pemicu di antarmuka pengguna.

      Cuplikan layar yang memperlihatkan pengaturan pemicu.

      Cuplikan layar yang memperlihatkan pengaturan pemicu untuk tanggal dan waktu akhir.

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

    Cuplikan layar yang memperlihatkan opsi Diaktifkan.

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

    Cuplikan layar yang memperlihatkan pemilihan tombol OK.

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

    Cuplikan layar yang memperlihatkan tombol Terbitkan semua.

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


  1. Beralih ke tampilan Jadwal Eksekusi>pemicu.


Azure PowerShell

Catatan

Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Untuk memulai, lihat Menginstal Azure PowerShell. 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 buka Mulai Cepat: Buat pabrik data dengan 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 startTime elemen ke waktu UTC saat ini. Atur nilai endTime elemen ke 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 type pemicu diatur ke ScheduleTrigger.

    • Elemen frequency diatur ke Minute dan interval elemen 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 memengaruhi dan startTime endTime.

    • Elemen endTime ini adalah satu jam setelah nilai startTime elemen . 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 akhir hingga satu jam melewati waktu mulai.

      Penting

      Untuk zona waktu UTC, startTime dan endTime perlu mengikuti format yyyy-MM-ddTHH:mm:ssZ. Untuk zona waktu lainnya, startTime dan endTime ikuti formatnya yyyy-MM-ddTHH:mm:ss .

      Sesuai standar ISO 8601, Z akhiran digunakan untuk menandai tanda waktu ke zona waktu UTC dan merender timeZone bidang tidak berguna. Jika akhiran Z untuk zona waktu UTC hilang, hasilnya adalah kesalahan setelah aktivasi pemicu.

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

    • Alur dalam mulai cepat mengambil dua parameters nilai: inputPath dan outputPath. 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. TriggerRunStartedAfter Perbarui nilai 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 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 memperlihatkan kepada Anda cara menggunakan Azure CLI untuk membuat, memulai, dan memantau pemicu jadwal. Untuk melihat sampel ini berfungsi, pertama-tama buka Mulai Cepat: Buat Azure Data Factory dengan menggunakan Azure CLI. Kemudian, ikuti langkah-langkah 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 startTime elemen ke waktu UTC saat ini. Atur nilai endTime elemen ke 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 type pemicu diatur ke ScheduleTrigger.

    • Elemen frequency diatur ke Minute dan interval elemen 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 memengaruhi dan startTime endTime.

    • Elemen endTime ini adalah satu jam setelah nilai startTime elemen . 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 akhir hingga satu jam melewati waktu mulai.

      Penting

      Untuk zona waktu UTC, startTime dan endTime perlu mengikuti format yyyy-MM-ddTHH:mm:ssZ. Untuk zona waktu lainnya, startTime dan endTime ikuti formatnya yyyy-MM-ddTHH:mm:ss .

      Sesuai standar ISO 8601, akhiran Z digunakan untuk menandai tanggalwaktu ke zona waktu UTC dan merender timeZone bidang tidak berguna. Jika akhiran Z hilang untuk zona waktu UTC, hasilnya adalah kesalahan saat aktivasi pemicu.

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

    • Alur dalam mulai cepat mengambil dua parameters nilai: inputPath dan outputPath. 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. last-updated-after Perbarui nilai 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 pemicu jadwal ditentukan dalam tanda waktu UTC. last-update-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: Buat pabrik data dengan 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: Buat pabrik data dengan menggunakan Python SDK. Kemudian, tambahkan blok kode berikut setelah monitor the pipeline run blok kode di skrip Python. Kode ini membuat pemicu jadwal berjalan setiap 15 menit antara waktu mulai dan selesai yang ditentukan. start_time Perbarui variabel ke waktu UTC saat ini dan end_time variabel 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 dengan menggunakan templat Azure Resource Manager.

Meneruskan waktu mulai pemicu ke alur

Azure Data Factory versi 1 mendukung membaca atau menulis data yang dipartisi dengan menggunakan variabel SliceStartsistem , , SliceEnd, WindowStartdan WindowEnd. Dalam versi alur Data Factory dan Azure Synapse saat ini, Anda dapat mencapai perilaku ini dengan 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 parameters adalah properti wajib dari pipelines elemen . Jika alur Anda tidak mengambil parameter apa pun, Anda harus menyertakan definisi JSON kosong untuk properti .parameters

Gambaran umum Skema

Tabel berikut ini memberikan 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 startTime properti berlaku untuk kemunculan pertama. Untuk jadwal kompleks, pemicu dimulai tidak lebih cepat dari nilai yang ditentukan startTime .
Untuk zona waktu UTC, formatnya adalah 'yyyy-MM-ddTHH:mm:ssZ'. Untuk zona waktu lainnya, formatnya 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, formatnya adalah 'yyyy-MM-ddTHH:mm:ssZ'. Untuk zona waktu lainnya, formatnya adalah yyyy-MM-ddTHH:mm:ss.
timeZone Zona waktu tempat pemicu dibuat. Pengaturan ini memengaruhi startTime, , endTimedan schedule. Lihat daftar zona waktu yang didukung.
recurrence Objek pengulangan yang menentukan aturan pengulangan untuk pemicu. Objek pengulangan mendukung frequencyelemen , , intervalendTime, count, dan schedule . Ketika objek pengulangan ditentukan, frequency elemen diperlukan. Elemen lain dari objek pengulangan bersifat opsional.
frequency Pelajaran frekuensi di pemicu yang berulang. Nilai yang didukung meliputi minute, hour, day, week, dan month.
interval Bilangan bulat positif yang menunjukkan interval untuk frequency nilai, yang menentukan seberapa sering pemicu berjalan. Misalnya, jika interval adalah dan frequency adalah 3 week, pemicu berulang setiap 3 minggu.
schedule Jadwal pengulangan pemicu. Pemicu dengan nilai tertentu frequency mengubah pengulangannya berdasarkan jadwal pengulangan. Properti schedule berisi modifikasi untuk pengulangan yang didasarkan pada menit, jam, hari kerja, hari bulan, dan nomor minggu.

Penting

Untuk zona waktu UTC, startTime dan endTime perlu mengikuti format yyyy-MM-ddTHH:mm:ssZ. Untuk zona waktu lainnya, startTime dan endTime ikuti formatnya yyyy-MM-ddTHH:mm:ss .

Sesuai standar ISO 8601, akhiran Z digunakan untuk menandai tanggalwaktu ke zona waktu UTC dan merender timeZone bidang tidak berguna. Jika akhiran Z hilang untuk zona waktu UTC, hasilnya adalah kesalahan saat aktivasi pemicu.

Default, batasan, dan contoh skema

Properti JSON Jenis Wajib Nilai default Nilai yang valid Contoh
startTime String Ya Tidak 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 Nilai zona waktu "UTC"
recurrence Objek Ya Tidak Objek pengulangan "recurrence" : { "frequency" : "monthly", "interval" : 1 }
interval Number No 1 1 sampai 1.000 "interval":10
endTime String Ya Tidak Nilai Tanggal-Waktu yang mewakili waktu di masa mendatang Untuk zona waktu UTC: "endTime" : "2013-02-09T09:30:00-08:00Z"
Untuk zona waktu lainnya: "endTime" : "2013-02-09T09:30:00-08:00"
schedule Objek No Tidak 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 (Penghematan non-siang hari) nilai zona waktu Amati penghematan siang hari Format stempel waktu
Waktu Universal Terkoordinasi 0 UTC No '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 No 'yyyy-MM-ddTHH:mm:ss'
Waktu Standar Tiongkok 8+ China Standard Time No 'yyyy-MM-ddTHH:mm:ss'

Daftar ini tidak lengkap. Untuk daftar lengkap opsi zona waktu, lihat halaman Pembuatan pemicu di portal.

Properti startTime

Tabel berikut ini memperlihatkan kepada Anda bagaimana startTime properti mengontrol eksekusi pemicu.

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 recurrence ditentukan dengan mengatur frequency properti ke day dan interval properti ke 2.) Perhatikan bahwa startTime nilai berada di masa lalu 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 meskipun startTime nilainya 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.

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

properti jadwal

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.

Jadwal juga dapat memperluas jumlah eksekusi pemicu. Misalnya, pemicu dengan frekuensi bulanan yang dijadwalkan berjalan pada hari 1 dan 2 dalam sebulan, berjalan pada hari pertama dan kedua dalam sebulan, bukan sebulan sekali.

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

Tabel berikut ini menjelaskan schedule elemen secara rinci.

Elemen JSON Deskripsi Nilai yang valid
minutes 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.
  • Senin, Selasa, Rabu, Kamis, Jumat, Sabtu, Minggu.
  • Array nilai hari (ukuran array maksimum adalah 7).
  • Nilai hari tidak peka huruf besar/kecil.
monthlyOccurrences Hari dalam bulan tempat pemicu berjalan. Nilai hanya dapat ditentukan dengan frekuensi mingguan.
  • monthlyOccurrences Array objek: { "day": day, "occurrence": occurrence }.
  • Atribut day adalah hari dalam seminggu di mana pemicu berjalan. Misalnya, monthlyOccurrences properti dengan day nilai {Sunday} berarti setiap hari Minggu dalam sebulan. Atribut day tersebut diperlukan.
  • Atribut occurrence adalah kemunculan yang ditentukan day selama bulan tersebut. Misalnya, monthlyOccurrences properti dengan day nilai {Sunday, -1} dan occurrence berarti hari Minggu terakhir dalam sebulan. Atribut occurrence 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 schedule objek dan elemennya.

Contoh mengasumsikan bahwa interval nilainya adalah 1 dan bahwa frequency nilainya benar sesuai dengan definisi jadwal. Misalnya, Anda tidak dapat memiliki frequency nilai day dan juga memiliki monthDays modifikasi dalam schedule objek. 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 startTime nilai, ketika 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 frequency nilai hour, interval nilai 1, dan tidak ada schedule. Jadwal ini dapat digunakan dengan nilai dan interval yang berbeda frequency untuk membuat pemicu lain. Misalnya, ketika frequency nilainya adalah month, jadwal hanya berjalan sekali sebulan, bukan setiap hari, ketika frequency nilainya adalah day.
{"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 frequency nilai hour dan startTime nilai nol menit, atau tidak schedule kecuali frequency nilai day. frequency Jika nilainya adalah week atau month, jadwal dijalankan masing-masing satu hari seminggu atau satu hari sebulan saja.
{"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]} Jalankan pada pukul 06.00 pada hari ke-28 setiap bulan (dengan asumsi frequency monthnilai ).
{"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 Jumat terakhir yang terjadi dalam sebulan, pertimbangkan untuk menggunakan -1, bukan 5 untuk nilai tersebut occurrence .
{"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.