全部产品
Search
文档中心

Function Compute:Fitur Lanjutan dari Pemicu

更新时间:Jul 06, 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 Pemicu Antrian Simple Message Queue (sebelumnya MNS), Pemicu ApsaraMQ for RocketMQ, Pemicu ApsaraMQ for RabbitMQ, Pemicu ApsaraMQ for Kafka, dan Pemicu Data Transmission Service (DTS).

Metode Pemanggilan

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

Metode Pemanggilan

body batas ukuran

Batas waktu maksimum

Pemanggilan Sinkron

32 MB

5 menit

Pemanggilan Asinkron

128 KB

5 menit

Konfigurasi Dorongan

Catatan

Gunakan batas 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, konfigurasikan parameter Batch Push Messages dan Batch Push Interval.

  • Batch Push Messages: Jumlah maksimum pesan yang dikirim per pemanggilan. Permintaan dikirim ketika jumlah pesan dalam backlog mencapai nilai yang ditentukan. Nilai valid: [1, 10000].

  • Batch Push Interval: Interval waktu fungsi dipanggil. Sistem mengumpulkan pesan dan mengirimkannya ke Function Compute pada interval tertentu. Nilai valid: 0 hingga 15. Satuan: 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 10s. 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 10s dan ukuran pesan mencapai 200 KB (100 x 2 KB) yang 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 dan transmisi acara antara layanan dan platform yang berbeda.

  • RawData: Hanya konten bidang data dalam CloudEvents yang dikirimkan. Metadata lain dalam format CloudEvents tidak dikirimkan.

Contoh berikut menunjukkan acara dalam format CloudEvents dan RawData dalam Pemicu Antrian Simple Message Queue (sebelumnya MNS) dalam mode 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 dikonfigurasi. Berikut adalah kebijakan pengulangan yang tersedia:

  • Backoff Retry: Sistem mengulang permintaan hingga tiga kali. Interval antara dua pengulangan berturut-turut berkisar 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

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

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

FAQ

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

A: Untuk pemanggilan sinkron, kebijakan pengulangan dipicu oleh kesalahan eksekusi fungsi. Untuk pemanggilan asinkron, kebijakan pengulangan tidak dipicu oleh kesalahan eksekusi fungsi. Namun, pengulangan pemanggilan asinkron dipicu. Untuk informasi lebih lanjut, lihat Kebijakan Pengulangan.

Berikut adalah dua jenis pengulangan fungsi:

  • Pengulangan mungkin berhasil.

    Anda dapat mengulang permintaan dalam fungsi tanpa perlu menjalankan kebijakan pengulangan.

  • Pengulangan pasti gagal.

    Pengulangan tidak bermakna dan meningkatkan biaya pengulangan.

Kebijakan Toleransi Kesalahan

Kebijakan toleransi kesalahan menentukan apakah akan mengabaikan kesalahan selama eksekusi.

  • Fault Tolerance Allowed

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

  • Fault Tolerance Prohibited

    Tugas konsumsi diblokir ketika permintaan gagal dieksekusi dan diulang.

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 yang ditentukan. Layanan tujuan untuk antrian pesan gagal yang didukung oleh Function Compute termasuk Simple Message Queue (formerly MNS), ApsaraMQ for RocketMQ, ApsaraMQ for Kafka, dan EventBridge. Anda dapat memilih berbagai jenis antrian berdasarkan kebutuhan bisnis Anda.

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

Catatan

Untuk pemanggilan asinkron, pesan tidak dikirim ke antrian pesan gagal pemicu ketika terjadi kesalahan fungsi. Dalam kasus ini, pesan dikirim ke layanan tujuan yang dikonfigurasi di Function Compute untuk pemanggilan asinkron. Untuk informasi lebih lanjut, lihat Hasil Callback.