Zaman tetikleyicisi, bir işlevi belirli bir saatte veya tekrarlayan bir programa göre otomatik olarak çalıştırır. Bu sayede esnek görev zamanlaması yapılır ve periyodik görevler gerektiren uygulamalar için idealdir.
Senaryolar
Zaman tetikleyicilerinin yaygın kullanım senaryoları şunlardır:
Rapor oluşturmak amacıyla her saat tam verileri toplama gibi planlı toplu iş veri işleme.
Saat başı kupon gönderme gibi günlük eylemlerin planlanması.
Her gün gece yarısı verileri temizleme gibi iş mantığından bağımsız eşzamansız görevler.
Ön koşullar
1. Adım: Zaman tetikleyicisi oluşturun
Function Compute konsolunda oturum açın. Sol gezinme bölmesinde seçeneğini belirleyin.
Üst gezinme çubuğundan bir bölge seçin. Functions sayfasında hedef işleve tıklayın.
İşlev ayrıntıları sayfasında Trigger sekmesini seçin ve ardından Create Trigger seçeneğine tıklayın.
-
Tetikleyici Oluştur panelinde parametreleri yapılandırın ve ardından OK seçeneğine tıklayın.
Parametre
Eylem
Örnek
Trigger Type
Time Trigger seçeneğini belirleyin.
Time Trigger
Name
Tetikleyici için özel bir ad girin.
my_trigger
Version or Alias
Varsayılan değer LATEST şeklindedir. Başka bir sürüm veya takma ad için tetikleyici oluşturmak üzere önce işlev ayrıntıları sayfasının sağ üst köşesinden ilgili sürüme veya takma ada geçiş yapın. Sürümler ve takma adlar hakkında daha fazla bilgi için bkz. Sürüm yönetimi ve Takma ad yönetimi.
LATEST
Trigger Mode
Gereksinimlerinize göre bir tetikleme yöntemi seçin:
Interval: Interval metin kutusuna pozitif bir n tamsayısı girerek işlevin her n dakikada bir çalışmasını sağlayın.
Select Custom Time: Bir saat dilimi seçin ve işlevin belirtilen saat dilimindeki belirli bir tarihte, haftanın gününde ve saatte çalışması için bu bilgileri belirtin.
Custom Settings: Cron Expression metin kutusuna bir cron ifadesi girerek işlevin ifade tarafından belirtilen zamanda çalışmasını sağlayın.
Time Interval
Trigger Message
Özel parametreler girin. Bu tetikleyici mesajı, olaydaki payload değeri olarak kullanılır.
Tetikleyici mesajının boyutu, eşzamansız çağırmalar için geçerli olan payload sınırıyla aynı şekilde 128 KB ile sınırlıdır.
awesome-fc
Belirli saat dilimi gereksinimleriniz varsa ve Cron Expression ayarını özelleştirmeniz gerekiyorsa aşağıdaki zaman ifadeleri açıklamalarına bakın.
-
Cron ifadesi (UTC)
Cron ifadeleri varsayılan olarak UTC'de çalışır; bu da Pekin Saati'nden (UTC+8) 8 saat daha erkendir. Örneğin, bir işlevi Pekin Saatiyle (UTC+8) her gün 12:00'da çalışacak şekilde planlamak isterseniz eşdeğer UTC saati 04:00 olur. Bu durumda
0 0 4 * * *ifadesini kullanabilirsiniz. -
Cron ifadesi (UTC+8)
Görevinizin belirli bir saat diliminde çalışması gerekiyorsa CRON_TZ kullanarak saat dilimini belirtin. Örneğin, UTC+8 saat diliminde her ayın ilk günü saat 04:00'te bir işlevi tetiklemek için
CRON_TZ=Asia/Shanghai 0 0 4 1 * *ifadesini kullanın. Saat dilimi ifadeleri bölgelere göre değişir. Bulunduğunuz bölge için geçerli olan ifadeyi kullanın.NotSaat diliminiz yaz saati uygulamasını (DST) kullanıyorsa DST ve standart saat arasındaki geçiş dönemlerinde görevler iki kez çalışabilir veya atlanabilir. Görevleri bu geçiş dönemlerinin dışında planlamanızı öneririz.
Tetikleyici oluşturulduktan sonra Trigger Name listesinde görünür. Tetikleyiciyi değiştirmek veya silmek için bkz. Tetikleyicileri yönetme.
2. Adım: İşlevin giriş parametrelerini yapılandırın
İşlev ayrıntıları sayfasındaki Code sekmesinde Test Function yanındaki
simgesine tıklayın ve açılan listeden Configure Test Parameters seçeneğini belirleyin.-
Configure Test Parameters panelinde Create New Test Event veya Modify Existing Test Event seçeneğini belirleyin. Bir olay adı ve olay içeriği girin ve ardından Tamam'a tıklayın.
Zaman tetikleyicisi işlevi tetiklemek için aşağıdaki olay biçimini kullanır.
{ "triggerTime":"2023-12-26T07:49:00Z", "triggerName":"timer-trigger", "payload":"awesome-fc" }
Parametre
Tür
Örnek Değer
Açıklama
triggerTime
Dize
2023-12-26T07:49:00Z
İşlevin tetiklendiği zaman.
triggerName
Dize
timer-trigger
Zaman tetikleyicisinin adı.
payload
Dize
awesome-fc
Tetikleyici yapılandırmasında girdiğiniz özel parametre. Bu değer, Trigger Message alanına karşılık gelir.
3. Adım: İşlev kodunu yazın ve test edin
Zaman tetikleyicisini oluşturduktan sonra işlevin doğru çalıştığını doğrulamak için kodu yazın ve test edin. Zaman tetikleyicisi, işlevi belirtilen saatte otomatik olarak çalıştırır.
-
İşlev ayrıntıları sayfasında Code sekmesinde kod düzenleyicide kodu yazın ve ardından Deploy seçeneğine tıklayın.
Bu konuda örnek olarak Python kodu kullanılmıştır. Örnek kod aşağıda gösterilmiştir.
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: ' + payload -
Test Function seçeneğine tıklayın.
Çalıştırma tamamlandıktan sonra sonucu Code sekmesinin üzerinde görüntüleyin.
Referanslar
Yapılandırdığınız zaman tetikleyicisi işlevi çalıştıramazsa öncelikle tetikleme yöntemini ve ilgili zaman ayarlarını kontrol edin. Özel bir Cron Expression ayarladıysanız bunun varsayılan olarak UTC kullandığını unutmayın. Sorun giderme yöntemleri için bkz. Bir tetikleyici işlevi çalıştıramazsa ne yapmalıyım?.