全部产品
Search
文档中心

Function Compute:Apa yang harus saya lakukan jika pemicu tidak dapat memicu eksekusi fungsi?

更新时间:Aug 20, 2025

Deskripsi masalah

Pemicu tidak dapat memicu eksekusi fungsi.

Penyebab yang mungkin

Berikut adalah kemungkinan penyebab:

  • Peristiwa pemicu tidak berhasil dihasilkan.

  • Aturan untuk memicu eksekusi fungsi tidak terpenuhi.

  • Peran yang dikonfigurasi untuk pemicu salah.

Solusi

Solusi 1: Periksa apakah peristiwa pemicu dihasilkan

  • Pemicu OSS

    Sebagai contoh, jika Anda menentukan untuk memicu fungsi setelah objek diunggah ke Object Storage Service (OSS), ikuti langkah-langkah berikut untuk mendiagnosis masalah:

    Periksa apakah objek diunggah ke bucket yang sesuai.

    • Jika objek diunggah dengan benar, periksa log eksekusi yang sesuai di Function Compute.

      • Jika log eksekusi ditemukan, fungsi telah dipicu. Dalam hal ini, fungsi mungkin gagal. Anda harus men-debug kode Anda berdasarkan log tersebut.

      • Jika tidak ada log eksekusi yang ditemukan, fungsi tidak dipicu. Dalam hal ini, periksa apakah aturan pemicu terpenuhi. Untuk informasi lebih lanjut, lihat Solusi 2: Periksa apakah aturan pemicu terpenuhi.

    • Jika file belum diunggah, unggah file tersebut.

  • Pemicu Simple Log Service

    Jika pemicu Simple Log Service gagal memicu eksekusi fungsi, Anda dapat mendiagnosis masalah dengan melakukan langkah-langkah berikut:

    • Periksa apakah perubahan data tambahan terjadi di Logstore yang terkait dengan pemicu. Fungsi terkait akan dipicu jika data shard berubah.

    • Periksa pengecualian dalam log eksekusi fungsi.

Solusi 2: Periksa apakah aturan pemicu terpenuhi

Berikut adalah beberapa contoh aturan pemicu umum.

  • Pemicu waktu

    Periksa metode pemicu dan sistem waktu. Anda harus memeriksa sistem waktu mana yang digunakan oleh pemicu Anda. Jika Anda mengatur metode pemicu ke ekspresi CRON kustom CRON expression, secara default Waktu Universal Terkoordinasi (UTC) digunakan. Untuk informasi lebih lanjut, lihat Langkah 1: Buat pemicu waktu.

    • Jika Anda mengatur ekspresi CRON menjadi 0 0 4 * * *, fungsi dipicu pada pukul 04:00 (UTC+0) atau 12:00 (UTC+8) setiap hari.

    • Jika Anda mengatur ekspresi CRON menjadi CRON_TZ=Asia/Shanghai 0 0 4 1 * *, fungsi dipicu pada pukul 04:00 (UTC+8) pada hari pertama setiap bulan.

  • Pemicu OSS

    • Fungsi Anda dan OSS bucket terkaitnya harus berada di wilayah yang sama.

    • Awalan atau akhiran objek yang diunggah harus sama dengan awalan atau akhiran objek yang Anda konfigurasikan untuk pemicu.

      Sebagai contoh, jika Anda mengatur awalan objek menjadi ab, dan mengunggah a/b.zip, ab.zip, dan abc.zip ke OSS, hanya ab.zip dan abc.zip yang dapat memicu eksekusi fungsi.

    • Peristiwa OSS harus persis sama dengan peristiwa pemicu yang dikonfigurasikan. Jika tidak, eksekusi fungsi tidak dapat dipicu. Berikut adalah kasus-kasus di mana peristiwa OSS tidak cocok dengan peristiwa pemicu.

      • Anda mengunggah objek menggunakan ossbrowser dan unggah multipart. Setelah pengunggahan, peristiwa adalah oss:ObjectCreated:CompleteMultipartUpload. Jika peristiwa pemicu yang Anda konfigurasikan adalah oss:ObjectCreated:PutObject atau oss:ObjectCreated:PostObject, eksekusi fungsi tidak dapat dipicu.

      • Peristiwa ketika Anda mengunggah objek menggunakan konsol adalah oss:ObjectCreated:PostObject, tetapi peristiwa pemicu yang Anda konfigurasikan adalah oss:ObjectCreated:PutObject. Peristiwa ketika Anda mengunggah file dengan memanggil operasi oss:ObjectCreated:PutObject adalah oss:ObjectCreated:PutObject, tetapi peristiwa pemicu yang Anda konfigurasikan adalah oss:ObjectCreated:PostObject. Dalam kedua kasus tersebut, eksekusi fungsi tidak dapat dipicu.

    • Ketika Anda menghapus objek dari bucket tempat versioning diaktifkan di OSS, Anda harus menentukan ID versi.

      Jika Anda tidak menentukan ID versi saat menggunakan ossbrowser untuk menghapus objek, peristiwa oss:ObjectRemoved:DeleteObject atau oss:ObjectRemoved:DeleteObjects tidak dipicu. Versi saat ini dari objek menjadi versi sebelumnya, dan penanda hapus ditambahkan. Untuk informasi lebih lanjut, lihat FAQ.

    • Pemicu OSS berbasis EventBridge mulai berlaku 30 detik setelah dibuat.

  • Pemicu Tablestore

    Anda harus mengaktifkan fitur Stream untuk tabel data instance Tablestore. Untuk informasi lebih lanjut, lihat bagian "Langkah 1: Aktifkan fitur Stream untuk tabel data" dari topik Gunakan Function Compute.

Solusi 3: Periksa apakah peran pemicu benar

Periksa apakah peran yang Anda konfigurasikan untuk pemicu dihapus, atau apakah peran tersebut memiliki izin yang diperlukan. Kami merekomendasikan agar Anda mengonfigurasi peran standar untuk pemicu.

Referensi

Jika objek yang Anda unggah memicu fungsi beberapa kali, Anda harus mengonfigurasi ulang peristiwa pemicu untuk fungsi Anda. Untuk informasi lebih lanjut, lihat Apa yang harus saya lakukan jika fungsi dipicu beberapa kali ketika objek diunggah ke OSS?