全部产品
Search
文档中心

Function Compute:Fitur Lanjutan Pemicu

更新时间:Jul 02, 2025

Topik ini menjelaskan fitur lanjutan dari pemicu.

Catatan Penggunaan

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

Metode Pemanggilan

Pemicu untuk Function Compute mendukung mode pemanggilan sinkron dan asinkron. Tabel berikut menggambarkan batasan kedua mode tersebut.

Mode Pemanggilan

Ukuran maksimum body

Batas waktu maksimum

Pemanggilan Sinkron

32 MB

5 menit

Pemanggilan Asinkron

128 KB

5 menit

Konfigurasi Dorongan

Catatan

Anda harus menggunakan batasan ukuran body untuk menentukan apakah akan mengurangi jumlah pesan teragregasi dalam dorongan batch. Untuk informasi lebih lanjut tentang batasan ukuran body, lihat Metode Pemanggilan.

Dorongan Batch

Setelah mengaktifkan dorongan batch, Anda perlu mengonfigurasi parameter Batch Push Messages dan Batch Push Interval.

  • Batch Push Messages: Jumlah maksimum pesan yang dikirim per pemanggilan. Permintaan hanya dikirim ketika jumlah pesan dalam backlog mencapai nilai yang ditentukan. Nilai valid: 1 hingga 10.000.

  • Batch Push Interval: Interval waktu fungsi dipanggil. Sistem mengumpulkan pesan dan mengirimkannya ke Function Compute pada interval waktu yang ditentukan. Nilai valid: 0 hingga 15. Unit: detik. Nilai 0 menunjukkan bahwa pesan dikirim secara real-time.

Dorongan batch membantu Anda menggabungkan beberapa acara. Ketika salah satu kondisi parameter Batch Push Messages atau Batch Push Interval terpenuhi, fungsi dipicu dan pesan permintaan didorong ke Function Compute sekaligus.

Contoh dorongan batch

  • Contoh 1

    Batch Push Messages diatur ke 100 dan Batch Push Interval diatur ke 15s. Ukuran setiap pesan adalah 1 KB. Jumlah pesan mencapai 100 dalam 10 detik. Dalam kasus ini, pesan segera dikirim tanpa menunggu selama 15 detik.

  • Contoh 2

    Batch Push Messages diatur ke 100 dan Batch Push Interval diatur ke 15s. Ukuran setiap pesan adalah 1 KB. Jumlah pesan adalah 50 ketika interval mencapai 15s. Dalam kasus ini, pesan segera dikirim tanpa menunggu jumlah pesan mencapai 100.

  • Contoh 3

    Batch Push Messages diatur ke 100 dan Batch Push Interval diatur ke 15s. Ukuran setiap pesan adalah 2 KB. Invocation Method diatur ke Asynchronous Invocation. Jumlah pesan mencapai 100 dalam 10 detik dan ukuran pesan mencapai 200 KB (100 x 2 KB), melebihi batas atas ukuran body untuk pemanggilan asinkron. Dalam kasus ini, pesan segera dikirim dalam dua batch. 64 pesan didorong ke Function Compute dalam batch pertama dan 36 pesan didorong ke Function Compute dalam batch kedua.

Format Dorongan

Format dorongan menentukan format elemen data dalam parameter acara.

  • CloudEvents: Spesifikasi untuk menggambarkan data acara dalam format umum. CloudEvents menyederhanakan deklarasi acara dan transmisi antara layanan dan platform yang berbeda.

  • RawData: Hanya konten bidang data dalam CloudEvents yang dikirim. Metadata lainnya dalam format CloudEvents tidak dikirim.

Kode sampel berikut menunjukkan sebuah acara dalam format CloudEvents dan RawData. Dalam kode sampel, digunakan Simple Message Queue (formerly MNS) queue trigger.

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"
    }
}

RawData

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

Kode sampel berikut menunjukkan sebuah acara dalam format CloudEvents dan RawData dalam mode streaming acara.

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"
    }
]

Kebijakan Pengulangan

Permintaan fungsi yang gagal dapat diulang berdasarkan kebijakan pengulangan yang telah dikonfigurasi. Berikut adalah kebijakan pengulangan yang tersedia:

  • Backoff Retry: Sistem mengulang permintaan hingga tiga kali. Interval antara dua pengulangan berturut-turut berkisar secara acak antara 10 hingga 20 detik.

  • Exponential Decay Retry: Kebijakan pengulangan default. Sistem mengulang permintaan hingga 176 kali. Interval waktu untuk setiap pengulangan meningkat secara eksponensial hingga 512 detik. Total waktu pengulangan adalah 24 jam. Interval pengulangan adalah 1 detik, 2 detik, 4 detik, 8 detik, 16 detik, 32 detik, 64 detik, 128 detik, 256 detik, dan 512 detik. Interval 512 detik digunakan sebanyak 167 kali.

Skenario di mana pengulangan dipicu

  • Kesalahan 429: Permintaan dibatasi oleh Function Compute. Pembatasan bersifat sementara dan permintaan diulang.

  • Kesalahan 5xx: Fungsi gagal dieksekusi karena kesalahan sistem di Function Compute.

  • Kesalahan eksekusi fungsi: Fungsi gagal dieksekusi sebagai hasil dari implementasi fungsi yang salah.

FAQ

T: Apakah kesalahan eksekusi fungsi yang disebabkan oleh masalah implementasi fungsi memicu kebijakan pengulangan?

J: Ya.

Kebijakan toleransi kesalahan

Kebijakan toleransi kesalahan menentukan apakah akan mengabaikan kesalahan ketika terjadi.

  • Fault Tolerance Allowed

    Sistem melewati permintaan yang gagal dieksekusi setelah pengulangan dan melanjutkan untuk memproses permintaan berikutnya.

  • Fault Tolerance Prohibited

    Konsumsi diblokir ketika permintaan gagal dieksekusi setelah pengulangan.

Antrian Pesan Gagal

Anda dapat mengonfigurasi antrian pesan gagal hanya ketika Fault Tolerance Allowed diaktifkan.

  • Jika Anda mengaktifkan fitur antrian pesan gagal, pesan yang tidak diproses atau yang telah mencapai jumlah maksimum pengulangan dikirim ke layanan tujuan. Function Compute mendukung layanan tujuan berikut: Simple Message Queue (formerly MNS), ApsaraMQ for RocketMQ, ApsaraMQ for Kafka, dan EventBridge.

  • Jika Anda tidak mengaktifkan fitur antrian pesan gagal, pesan yang melebihi jumlah maksimum pengulangan dibuang.

Konsumsi Bersamaan

Anda dapat menggunakan utas konsumsi bersamaan untuk meningkatkan throughput. Anda dapat mengonfigurasi Concurrency Quota hanya untuk pemicu ApsaraMQ for Kafka. Konsumsi bersamaan di ApsaraMQ for Kafka harus diimplementasikan bersama dengan partisi topik. Skenario berikut termasuk:

  • Partisi topik = Utas konsumsi bersamaan: Satu utas mengonsumsi satu partisi topik.

  • Partisi topik > Utas konsumsi bersamaan: Beberapa utas konsumsi bersamaan mengonsumsi semua partisi secara merata.

  • Partisi topik < Utas konsumsi bersamaan: Satu utas mengonsumsi satu partisi topik. Utas konsumsi tambahan tidak valid.

Catatan

Untuk memastikan bahwa sumber daya Anda sepenuhnya dimanfaatkan, kami sarankan Anda memilih Partisi topik = Utas konsumsi bersamaan atau Partisi topik > Utas konsumsi bersamaan.