Jenis jadwal pada EventBridge Scheduler - EventBridge Penjadwal

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Jenis jadwal pada EventBridge Scheduler

Topik berikut menjelaskan berbagai jenis jadwal yang didukung Amazon EventBridge Scheduler, serta cara EventBridge Scheduler menangani waktu musim panas, dan penjadwalan di zona waktu yang berbeda. Anda dapat memilih dari tiga jenis jadwal saat mengonfigurasi jadwal Anda: jadwal berbasis tarif, berbasis cron, dan satu kali.

Baik jadwal berbasis tarif dan cron adalah jadwal berulang. Anda mengonfigurasi setiap jenis jadwal berulang menggunakan ekspresi jadwal untuk jenis jadwal yang ingin Anda konfigurasi, dan menentukan zona waktu di mana EventBridge Scheduler mengevaluasi ekspresi.

Jadwal satu kali adalah jadwal yang memanggil target hanya sekali. Anda mengonfigurasi jadwal satu kali dengan menentukan waktu, tanggal, dan zona waktu di mana EventBridge Penjadwal mengevaluasi jadwal.

catatan

Semua jenis jadwal pada EventBridge Scheduler memanggil target mereka dengan presisi 60 detik. Ini berarti bahwa jika Anda mengatur jadwal Anda untuk dijalankan1:00, itu akan memanggil API target antara 1:00:00 dan1:00:59.

Gunakan bagian berikut untuk mempelajari tentang mengonfigurasi ekspresi jadwal untuk setiap jenis jadwal berulang, dan cara mengatur jadwal satu kali di Scheduler. EventBridge

Jadwal berbasis tarif

Jadwal berbasis tarif dimulai setelah tanggal mulai yang Anda tentukan untuk jadwal Anda, dan berjalan pada tingkat reguler yang Anda tentukan hingga tanggal akhir jadwal. Anda dapat mengatur kasus penggunaan penjadwalan berulang yang paling umum menggunakan jadwal berbasis tarif. Misalnya, jika Anda menginginkan jadwal yang memanggil targetnya setiap 15 menit, setiap dua jam sekali, atau setiap lima hari sekali, Anda dapat menggunakan jadwal berbasis tarif untuk mencapai ini. Anda mengonfigurasi jadwal berbasis laju menggunakan ekspresi laju.

Dengan jadwal berbasis tarif, Anda menggunakan StartDateproperti untuk mengatur kemunculan pertama jadwal. Jika Anda tidak menyediakan jadwal berdasarkan tarif, jadwal Anda mulai memanggil target dengan segera. StartDate

Ekspresi tingkat memiliki dua bidang wajib yang dipisahkan oleh spasi putih, seperti yang ditunjukkan pada berikut ini.

Sintaksis

rate(value unit)
nilai

Bilangan positif

unit

Unit waktu yang Anda inginkan jadwal Anda untuk memanggil targetnya.

Masukan yang valid: minutes | | hours days

Contoh

Contoh berikut menunjukkan cara menggunakan ekspresi tingkat dengan AWS CLI create-schedule perintah untuk mengkonfigurasi jadwal berbasis laju. Contoh ini membuat jadwal yang berjalan setiap lima menit dan mengirimkan pesan ke antrian Amazon SQS, menggunakan tipe target template. SqsParameters

Karena contoh ini tidak menetapkan nilai untuk --start-date parameter, jadwal mulai memanggil targetnya segera setelah Anda membuat dan mengaktifkannya.

$ aws scheduler create-schedule --schedule-expression 'rate(5 minutes)' --name schedule-name \ --target '{"RoleArn": "role-arn", "Arn": "QUEUE_ARN", "Input": "TEST_PAYLOAD" }' \ --flexible-time-window '{ "Mode": "OFF"}'

Jadwal berbasis cron

Ekspresi cron menciptakan jadwal berulang berbutir halus yang berjalan pada waktu tertentu yang Anda pilih. EventBridge Scheduler mendukung konfigurasi jadwal berbasis cron di Universal Coordinated Time (UTC), atau di zona waktu yang Anda tentukan saat Anda membuat jadwal. Dengan jadwal berbasis cron, Anda memiliki kontrol lebih besar atas kapan dan seberapa sering jadwal Anda berjalan. Gunakan jadwal berbasis cron saat Anda membutuhkan jadwal pengulangan yang disesuaikan yang tidak didukung oleh salah satu ekspresi tingkat EventBridge Scheduler. Misalnya, Anda dapat membuat jadwal berbasis cron yang berjalan pada pukul 8:00 pagi. PST pada hari Senin pertama setiap bulan. Anda mengonfigurasi jadwal berbasis cron menggunakan ekspresi cron.

Ekspresi cron terdiri dari lima bidang wajib yang dipisahkan oleh spasi putih: menit, jam, day-of-month, bulan day-of-week, dan satu bidang opsional, tahun, seperti yang ditunjukkan pada berikut ini.

Sintaksis

cron(minutes hours day-of-month month day-of-week year)
Bidang Nilai-nilai Wildcard

Menit

0-59

, - * /

Jam

0-23

, - * /

D ay-of-month

1-31

, - * ? / L W

Bulan

1-12 atau JAN-DES

, - * /

D ay-of-week

1-7 atau MGG-SBT

, - * ? L #

Tahun

1970-2199

, - * /

Wildcard
  • Wildcard , (koma) mencakup nilai tambahan. Di bidang Bulan, JAN, FEB, MAR mencakup Januari, Februari, dan Maret.

  • Wildcard - (tanda hubung) menentukan rentang. Di bidang Tanggal, 1-15 mencakup tanggal 1 hingga 15 pada bulan yang ditentukan.

  • Wildcard * (bintang) mencakup semua nilai di bidang. Di bidang Jam, * mencakup setiap jam. Anda tidak dapat menggunakan* di ay-of-week bidang D ay-of-month dan D. Jika Anda menggunakannya di satu bidang, Anda harus menggunakan ? di bidang lain.

  • Wildcard / (garis miring) menentukan kenaikan. Di bidang menit, Anda bisa memasukkan 1/10 untuk menentukan setiap menit kesepuluh, mulai dari menit pertama jam (sebagai contoh, menit ke-11, 21, dan 31, dan seterusnya).

  • Wildcard ? (tanda tanya) menentukan pilihan apa pun. Di ay-of-month bidang D Anda bisa memasukkan 7 dan jika ada hari dalam seminggu yang dapat diterima, Anda bisa masuk? di ay-of-week bidang D.

  • Wildcard L di ay-of-week bidang D ay-of-month atau D menentukan hari terakhir bulan atau minggu.

  • WWildcard di ay-of-month bidang D menentukan hari kerja. Di ay-of-month bidang D, 3W tentukan hari kerja yang paling dekat dengan hari ketiga bulan itu.

  • Wildcard # di ay-of-week bidang D menentukan contoh tertentu dari hari yang ditentukan dalam seminggu dalam sebulan. Sebagai contoh, 3#2 akan menjadi hari Selasa kedua setiap bulan: 3 mengacu pada hari Selasa karena itu adalah hari ketiga setiap minggu, dan 2 mengacu pada hari kedua dari jenis tersebut dalam bulan tersebut.

    catatan

    Jika Anda menggunakan karakter '#', Anda hanya dapat menentukan satu ekspresi di day-of-week bidang. Sebagai contoh, "3#1,6#3" tidak valid karena ditafsirkan sebagai dua ekspresi.

Contoh

Contoh berikut menunjukkan bagaimana menggunakan ekspresi cron dengan AWS CLI create-schedule perintah untuk mengkonfigurasi jadwal berbasis cron. Contoh ini membuat jadwal yang berjalan pada 10:15 UTC+0 pada hari Jumat terakhir setiap bulan selama tahun 2022 hingga 2023, dan mengirimkan pesan ke antrian Amazon SQS, menggunakan jenis target template. SqsParameters

$ aws scheduler create-schedule --schedule-expression "cron(15 10 ? * 6L 2022-2023)" --name schedule-name \ --target '{"RoleArn": "role-arn", "Arn": "QUEUE_ARN", "Input": "TEST_PAYLOAD" }' \ --flexible-time-window '{ "Mode": "OFF"}'

Jadwal satu kali

Jadwal satu kali akan memanggil target hanya sekali pada tanggal dan waktu yang Anda tentukan menggunakan tanggal yang valid, dan stempel waktu. EventBridge Scheduler mendukung penjadwalan di Universal Coordinated Time (UTC), atau di zona waktu yang Anda tentukan saat Anda membuat jadwal.

catatan

Jadwal satu kali masih dihitung terhadap kuota akun Anda setelah selesai berjalan dan menjalankan targetnya. Sebaiknya hapus jadwal satu kali Anda setelah selesai berjalan.

Anda mengonfigurasi jadwal satu kali menggunakan ekspresi at. Ekspresi at terdiri dari tanggal dan waktu di mana Anda ingin EventBridge Scheduler untuk memanggil jadwal Anda, seperti yang ditunjukkan dalam berikut ini.

Sintaksis

at(yyyy-mm-ddThh:mm:ss)

Ketika Anda mengkonfigurasi jadwal satu kali, EventBridge Scheduler mengabaikan StartDate dan EndDate Anda menentukan jadwal.

Contoh

Contoh berikut menunjukkan bagaimana menggunakan pada ekspresi dengan AWS CLI create-schedule perintah untuk mengkonfigurasi jadwal satu kali. Contoh ini membuat jadwal yang berjalan sekali pada pukul 1 siang UTC-8 pada 20 November 2022, dan mengirimkan pesan ke antrian Amazon SQS, menggunakan tipe target template. SqsParameters

$ aws scheduler create-schedule --schedule-expression "at(2022-11-20T13:00:00)" --name schedule-name \ --target '{"RoleArn": "role-arn", "Arn": "QUEUE_ARN", "Input": "TEST_PAYLOAD" }' \ --schedule-expression-timezone "America/Los_Angeles" --flexible-time-window '{ "Mode": "OFF"}'

Zona waktu di EventBridge Scheduler

EventBridge Scheduler mendukung konfigurasi jadwal berbasis cron dan satu kali di zona waktu apa pun yang Anda tentukan. EventBridge Scheduler menggunakan Database Zona Waktu yang dikelola oleh Internet Assigned Numbers Authority (IANA).

DenganAWS CLI, Anda dapat mengatur zona waktu di mana Anda ingin EventBridge Scheduler mengevaluasi jadwal Anda menggunakan --schedule-expression-timezone parameter. Misalnya, perintah berikut membuat jadwal berbasis cron yang memanggil target Amazon SQS template di America/New_York setiap hari pada SendMessage pukul 8:30 pagi.

$ aws scheduler create-schedule --schedule-expression "cron(30 8 * * ? *)" --name schedule-in-est \ --target '{"RoleArn": "role-arn", "Arn": "QUEUE_ARN", "Input": "This schedule runs in the America/New_York time zone." }' \ --schedule-expression-timezone "America/New_York" --flexible-time-window '{ "Mode": "OFF"}'

Waktu penghematan siang hari di Scheduler EventBridge

EventBridge Scheduler secara otomatis menyesuaikan jadwal Anda untuk waktu musim panas. Ketika waktu bergeser ke depan di Musim Semi, jika ekspresi cron jatuh pada tanggal dan waktu yang tidak ada, pemanggilan jadwal Anda dilewati. Ketika waktu bergeser mundur di Musim Gugur, jadwal Anda berjalan hanya sekali dan tidak mengulangi pemanggilannya. Pemanggilan berikut terjadi secara normal pada tanggal dan waktu yang ditentukan.

EventBridge Scheduler menyesuaikan jadwal Anda tergantung pada zona waktu yang Anda tentukan saat Anda membuat jadwal. Jika Anda mengonfigurasi jadwal di America/New_York, jadwal Anda menyesuaikan kapan waktu berubah di zona waktu tersebut, sementara jadwal di Amerika/Los_Angeles disesuaikan tiga jam kemudian ketika waktu berubah di pantai barat.

Untuk jadwal berbasis tarif yang digunakan days sebagai unit, sepertirate(1 days), days mewakili durasi 24 jam pada jam. Ini berarti bahwa ketika daylight saving time menyebabkan satu hari memendek menjadi 23 jam, atau diperpanjang hingga 25 jam, EventBridge Scheduler masih mengevaluasi ekspresi laju 24 jam setelah pemanggilan terakhir jadwal.

catatan

Beberapa zona waktu tidak mengamati waktu musim panas, sesuai dengan aturan dan peraturan setempat. Jika Anda membuat jadwal di zona waktu yang tidak mengamati waktu musim panas, EventBridge Scheduler tidak menyesuaikan jadwal Anda. Penyesuaian waktu siang hari tidak berlaku untuk jadwal dalam waktu terkoordinasi universal (UTC).

Contoh

Pertimbangkan skenario di mana Anda membuat jadwal menggunakan ekspresi cron berikut di America/Los_Angeles:. cron(30 2 * * ? *) Jadwal ini berjalan setiap hari pada pukul 2:30 pagi di zona waktu yang ditentukan.

  • Musim semi ke depan — Ketika waktu bergeser ke depan di Musim Semi dari pukul 1:59 pagi hingga 3:00 pagi, EventBridge Scheduler melewatkan pemanggilan jadwal pada hari itu, dan melanjutkan menjalankan jadwal secara normal pada hari berikutnya.

  • Fall-back — Ketika waktu bergeser mundur di Musim Gugur dari 2:59 pagi hingga 2:00 pagi, EventBridge Scheduler menjalankan jadwal hanya sekali pada pukul 2:30 pagi sebelum shift terjadi, tetapi tidak mengulangi pemanggilan jadwal lagi pada pukul 2:30 pagi setelah pergeseran waktu.