Tüm Ürünler
Search
Belge Merkezi

Function Compute:Zaman tetikleyicileri

Son Güncelleme:Oct 08, 2026

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

Bir işlev oluşturdunuz.

1. Adım: Zaman tetikleyicisi oluşturun

  1. Function Compute konsolunda oturum açın. Sol gezinme bölmesinde Function Management > Functions seçeneğini belirleyin.

  2. Üst gezinme çubuğundan bir bölge seçin. Functions sayfasında hedef işleve tıklayın.

  3. İşlev ayrıntıları sayfasında Trigger sekmesini seçin ve ardından Create Trigger seçeneğine tıklayın.

  4. 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.

      Not

      Saat 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

  1. İşlev ayrıntıları sayfasındaki Code sekmesinde Test Function yanındaki image.png simgesine tıklayın ve açılan listeden Configure Test Parameters seçeneğini belirleyin.

  2. 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.

  1. İş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                      
  2. 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?.