Pemicu waktu menjalankan fungsi secara otomatis pada waktu atau interval tertentu, menyediakan penjadwalan tugas yang fleksibel untuk skenario yang memerlukan eksekusi periodik.
Skenario
Pemicu waktu dapat digunakan dalam berbagai skenario. Skema penggunaan umum meliputi hal-hal berikut:
Pemrosesan batch data secara rutin, seperti mengumpulkan data lengkap dan menghasilkan laporan setiap jam.
Menjadwalkan aksi harian, seperti mengirim kupon di awal setiap jam.
Menjalankan tugas asinkron yang terpisah dari logika bisnis Anda, seperti membersihkan data setiap hari pukul 00.00.
Prasyarat
Langkah 1: Membuat pemicu waktu
Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, pilih .
Di bilah navigasi atas, pilih Wilayah. Pada halaman Functions, klik fungsi yang dituju.
Di halaman detail fungsi, klik tab Triggers, lalu klik Create Trigger.
Di panel Create Trigger, konfigurasikan parameter, lalu klik OK.
Parameter
Prosedur
Contoh
Trigger Type
Pilih Time Trigger.
Time Trigger
Name
Masukkan nama kustom untuk pemicu tersebut.
my_trigger
Version Or Alias
Nilai default adalah LATEST. Jika ingin membuat pemicu untuk versi atau alias yang berbeda, alihkan terlebih dahulu ke versi atau alias tersebut di pojok kanan atas halaman detail fungsi. Untuk informasi selengkapnya tentang versi dan alias, lihat Manage versions dan Manage aliases.
LATEST
Trigger Method
Pilih metode pemicu sesuai kebutuhan:
Interval: Di kotak teks Interval, masukkan bilangan bulat positif n. Fungsi kemudian akan dipicu setiap n menit.
Specified Time: Pilih zona waktu dan tentukan tanggal, hari dalam seminggu, serta waktu. Fungsi kemudian akan dipicu pada waktu yang ditentukan dalam zona waktu tersebut.
Custom: Di kotak teks CRON Expression, masukkan ekspresi cron. Fungsi kemudian akan dipicu pada waktu yang ditentukan oleh ekspresi cron tersebut.
Interval
Trigger Message
Masukkan pesan kustom. Pesan pemicu digunakan sebagai nilai payload dalam event.
Ukuran pesan pemicu dibatasi hingga 128 KB, sama dengan batas muatan untuk pemanggilan asinkron.
awesome-fc
Jika Anda memiliki persyaratan zona waktu tertentu dan perlu menggunakan CRON Expression kustom, lihat deskripsi ekspresi waktu berikut.
Ekspresi cron (UTC)
Secara default, ekspresi cron didasarkan pada Coordinated Universal Time (UTC). UTC tertinggal 8 jam dari zona waktu UTC+8. Misalnya, untuk menjadwalkan fungsi agar berjalan setiap hari pukul 12.00 (UTC+8), Anda harus mengonversi waktu tersebut menjadi pukul 04.00 (UTC). Ekspresi cron yang sesuai adalah
0 0 4 * * *.Ekspresi cron (UTC+8)
Jika tugas Anda perlu berjalan di zona waktu tertentu, Anda dapat menentukannya menggunakan CRON_TZ. Misalnya, untuk memicu fungsi pada pukul 04.00 di hari pertama setiap bulan dalam zona waktu UTC+8, gunakan ekspresi
CRON_TZ=Asia/Shanghai 0 0 4 1 * *. Ekspresi zona waktu bervariasi tergantung wilayahnya. Gunakan ekspresi yang berlaku untuk wilayah Anda.CatatanJika zona waktu Anda menerapkan daylight saving time (DST), fungsi mungkin dipicu dua kali atau dilewati selama masa transisi. Untuk menghindarinya, jangan menjadwalkan tugas selama periode perubahan DST.
Setelah pemicu dibuat, pemicu tersebut akan muncul dalam daftar Trigger Name. Untuk mengubah atau menghapus pemicu, lihat Manage triggers.
Langkah 2: Mengonfigurasi parameter input fungsi
Di tab Code halaman detail fungsi, klik ikon
di samping Test Function dan pilih Configure Test Parameters dari daftar tarik-turun.Di panel Configure Test Parameters, pilih Create New Test Event atau Edit Existing Test Event, masukkan nama event dan konten event, lalu klik OK.
Pemicu waktu memanggil fungsi dengan event yang menggunakan format berikut.
{ "triggerTime":"2023-12-26T07:49:00Z", "triggerName":"timer-trigger", "payload":"awesome-fc" }Parameter
Tipe
Contoh
Deskripsi
triggerTime
String
2023-12-26T07:49:00Z
Waktu saat fungsi dipicu.
triggerName
String
timer-trigger
Nama pemicu waktu.
payload
String
awesome-fc
Pesan kustom yang Anda masukkan untuk parameter Trigger Message dalam konfigurasi pemicu.
Langkah 3: Menulis dan menguji kode fungsi
Setelah membuat pemicu waktu, tulis dan uji kode fungsi Anda untuk memverifikasi bahwa fungsinya bekerja dengan benar. Pemicu waktu akan menjalankan fungsi secara otomatis pada waktu yang ditentukan.
Di halaman detail fungsi, pada tab Code, tulis kode Anda di editor kode, lalu klik Deploy Code.
Topik ini menggunakan Python sebagai contoh. Kode contoh berikut disediakan sebagai referensi.
import json import logging logger = logging.getLogger() def handler(event, context): logger.info('event: %s', event) # Parse the json evt = json.loads(event) triggerName = evt["triggerName"] triggerTime = evt["triggerTime"] payload = evt["payload"] logger.info('triggerName: %s', triggerName) logger.info("triggerTime: %s", triggerTime) logger.info("payload: %s", payload) return 'Timer Payload: ' + payloadKlik Test Function.
Setelah eksekusi selesai, Anda dapat melihat hasilnya di atas tab Code.
Referensi
Jika pemicu waktu yang Anda konfigurasi gagal memicu fungsi terkait, periksa mode dan waktu pemicu. Jika Anda mengatur Trigger Mode ke Custom Settings, perhatikan bahwa ekspresi cron yang Anda tentukan di CRON Expression menggunakan UTC. Untuk informasi selengkapnya, lihat What do I do if a trigger cannot trigger function execution?.