Eksekusi alur dan pemicu di Azure Data Factory atau Azure Synapse Analytics

BERLAKU UNTUK: Azure Data Factory Azure Synapse Analytics

Eksekusi alur di Azure Data Factory dan Azure Synapse menentukan instans eksekusi alur. Misalnya, Anda memiliki alur yang dijalankan pada pukul 08.00, 09.00, dan 10.00. Dalam hal ini, ada tiga eksekusi terpisah dari alur atau eksekusi alur. Setiap eksekusi alur memiliki ID eksekusi alur yang unik. ID eksekusi adalah GUID yang secara unik menetapkan eksekusi alur tertentu.

Eksekusi alur biasanya dibuat dengan meneruskan argumen ke parameter yang Anda tentukan dalam alur. Anda dapat mengeksekusi alur baik secara manual atau menggunakan pemicu. Artikel ini menyediakan detail tentang kedua cara mengeksekusi alur.

Membuat pemicu dengan antarmuka pengguna

Untuk memicu alur secara manual atau mengonfigurasi jadwal baru, jendela terjadwal, peristiwa penyimpanan, atau pemicu peristiwa kustom, pilih Tambahkan pemicu di bagian atas editor alur.

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

Jika Anda memilih untuk memicu alur secara manual, itu akan segera dijalankan. Jika tidak, jika Anda memilih Baru/Edit, Anda akan diminta dengan menambahkan jendela pemicu untuk memilih pemicu yang ada untuk diedit, atau membuat pemicu baru.

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

Anda akan melihat jendela konfigurasi pemicu, memungkinkan Anda memilih jenis pemicu.

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

Baca lebih lanjut tentang dijadwalkan, jendela terjadwal, peristiwa penyimpanan, dan peristiwa kustom di bawah ini.

Eksekusi manual (sesuai permintaan) dengan JSON

Eksekusi alur manual juga disebut sebagai eksekusi sesuai permintaan.

Misalnya, Anda memiliki alur dasar bernama copyPipeline yang ingin Anda eksekusi. Alur memiliki satu aktivitas yang menyalin dari folder sumber penyimpanan Azure Blob ke folder tujuan di penyimpanan yang sama. Definisi JSON berikut memperlihatkan alur sampel ini:

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

Dalam definisi JSON, alur mengambil dua parameter: sourceBlobContainer dan sinkBlobContainer. Anda meneruskan nilai ke parameter ini saat runtime.

Anda dapat secara manual menjalankan alur menggunakan salah satu metode berikut:

  • .NET SDK
  • Modul Azure PowerShell
  • REST API
  • Python SDK

REST API

Sampel perintah berikut memperlihatkan cara menjalankan alur menggunakan REST API secara manual:

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

Untuk sampel lengkap, lihat Mulai Cepat: Membuat pabrik data menggunakan REST API.

Azure PowerShell

Catatan

Artikel ini menggunakan modul Azure Az PowerShell, yang merupakan modul PowerShell yang direkomendasikan untuk berinteraksi dengan Azure. Untuk mulai menggunakan modul Az PowerShell, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Sampel perintah berikut memperlihatkan cara menjalankan alur menggunakan Azure PowerShell secara manual:

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

Anda meneruskan parameter dalam isi payload permintaan. Di .NET SDK, Azure PowerShell, dan Python SDK, Anda meneruskan nilai dalam kamus yang diteruskan sebagai argumen untuk panggilan:

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

Payload respons adalah ID unik dari alur berjalan:

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

Untuk sampel lengkap, lihat Mulai Cepat: Membuat pabrik data menggunakan Azure PowerShell.

.NET SDK

Sampel berikut memperlihatkan cara menjalankan alur menggunakan .NET SDK secara manual:

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

Untuk sampel lengkap, lihat Mulai Cepat: Membuat pabrik data menggunakan .NET SDK.

Catatan

Anda dapat menggunakan .NET SDK untuk memanggil alur dari Azure Functions, dari layanan web Anda, dan sebagainya.

Memicu eksekusi dengan JSON

Pemicu adalah cara lain agar Anda dapat menjalankan eksekusi alur. Pemicu mewakili unit pemrosesan yang menentukan kapan memulai eksekusi alur. Saat ini, layanan tersebut mendukung tiga jenis pemicu:

  • Pemicu jadwal: Pemicu yang memanggil alur pada jadwal jam dinding.

  • Pemicu jendela tumbling: Pemicu yang beroperasi pada interval berkala, sekaligus mempertahankan status.

  • Pemicu berbasis kejadian: Pemicu yang merespons kejadian.

Alur dan pemicu memiliki hubungan banyak ke banyak (kecuali pemicu jendela tumbling). Beberapa pemicu dapat memulai satu alur, atau satu pemicu dapat memulai beberapa alur. Dalam definisi pemicu berikut, properti alur mengacu pada daftar alur yang dipicu oleh pemicu tertentu. Definisi properti mencakup nilai untuk parameter alur.

Definisi pemicu dasar

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

Menjadwalkan pemicu dengan JSON

Pemicu jadwal menjalankan alur sesuai jadwal jam dinding. Pemicu ini mendukung opsi kalender berkala dan tingkat lanjut. Misalnya, pemicu mendukung interval seperti "mingguan" atau "Senin pukul 17.00 dan Kamis pukul 21.00". Pemicu jadwal fleksibel karena pola himpunan data agnostik, dan pemicu tidak membedakan antara data deret waktu dan non deret waktu.

Untuk informasi selengkapnya tentang pemicu jadwal dan, contoh, lihat Membuat pemicu yang menjalankan alur sesuai jadwal.

Definisi pemicu jadwal

Saat Anda membuat pemicu jadwal, Anda menentukan penjadwalan dan pengulangan menggunakan definisi JSON.

Agar pemicu jadwal Anda memulai eksekusi alur, sertakan referensi alur dari alur tertentu dalam definisi pemicu. Alur dan pemicu memiliki hubungan banyak ke banyak. Beberapa pemicu dapat memulai satu alur. Satu pemicu dapat memulai beberapa alur.

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

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 menyediakan gambaran umum tingkat tinggi dari elemen skema utama yang terkait dengan pengulangan dan penjadwalan pemicu:

Properti JSON Deskripsi
startTime Nilai tanggal-waktu. Untuk jadwal dasar, nilai properti startTime berlaku untuk kemunculan pertama. Untuk jadwal yang kompleks, pemicu dimulai tidak lebih cepat dari nilai startTime yang ditentukan.
endTime Tanggal dan waktu berakhir untuk pemicu. Pemicu tidak dieksekusi setelah tanggal dan waktu berakhir yang ditentukan. Nilai untuk properti tidak boleh yang sudah lewat.
timeZone Zona waktu. Untuk daftar zona waktu yang didukung, lihat Membuat pemicu yang menjalankan alur sesuai jadwal.
pengulangan Objek pengulangan yang menentukan aturan pengulangan untuk pemicu. Objek pengulangan menentukan elemen frekuensi, interval, endTime, jumlah, dan jadwal. Saat objek pengulangan ditentukan, elemen frekuensi diperlukan. Elemen lain dari objek pengulangan bersifat opsional.
frekuensi Unit frekuensi tempat pemicu terjadi. Nilai yang didukung termasuk "menit", "jam", "hari", "minggu", dan "bulan".
interval Bilangan bulat positif yang menunjukkan interval untuk nilai frekuensi. Nilai frekuensi menentukan seberapa sering pemicu berjalan. Misalnya, jika interval adalah 3 dan frekuensi adalah "minggu," pemicu berulang tiap 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, hari, hari bulan, dan nomor minggu.

Contoh pemicu jadwal

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

Default, batasan, dan contoh skema

Properti JSON Jenis Diperlukan Nilai default Nilai yang valid Contoh
startTime string Ya Tidak ada ISO 8601 date-times "startTime" : "2013-01-09T09:30:00-08:00"
pengulangan objek Ya Tidak ada Objek pengulangan "recurrence" : { "frequency" : "monthly", "interval" : 1 }
interval nomor Tidak 1 1 hingga 1000 "interval":10
endTime string Ya Tidak ada Nilai tanggal-waktu yang mewakili waktu di masa mendatang "endTime" : "2013-02-09T09:30:00-08:00"
jadwal objek Tidak Tidak ada Objek jadwal "schedule" : { "minute" : [30], "hour" : [8,17] }

Properti startTime

Tabel berikut memperlihatkan bagaimana properti startTime mengontrol eksekusi pemicu:

Nilai startTime Pengulangan tanpa jadwal Pengulangan dengan jadwal
Waktu mulai sudah berlalu Menghitung waktu eksekusi di masa mendatang pertama setelah waktu mulai, dan berjalan pada saat itu.

Menjalankan eksekusi berikutnya yang dihitung 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, dihitung dari waktu mulai.

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

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

Menjalankan eksekusi berikutnya berdasarkan jadwal pengulangan.

Mari kita lihat contoh apa yang terjadi ketika waktu mulai sudah berlalu, dengan pengulangan, tetapi tidak ada jadwal. Asumsikan waktu saat ini adalah 08-04-2017 13.00, waktu mulai adalah 07-04-2017 14.00, dan pengulangan adalah tiap 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 pertam adalah 09-04-2017 pukul 14.00. Mesin Microsoft Azure 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 07-04-2017 pada pukul 14.00. Instans berikutnya adalah dua hari dari waktu tersebut, yaitu pada 09-04-2017 pukul 14.00.

Waktu eksekusi pertama sama bahkan apakah startTime adalah 05-04-2017 14.00 atau 01-04-2017 14.00. Setelah eksekusi pertama, eksekusi berikutnya dihitung menggunakan jadwal. Oleh karena itu, eksekusi selanjutnya terjadi pada 11-04-2017 pukul 14.00, lalu pada 13-04-2017 pukul 14.00, selanjutnya pada 15-04-2017 pukul 14.00, dan sebagainya.

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

properti jadwal

Anda dapat menggunakan jadwaluntuk 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.

Anda juga dapat menggunakan jadwal untuk 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 elemen jadwal ditentukan, urutan evaluasi berdasarkan dari pengaturan jadwal terbesar hingga terkecil: jumlah minggu, hari dalam sebulan, hari kerja, jam, menit.

Tabel berikut ini menjelaskan elemen jadwal secara terperinci:

Elemen JSON Deskripsi Nilai yang valid
menit Menit dari jam tempat pemicu berjalan. - Bilangan bulat
- Rangkaian Bilangan Bulat
jam Jam dari hari tempat pemicu berjalan. - Bilangan bulat
- Rangkaian Bilangan Bulat
weekDays Hari dalam minggu pemicu berjalan. Nilai hanya dapat ditentukan dengan frekuensi mingguan.
- Senin
- Selasa
- Rabu
- Kamis
- Jumat
- Sabtu
- Minggu
- Rangkaian nilai hari (ukuran rangkaian maksimum adalah 7)

Nilai tidak peka huruf besar/kecil
monthlyOccurrences Hari dalam bulan tempat pemicu berjalan. Nilai hanya dapat ditentukan dengan frekuensi mingguan. - Rangkaian objek monthlyOccurrence: { "day": day, "occurrence": occurrence }
- Atribut hari adalah hari dalam minggu saat pemicu berjalan. Misalnya, propert monthlyOccurrences dengan nilai hari{Sunday} berarti tiap hari Minggu dalam sebulan. Atribut hari wajib.
- Atribut kemunculan adalah kemunculan hari tertentu 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
- Rangkaian nilai

Pemicu jendela tumbling

Pemicu jendela tumbling adalah jenis pemicu yang aktif pada interval waktu berkala dari waktu mulai yang ditentukan, saat mempertahankan status. Jendela tumbling adalah serangkaian interval waktu tetap, tidak tumpang tindih, dan berdekatan.

Untuk informasi selengkapnya tentang pemicu jendela tumbling dan, contohnya, lihat Membuat pemicu jendela tumbling.

Contoh jadwal pengulangan pemicu

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

Contoh mengasumsikan nilai interval adalah 1, dan 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 semacam ini dijelaskan dalam tabel di bagian sebelumnya.

Contoh Deskripsi
{"hours":[5]} Jalankan pada pukul 05.00 tiap hari.
{"minutes":[15], "hours":[5]} Jalankan pada pukul 05.15 tiap 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]} Berjalan setiap 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 tiap hari, ketika nilai frekuensi adalah "hari."
{"minutes":[0]} Jalankan tiap jam pada jam.

Pemicu ini berjalan tiap jam pada jam mulai pukul 00.00, 01.00, 02.00, dan sebagainya.

Jadwal ini setara dengan pemicu dengan nilai frekuensi "jam" dan nilai startTime nol menit, atau tidak ada jadwal, tetapi nilai frekuensi "hari". Jika nilai frekuensi adalah "minggu" atau "bulan," jadwal hanya berjalan satu hari seminggu atau satu hari sebulan.
{"minutes":[15]} Jalankan 15 menit setelah tiap jam.

Pemicu ini berjalan 15 menit setelah tiap 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"]} Jalankan pukul 17.15 dan 17.45 pada hari Senin, Rabu, dan Jumat tiap minggu.
{"minutes":[0,15,30,45], "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} Berjalan setiap 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"]} Jalankan tiap 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 pukul 06.00 pada hari kedua puluh delapan tiap bulan (dengan asumsi nilai frekuensi "bulan").
{"minutes":[0], "hours":[6], "monthDays":[-1]} Jalankan 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]} Jalankan pukul 06.00 pada hari pertama dan terakhir tiap bulan.
{monthDays":[1,14]} Jalankan pada hari pertama dan keempat belas tiap bulan pada waktu mulai yang ditentukan.
{"minutes":[0], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1}]} Jalankan pada hari Jumat pertama tiap 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. Untuk menjalankan pemicu pada hari Jumat terakhir yang terjadi tiap bulan, pertimbangkan untuk menggunakan -1, bukan 5 untuk nilai kemunculan.
{"minutes":[0,15,30,45], "monthlyOccurrences":[{"day":"friday", "occurrence":-1}]} Jalankan tiap 15 menit pada hari Jumat terakhir tiap bulan.
{"minutes":[15,45], "hours":[5,17], "monthlyOccurrences":[{"day":"wednesday", "occurrence":3}]} Jalankan pukul 05.15, 05.45, 17.15, dan 17.45 pada hari Rabu ketiga tiap bulan.

Perbandingan jenis pemicu

Pemicu jendela tumbling dan pemicu jadwal beroperasi pada heartbeat waktu. Bagaimana perbedaan keduanya?

Catatan

Eksekusi pemicu jendela tumbling menunggu eksekusi alur yang dipicu diselesaikan. Status eksekusinya mencerminkan status eksekusi alur yang dipicu. Misalnya, jika eksekusi alur yang dipicu dibatalkan, eksekusi pemicu jendela tumbling yang sesuai ditandai dibatalkan. Ini berbeda dengan perilaku "jalankan dan lupakan" dari pemicu jadwal, yang ditandai berhasil selama eksekusi alur dimulai.

Tabel berikut menyediakan perbandingan pemicu jendela tumbling dengan pemicu jadwal:

Item Pemicu jendela tumbling Menjadwalkan pemicu
Skenario isi ulang Didukung. Eksekusi alur dapat dijadwalkan untuk jendela yang sudah berlalu. Tidak didukung. Eksekusi alur hanya dapat dieksekusi pada periode waktu dari waktu saat ini dan masa mendatang.
Keandalan 100% keandalan. Eksekusi alur dapat dijadwalkan untuk semua jendela dari tanggal mulai tertentu tanpa celah. Kurang dapat diandalkan.
Kemampuan coba lagi Didukung. Eksekusi alur yang gagal memiliki kebijakan coba lagi default 0, atau kebijakan yang ditentukan oleh pengguna dalam definisi pemicu. Secara otomatis mencoba lagi ketika eksekusi alur gagal karena batas konkurensi/server/pembatasan (artinya, kode status 400: User Error, 429: Too many requests, and 500: Internal Server error). Tidak didukung.
Konkurensi Didukung. Pengguna dapat secara eksplisit menetapkan batas konkurensi untuk pemicu. Mengizinkan antara 1 dan 50 eksekusi alur yang dipicu konkuren. Tidak didukung.
Variabel sistem Bersamaan dengan @trigger().scheduledTime dan @trigger().startTime, ini juga mendukung penggunaan variabel sistem WindowStart dan WindowEnd. Pengguna dapat mengakses trigger().outputs.windowStartTime dan trigger().outputs.windowEndTime sebagai variabel sistem pemicu dalam definisi pemicu. Nilai secara berturut-turut digunakan sebagai waktu mulai jendela dan waktu akhir jendela . Misalnya, untuk pemicu jendela tumbling yang berjalan tiap jam, untuk jendela 01.00 hingga 02.00, definisi adalah trigger().outputs.windowStartTime = 2017-09-01T01:00:00Z dan trigger().outputs.windowEndTime = 2017-09-01T02:00:00Z. Hanya mendukung variabel @trigger().scheduledTime dan @trigger().startTime default.
Hubungan alur ke pemicu Mendukung hubungan satu ke satu. Hanya satu alur yang bisa dipicu. Mendukung hubungan banyak ke banyak. Beberapa pemicu dapat memulai satu alur. Satu pemicu dapat memulai beberapa alur.

Pemicu berbasis kejadian

Alur eksekusi pemicu berbasis kejadian sebagai respons kejadian. Ada dua jenis pemicu berbasis peristiwa.

  • Pemicu kejadian penyimpanan menjalankan alur pada kejadian yang terjadi di akun Storage, seperti kedatangan file, atau penghapusan file di akun Azure Blob Storage.
  • Pemicu peristiwa kustom memproses dan menangani artikel kustom di Event Grid

Untuk informasi selengkapnya tentang pemicu berbasis kejadian, lihat Pemicu Kejadian Penyimpanan dan Pemicu Kejadian Kustom.

Langkah berikutnya

Lihat tutorial berikut di GitHub: