全部产品
Search
文档中心

Function Compute:Fitur Pemicu Lanjutan

更新时间:Mar 15, 2026

Topik ini menjelaskan fitur sistem lanjutan untuk pemicu.

Catatan Penggunaan

Fitur lanjutan yang dijelaskan dalam topik ini hanya berlaku untuk pemicu sumber event kustom, termasuk Simple Message Queue (formerly MNS) queue triggers, RocketMQ triggers, RabbitMQ triggers, Kafka triggers, dan DTS triggers.

Metode Pemanggilan

Pemicu Function Compute mendukung dua metode pemanggilan: sinkron dan asinkron. Batasan untuk kedua metode tersebut adalah sebagai berikut.

Invocation Mode

body Size

Maximum Timeout

Synchronous Invocation

32 MB

5 menit

Asynchronous Invocation

128 KB

5 menit

Konfigurasi Push

Catatan

Dorong batch memerlukan pertimbangan batas ukuran body untuk menentukan apakah perlu mengurangi jumlah pesan yang diagregasi. Untuk informasi mengenai batas ukuran body, lihat Invocation Methods.

Batch Push

Setelah mengaktifkan batch push, atur Batch Push Messages dan Batch Push Interval.

  • Batch Push Messages: Jumlah maksimum pesan yang dikirim dalam satu pemanggilan fungsi. Permintaan hanya dikirim ketika jumlah pesan yang terakumulasi mencapai nilai yang ditetapkan. Rentang nilainya adalah [1, 10000].

  • Batch Push Interval: Interval waktu untuk memanggil fungsi. Sistem mengagregasi pesan dan mengirimkannya ke Function Compute pada setiap interval. Rentang nilainya adalah [0, 15], dalam satuan detik. Nilai 0 detik berarti tidak ada penundaan; pengiriman bersifat real-time.

Batch push membantu Anda mengagregasi beberapa event secara batch. Ketika salah satu kondisi—Batch Push Messages atau Batch Push Interval—terpenuhi, fungsi dipicu, dan pesan permintaan didorong secara batch ke Function Compute.

Contoh Batch Push

  • Contoh 1

    Atur Batch Push Messages menjadi 100 pesan, dengan ukuran setiap pesan sebesar 1 KB, dan Batch Push Interval menjadi 15 detik. Jika 100 pesan terakumulasi dalam waktu 10 detik, dorongan langsung dipicu tanpa menunggu hingga 15 detik.

  • Contoh 2

    Atur Batch Push Messages menjadi 100 pesan, dengan ukuran setiap pesan sebesar 1 KB, dan Batch Push Interval menjadi 15 detik. Jika hanya 50 pesan terakumulasi dalam waktu 15 detik, dorongan langsung dipicu tanpa menunggu hingga mencapai 100 pesan.

  • Contoh 3

    Atur Batch Push Messages menjadi 100 pesan, dengan ukuran setiap pesan sebesar 2 KB, Batch Push Interval menjadi 15 detik, dan Invocation Method menjadi Async Invocation. Jika 100 pesan terakumulasi dalam waktu 10 detik (total ukuran pesan 100 × 2 KB = 200 KB), yang mencapai batas ukuran body untuk pemanggilan asinkron, dorongan langsung dipicu. Batch pertama mengagregasi 64 pesan dan mendorongnya ke Function Compute, sedangkan batch kedua mengagregasi 36 pesan dan mendorongnya ke Function Compute.

Push Format

Tentukan format untuk setiap elemen data dalam parameter Event pada titik masuk fungsi.

  • CloudEvents: Spesifikasi yang menjelaskan data event dalam format universal, bertujuan menyederhanakan deklarasi dan transmisi event antar layanan dan platform yang berbeda.

  • RawData: Hanya mengirimkan konten bidang data dalam CloudEvents, tanpa informasi metadata lainnya dalam format CloudEvents.

Ambil contoh Simple Message Queue (formerly MNS) queue trigger. Format Event untuk tipe CloudEvents dan RawData adalah sebagai berikut.

CloudEvents

[
    {
    "id":"c2g71017-6f65-fhcf-a814-a396fc8d****",
    "source":"MNS-Function-mnstrigger",
    "specversion":"1.0",
    "type":"mns:Queue:SendMessage",
    "datacontenttype":"application/json; charset=utf-8",
    "subject":"acs:mns:cn-hangzhou:164901546557****:queues/zeus",
    "time":"2021-04-08T06:28:17.093Z",
    "aliyunaccountid":"164901546557****",
    "aliyunpublishtime":"2021-10-15T07:06:34.028Z",
    "aliyunoriginalaccountid":"164901546557****",
    "aliyuneventbusname":"MNS-Function-mnstrigger",
    "aliyunregionid":"cn-chengdu",
    "aliyunpublishaddr":"42.120.XX.XX",
    "data":{
        "requestId":"606EA3074344430D4C81****",
        "messageId":"C6DB60D1574661357FA227277445****",
        "messageBody":"TEST"
    }
    },
    {
    "id":"d2g71017-6f65-fhcf-a814-a396fc8d****",
    "source":"MNS-Function-mnstrigger",
    "specversion":"1.0",
    "type":"mns:Queue:SendMessage",
    "datacontenttype":"application/json; charset=utf-8",
    "subject":"acs:mns:cn-hangzhou:164901546557****:queues/zeus",
    "time":"2021-04-08T06:28:17.093Z",
    "aliyunaccountid":"164901546557****",
    "aliyunpublishtime":"2021-10-15T07:06:34.028Z",
    "aliyunoriginalaccountid":"164901546557****",
    "aliyuneventbusname":"MNS-Function-mnstrigger",
    "aliyunregionid":"cn-chengdu",
    "aliyunpublishaddr":"42.120.XX.XX",
    "data":{
        "requestId":"606EA3074344430D4C81****",
        "messageId":"C6DB60D1574661357FA227277445****",
        "messageBody":"TEST"
    }
    }
]

RawData

[
    {
        "requestId":"606EA3074344430D4C81****",
        "messageId":"C6DB60D1574661357FA227277445****",
        "messageBody":"TEST"
    },
    {
        "requestId":"606EA3074344430D4C81****",
        "messageId":"C6DB60D1574661357FA227277445****",
        "messageBody":"TEST"
    }
]

Retry Policies

Permintaan fungsi dapat diulang dalam beberapa skenario kegagalan sesuai dengan kebijakan ulang yang dikonfigurasi. Opsi kebijakan ulang adalah sebagai berikut.

  • Backoff Retry: Mengulang 3 kali, dengan interval acak antara 10 detik hingga 20 detik untuk setiap percobaan ulang.

  • Exponential Decay Retry: Kebijakan ulang default. Mengulang 176 kali, dengan interval ulang meningkat secara eksponensial hingga 512 detik. Total waktu ulang adalah 24 jam. Interval ulangnya adalah 1 detik, 2 detik, 4 detik, 8 detik, 16 detik, 32 detik, 64 detik, 128 detik, 256 detik, 512 detik... 512 detik (total 167 interval 512 detik).

Skenario untuk Memicu Percobaan Ulang

  • 429 error: Menunjukkan bahwa Function Compute melakukan throttle terhadap permintaan. Throttling bersifat sementara, sehingga memicu ulang.

  • 5xx error: Menunjukkan adanya exception sistem Function Compute yang mencegah eksekusi fungsi.

FAQ

Q: Apakah error eksekusi fungsi yang disebabkan oleh masalah implementasi fungsi akan memicu kebijakan ulang?

A: Untuk pemanggilan sinkron, masalah implementasi fungsi akan memicu kebijakan ulang. Untuk pemanggilan asinkron, masalah implementasi fungsi tidak memicu kebijakan ulang, tetapi memicu kebijakan ulang pemanggilan asinkron. Untuk informasi lebih lanjut, lihat Retry Policies.

Ulang error eksekusi fungsi mencakup dua jenis berikut.

  • Ulang yang berpotensi berhasil

    Tidak perlu menjalankan kebijakan ulang. Implementasikan ulang di dalam fungsi.

  • Ulang yang tidak mungkin berhasil.

    Ulang tidak memiliki arti dan hanya menambah biaya ulang.

Fault Tolerance Policies

Pilih apakah akan mengaktifkan toleransi kesalahan saat terjadi error.

  • Fault Tolerance Allowed

    Jika permintaan gagal dan upaya ulang juga gagal, lewati permintaan ini dan lanjutkan memproses permintaan berikutnya.

  • Fault Tolerance Prohibited

    Jika permintaan gagal dan upaya ulang juga gagal, tugas konsumsi akan diblokir.

Dead-Letter Queue

Konfigurasikan dead-letter queue hanya jika Fault Tolerance Allowed diaktifkan.

  • Jika Anda mengaktifkan dead-letter queue, pesan yang tidak diproses atau melebihi batas ulang akan dikirimkan ke layanan target. Function Compute mendukung layanan target berikut: Simple Message Queue (formerly MNS), ApsaraMQ for RocketMQ, ApsaraMQ for Kafka, dan EventBridge. Pilih jenis antrian yang berbeda sesuai kebutuhan.

  • Jika Anda tidak mengaktifkan dead-letter queue, pesan yang melebihi batas ulang akan dibuang.

Catatan

Dalam skenario pemanggilan asinkron, jika fungsi mengalami error, pesan tidak dikirimkan ke dead-letter queue pemicu. Sebaliknya, pesan tersebut dikirimkan ke layanan target pemanggilan asinkron yang dikonfigurasi di sisi Function Compute. Untuk informasi lebih lanjut, lihat Result Callbacks.