Serverless Workflow memungkinkan Anda menjadwalkan eksekusi alur kerja dengan mengonfigurasi ekspresi cron. Topik ini menjelaskan cara membuat jadwal berbasis waktu untuk Serverless Workflow.
Prasyarat
Sebuah alur kerja telah dibuat. Untuk informasi lebih lanjut, lihat Buat alur.
Buat jadwal berbasis waktu di konsol Serverless Workflow
Masuk ke konsol Serverless Workflow.
Di halaman Flows, temukan alur kerja yang ingin Anda buat jadwal berbasis waktunya dan klik nama alur kerja di kolom Name.

Di halaman Details, klik tab Schedule. Di bagian Schedule Management, klik Create Schedule.

Di panel Create Schedule, konfigurasikan parameter dan klik OK. Tabel berikut menjelaskan parameter yang perlu dikonfigurasi.
Parameter
Deskripsi
Contoh
Nama jadwal berbasis waktu.
Masukkan nama untuk jadwal berbasis waktu kustom.
schedule-test
Ekspresi
Pilih mode untuk mengonfigurasi waktu penjadwalan dan tentukan aturan waktu.
Nilai valid:
Cron Expression: Gunakan ekspresi cron standar untuk mengonfigurasi waktu penjadwalan. Untuk informasi lebih lanjut, lihat Parameter untuk jadwal berbasis waktu.
Time Interval: Gunakan ekspresi
@everyuntuk mengonfigurasi waktu penjadwalan.Tentukan interval di mana alur kerja dijadwalkan. Unit: menit.
Pilih Time Interval dan atur interval waktu menjadi 1, yang menunjukkan bahwa alur kerja dijadwalkan setiap menit. ························
Payload
Masukkan parameter kustom dalam format objek JSON.
{"key": "value"}
Deskripsi
Masukkan deskripsi untuk jadwal berbasis waktu.
test schedule
Aktifkan Jadwal
Aktifkan atau nonaktifkan jadwal berbasis waktu.
Nyalakan Enable Schedule.
Setelah membuat jadwal berbasis waktu, Anda dapat melihatnya di tab Schedule dari alur kerja.

Selain itu, Anda dapat melihat catatan eksekusi terjadwal dari alur kerja di tab Executions dari alur kerja. Dalam contoh ini, alur kerja dieksekusi setiap menit.

Buat jadwal berbasis waktu menggunakan Alibaba Cloud CLI
Anda harus menginstal dan mengonfigurasi Alibaba Cloud CLI sebelum menggunakannya. Untuk informasi lebih lanjut, lihat Apa itu Alibaba Cloud CLI?
Opsional: Jalankan perintah berikut untuk melihat parameter permintaan operasi API dalam pembuatan jadwal berbasis waktu:
aliyun fnf CreateSchedule helpKeluaran yang diharapkan:
Alibaba Cloud Command Line Interface Version 3.0.45 Product: fnf (FunctionFlow) Link: https://xxxxxxxx.html Parameters: --CronExpression String Required --FlowName String Required --ScheduleName String Required --Description String Optional --Enable Boolean Optional --Payload String Optional --RequestId String OptionalJalankan perintah berikut untuk membuat jadwal berbasis waktu:
aliyun fnf CreateSchedule --FlowName test --ScheduleName "schedule-test" --CronExpression "@every 1m" --Payload "{\"key\":\"value\"}" --Description "test schedule" --Enable trueKeluaran yang diharapkan:
{ "CreatedTime": "2024-06-26T03:36:57Z", "CronExpression": "@every 1m", "Description": "test schedule", "Enable": true, "LastModifiedTime": "2024-06-26T03:36:57Z", "Payload": "{\"key\":\"value\"}", "RequestId": "c7034d83-d1ba-648c-f05c-156439a857d7", "ScheduleId": "b888a48f-229d-4b35-adc6-5c63a37cf3b1", "ScheduleName": "schedule-test" }
Parameter untuk jadwal berbasis waktu
Parameter jadwal berbasis waktu memiliki format berikut:
{
payload: "payload"
cronExpression: "cronExpression"
enable: true|false
}payload: Menentukan input kustom jadwal berbasis waktu dalam format objek JSON.
cronExpression: Menentukan waktu ketika alur kerja dijadwalkan. Waktu penjadwalan dapat dinyatakan dalam salah satu bentuk berikut:
CatatanInterval penjadwalan minimum adalah 1 menit. Jika interval yang ditentukan lebih pendek dari 1 menit, maka tidak valid.
@every Value Unit
Alur kerja dijadwalkan pada interval yang ditentukan oleh Value Unit. Dalam ekspresi tersebut, Value adalah bilangan bulat positif dan Unit adalah m.
Contoh
Ekspresi
Dijadwalkan setiap 5 menit
@every 5m
Dijadwalkan setiap 1,5 jam
@every 90m
Ekspresi waktu
Ekspresi cron
Ekspresi cron menggunakan Waktu Universal Terkoordinasi (UTC). Ekspresi cron standar berada dalam format berikut:
Seconds Minutes Hours Day-of-month Month Day-of-week.Ekspresi zona waktu
Jika Anda ingin menjadwalkan alur kerja berdasarkan zona waktu tertentu, Anda dapat menggunakan ekspresi CRON_TZ. Sebagai contoh, jika Anda ingin memicu alur kerja pada pukul empat pagi hari pertama setiap bulan (UTC+8), Anda dapat mengatur CRON-TZ ke
Asia/Shanghai 0 0 4 1 * *.CatatanJika daylight saving time (DST) dan waktu musim dingin digunakan di zona waktu Anda, fungsi akan dieksekusi lebih sering atau lebih jarang ketika waktu berubah antara DST dan waktu musim dingin. Kami merekomendasikan agar Anda tidak mengatur waktu eksekusi pada titik waktu ketika terjadi perubahan antara DST dan waktu musim dingin.
Tabel berikut menjelaskan contoh umum ekspresi waktu. Sebagai contoh, jika Anda ingin alur kerja dijadwalkan pada pukul 12:00 (UTC+8), ekspresi cron adalah
0 0 4 * * *dan ekspresi zona waktu adalahCRON_TZ=Asia/Shanghai 0 0 12 * * *.Contoh
Ekspresi cron
Ekspresi zona waktu
Jadwalkan alur kerja pada pukul 12:00 setiap hari.
0 0 4 * * *CRON_TZ=Asia/Shanghai 0 0 12 * * *Jadwalkan alur kerja pada pukul 12:30 setiap hari.
0 30 4 * * *CRON_TZ=Asia/Shanghai 0 30 12 * * *Jadwalkan fungsi pada menit ke-26, ke-29, dan ke-33 di setiap jam.
0 26,29,33 * * * *CRON_TZ=Asia/Shanghai 0 26,29,33 * * * *Jadwalkan alur kerja pada pukul 12:30 setiap hari dari Senin hingga Jumat.
0 30 4 ? * MON-FRICRON_TZ=Asia/Shanghai 0 30 12 ? * MON-FRIJadwalkan alur kerja setiap 5 menit dari pukul 12:00 hingga 14:00 setiap hari dari Senin hingga Jumat.
0 0/5 4-6 ? * MON-FRICRON_TZ=Asia/Shanghai 0 0/5 12-14 ? * MON-FRIJadwalkan alur kerja pada pukul 12:00 setiap hari dari Januari hingga April.
0 0 4 ? JAN,FEB,MAR,APR *CRON_TZ=Asia/Shanghai 0 0 12 ? JAN,FEB,MAR,APR *Deskripsi bidang
Bidang
Nilai valid
Karakter khusus yang diizinkan
Detik
0 hingga 59
Tidak ada
Menit
0 hingga 59
, - * /
Jam
0 hingga 23
, - * /
Hari-bulan
1 hingga 31
, - * ? /
Bulan
1 hingga 12 atau JAN hingga DEC
, - * /
Hari-minggu
1 hingga 7 atau MON hingga SUN
, - * ?
Karakter khusus
Karakter
Deskripsi
Contoh
*
Menunjukkan apa saja atau setiap.
Di bidang Menit, 0 menentukan bahwa alur kerja dieksekusi pada detik ke-0 setiap menit.
,
Menunjukkan daftar nilai.
Di bidang Hari-minggu, MON menunjukkan Senin, WED menunjukkan Rabu, dan FRI menunjukkan Jumat.
-
Menunjukkan rentang.
Di bidang Jam, 10-12 menentukan rentang waktu dari pukul 10:00 hingga 12:00 dalam UTC.
?
Menunjukkan nilai yang tidak pasti.
Karakter ini digunakan bersama dengan nilai lain yang ditentukan. Sebagai contoh, jika Anda menentukan tanggal tertentu tetapi tidak peduli hari apa dalam seminggu, Anda dapat menggunakan karakter khusus ini di bidang Hari-minggu.
/
Menentukan penambahan. n/m menunjukkan penambahan m dimulai dari posisi n.
Di bidang menit, 3/5 menunjukkan bahwa alur kerja dieksekusi setiap 5 menit mulai dari menit ke-3.
Format masukan
Jadwal berbasis waktu akan dilakukan untuk menjadwalkan alur kerja Anda berdasarkan format masukan berikut:
{
"triggerTime": "2020-01-01T00:00:00Z",
"triggerName": "time-trigger",
"payload": {
"key": "value",
"key_int": 1
}
}triggerTime: Menentukan waktu ketika alur kerja dijadwalkan. Alur kerja mungkin dijadwalkan beberapa kali pada waktu tertentu. Anda dapat menghapus duplikat penjadwalan berdasarkan waktu.
triggerName: Menentukan nama jadwal berbasis waktu.
payload: Anda dapat menentukan masukan dalam konfigurasi penjadwalan. Alur kerja memperluas string JSON masukan ke format dict JSON. Anda dapat membacanya dalam definisi alur kerja dengan menggunakan
$.payload.Key. Untuk informasi lebih lanjut, lihat Masukan dan keluaran.