全部产品
Search
文档中心

Function Compute:Tugas asinkron

更新时间:Dec 17, 2025

Jika Anda ingin melacak dan menyimpan status setiap fase pemanggilan asinkron suatu fungsi, aktifkan mode tugas untuk memproses permintaan asinkron. Topik ini menjelaskan latar belakang, batasan, dan fitur umum tugas asinkron.

Latar Belakang

Setelah mengaktifkan fitur tugas asinkron, Anda memperoleh kemampuan berikut:

  • Informasi transisi status—seperti Enqueued, Succeeded, dan Failed—dicatat untuk setiap pemanggilan fungsi.

  • Kemampuan manajemen siklus hidup permintaan fungsi disediakan. Anda dapat menghentikan tugas asinkron yang sedang berjalan.

Latensi meningkat untuk pemanggilan dan eksekusi fungsi jika fitur tugas asinkron diaktifkan karena informasi status perlu disimpan. Peningkatan latensi tersebut tidak menimbulkan biaya tambahan. Untuk informasi lebih lanjut tentang penagihan Function Compute, lihat Ikhtisar penagihan.

Batasan

  • Skenario

    Meskipun fitur tugas asinkron menyediakan lebih banyak kemampuan, beban sistem yang lebih besar juga ditimbulkan. Kami menyarankan agar Anda menonaktifkan fitur ini dalam skenario berikut:

    • Aplikasi bisnis Anda sensitif terhadap latensi pada rantai pemrosesan permintaan dan memerlukan latensi rata-rata kurang dari 100 milidetik.

    • Anda perlu memulai setidaknya ribuan pemanggilan asinkron per detik.

  • Wilayah yang didukung

    Fitur tugas asinkron didukung di wilayah berikut: Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Qingdao), Tiongkok (Beijing), Tiongkok (Zhangjiakou), Tiongkok (Ulanqab), Tiongkok (Shenzhen), Tiongkok (Chengdu), Tiongkok (Hong Kong), Singapura, Inggris (London), AS (Silicon Valley), AS (Virginia), Jerman (Frankfurt), Australia (Sydney), Malaysia (Kuala Lumpur), Indonesia (Jakarta), Thailand (Bangkok), Jepang (Tokyo), dan Korea Selatan (Seoul).

  • Periode validitas

    Anda hanya dapat mengkueri informasi status tugas dalam tujuh hari terakhir.

Perbandingan antara tugas asinkron dan pekerjaan Kubernetes

Baik fitur tugas asinkron Function Compute maupun pekerjaan Kubernetes dapat digunakan untuk menjalankan tugas asinkron. Function Compute menyediakan platform eksekusi tugas asinkron siap pakai yang lebih efisien serta lebih mudah dikendalikan dan diamati berdasarkan fitur tugas asinkron. Tabel berikut membandingkan kedua metode tersebut:

Item

Tugas asinkron Function Compute

Pekerjaan Kubernetes

Skenario

Tugas real-time yang berlangsung puluhan milidetik dan tugas offline yang berlangsung puluhan jam.

Tugas offline dengan beban kerja tetap dan persyaratan rendah terhadap kecepatan pengiriman tugas serta ketepatan waktu.

Observabilitas

Didukung. Log, metrik seperti jumlah tugas dalam antrian, serta kemampuan observabilitas seperti kueri durasi tautan tugas dan status tugas disediakan.

Anda harus mengintegrasikan perangkat lunak sumber terbuka untuk menerapkan kemampuan observabilitas.

Penskalaan otomatis instans tugas

Didukung. Penskalaan otomatis berdasarkan jumlah tugas dalam antrian dan penggunaan sumber daya instans dapat dilakukan.

Anda harus menggunakan antrian tugas untuk menerapkan penskalaan dan penyeimbangan beban instans secara manual, yang lebih rumit.

Kecepatan penskalaan instans tugas

Dalam hitungan milidetik.

Dalam hitungan menit.

Pemanfaatan sumber daya instans tugas

Anda hanya perlu memilih tipe instans. Instans akan diskalakan secara otomatis. Anda dikenai biaya berdasarkan durasi pemrosesan tugas aktual. Pemanfaatan sumber daya tinggi.

Anda harus menentukan spesifikasi dan jumlah instans saat pekerjaan diajukan. Sulit menerapkan penskalaan otomatis dan penyeimbangan beban instans. Pemanfaatan sumber daya rendah.

Kecepatan pengiriman tugas

Pengguna tunggal dapat mengirimkan puluhan ribu tugas per detik.

Hingga ratusan pekerjaan dapat dimulai dalam satu kluster per detik.

Pengiriman tugas terjadwal atau tertunda

Didukung.

Pengiriman tugas terjadwal didukung. Pengiriman tugas tertunda tidak didukung.

Deduplikasi tugas

Didukung.

Tidak didukung.

Penghentian tugas

Didukung.

Didukung dalam kondisi tertentu. Anda dapat menghentikan tugas dengan menghentikan instans tugas.

Pembatasan laju tugas

Didukung. Pembatasan laju dapat dilakukan pada granularitas berbeda, seperti tingkat pengguna atau tingkat fungsi pemrosesan tugas.

Tidak didukung.

Panggilan balik hasil otomatis untuk tugas

Didukung.

Tidak didukung.

Biaya pengembangan dan O&M

Anda hanya perlu menerapkan logika pemrosesan tugas.

Anda harus memelihara kluster Kubernetes.

Manajemen tugas

Status tugas asinkron

Untuk setiap pemanggilan tugas, Function Compute mencatat informasi perubahan status tugas dan memungkinkan Anda mengkueri status tugas secara real time. Anda dapat melihat status tugas menggunakan SDK Function Compute atau Konsol Function Compute. Sebuah tugas dapat berada dalam salah satu status berikut:

Status

Deskripsi

Enqueued

Pemanggilan asinkron masuk ke dalam antrian dan menunggu dieksekusi.

Processed

Pemanggilan asinkron dikeluarkan dari antrian dan menunggu dipicu.

Running

Pemanggilan sedang dieksekusi dan instans Anda telah mulai menjalankan kode tugas.

Succeeded

Pemanggilan berhasil.

Failed

Pemanggilan gagal.

Stopped

Anda mencoba menghentikan pemanggilan, dan tugas berhasil dihentikan.

Stopping

Anda mencoba menghentikan tugas, dan tugas sedang dalam proses dihentikan.

Expired

Anda telah mengonfigurasi periode validitas untuk pemanggilan asinkron. Pemanggilan kedaluwarsa dan dibuang.

Invalid

Pemanggilan tidak valid dan tidak dipicu karena alasan tertentu. Misalnya, fungsi dihapus.

Retrying

Pemanggilan sedang dalam proses diulang setelah terjadi kesalahan eksekusi. Saat sistem siap mengulang tugas, status tugas berubah menjadi Running.

Anda dapat memanggil operasi GetAsyncTask untuk mengkueri detail tugas asinkron. Anda juga dapat memanggil operasi ListAsyncTasks untuk memfilter tugas dalam status tertentu.

Kelola tugas

Kelola tugas di Konsol Function Compute

Aktifkan fitur tugas asinkron saat membuat fungsi

  1. Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, klik Functions.

  2. Di bilah navigasi atas, pilih wilayah. Di halaman Functions, klik Create Function.

  3. Di halaman Create Function, pilih Task Function, konfigurasikan parameter sesuai kebutuhan bisnis Anda, lalu klik Create.

    Untuk informasi selengkapnya tentang parameter, lihat Buat fungsi tugas.

Setelah fungsi dibuat, mode tugas diaktifkan secara default di tab Task pada halaman detail fungsi.

Aktifkan mode tugas asinkron untuk fungsi yang sudah ada

Sebelum melanjutkan, pastikan fungsi telah dibuat. Untuk informasi selengkapnya tentang cara membuat fungsi, lihat Buat fungsi.

  1. Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, pilih Function Management > Functions.

  2. Di bilah navigasi atas, pilih wilayah. Di halaman Functions, klik fungsi yang dituju.

  3. Di halaman detail fungsi, klik tab Configurations. Di pohon navigasi sebelah kiri, klik Asynchronous Mode Configurations.

  4. Di bagian Asynchronous Mode Configurations, klik Modify. Di panel Asynchronous Mode Configurations, atur Task Mode menjadi Enable lalu klik Deploy.

Mulai atau hentikan tugas

  1. Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, pilih Function Management > Functions.

  2. Di bilah navigasi atas, pilih wilayah. Di halaman Functions, klik fungsi yang dituju.

  3. Di halaman detail fungsi, klik tab Tasks, lalu klik Submit Task. Di kotak dialog yang muncul, pilih metode pembuatan ID tugas dan tentukan waktu eksekusi tugas, lalu klik OK.

    Anda juga dapat mengklik ikon down di sebelah kanan Submit Task dan memilih Configure Test Parameters dari daftar drop-down. Fungsi event menggunakan event dan fungsi HTTP menggunakan parameter HTTP untuk meneruskan parameter input ke fungsi guna mensimulasikan pengiriman tugas.

    Di daftar tugas di bawah, Anda dapat melihat status tugas, detail tugas, ID permintaan, dan ID instans, serta menyambungkan ke instans.

    image

Panggil operasi API untuk mengelola tugas

Konfigurasikan mode tugas

Anda dapat memanggil operasi PutAsyncInvokeConfig untuk mengaktifkan mode tugas asinkron untuk pemanggilan asinkron. Konfigurasikan asyncTask seperti yang ditunjukkan pada potongan kode berikut. Dengan demikian, mode tugas asinkron diaktifkan untuk semua pemanggilan asinkron fungsi tersebut.

{
  "asyncTask": true
}
Catatan

Setelah Anda mengonfigurasi mode tugas asinkron, Anda masih dapat memanggil fungsi dalam mode sinkron. Mode tugas asinkron hanya berlaku untuk pemanggilan asinkron.

Picu fungsi dalam mode asinkron

Anda dapat memanggil operasi InvokeFunction untuk memicu pemanggilan asinkron guna mengaktifkan mode tugas untuk fungsi tersebut. Atur parameter permintaan x-fc-invocation-type ke Async. Anda dapat menambahkan header permintaan HTTP x-fc-async-task-id untuk menetapkan ID tugas untuk pemanggilan ini. Untuk informasi selengkapnya, lihat Deduplikasi tugas.

Lihat tugas

Setelah Anda mengirimkan tugas, Anda dapat memanggil operasi GetAsyncTask untuk mengkueri status eksekusi dan catatan eksekusi tugas tersebut.

Anda dapat memanggil operasi ListAsyncTasks untuk mengkueri daftar tugas asinkron berdasarkan kata kunci atau kondisi.

Hentikan tugas

Setelah Anda mengirimkan tugas, Anda dapat menghentikan tugas tersebut sesuai kebutuhan bisnis Anda. Anda dapat memanggil operasi StopAsyncTask untuk menghentikan tugas asinkron. Saat menghentikan tugas, Anda harus menentukan ID tugas yang Anda tetapkan saat mengirimkan tugas tersebut. Anda juga dapat memanggil operasi ListAsyncTasks untuk mengkueri ID tugas yang sedang berjalan.

Picu tugas menggunakan event

Anda dapat membuat pemicu yang mendukung pemanggilan asinkron untuk memicu tugas asinkron. Berikut adalah pemicu yang mendukung pemanggilan asinkron:

Deduplikasi tugas

Untuk menghindari eksekusi tugas berulang, Function Compute memungkinkan Anda menetapkan ID unik global untuk setiap tugas yang dikirimkan. Jika operasi asinkron, seperti operasi pengiriman asinkron, mengalami timeout, Anda dapat mencoba ulang dengan mengirimkan tugas menggunakan ID yang sama. Untuk informasi selengkapnya, lihat Kebijakan pengulangan.

Function Compute memungkinkan Anda mengonfigurasi TaskID, yaitu ID tugas unik global. Kami menyarankan agar Anda menentukan ID tugas setiap kali mengirimkan tugas. Anda dapat menggunakan ID tugas tersebut untuk mencoba ulang tugas jika terjadi kesalahan seperti timeout. Function Compute memverifikasi tugas yang Anda kirimkan. Jika tugas dengan ID yang sama masuk ke sistem, permintaan akan ditolak dan kesalahan 409 dikembalikan.

Catatan

Function Compute juga menyediakan RequestID. Jika Anda menetapkan RequestID tetapi tidak menetapkan TaskID, sistem secara otomatis menetapkan TaskID ke nilai RequestID. Saat menggunakan tugas asinkron, kami menyarankan agar Anda menentukan TaskID dan tidak menentukan RequestID.

Tetapkan TaskID

Anda dapat mengirimkan tugas untuk dieksekusi menggunakan Function Compute console, menggunakan Serverless Devs, atau memanggil operasi API. Jika Anda perlu mengonfigurasi TaskID, atur parameter x-fc-async-task-id saat memicu fungsi Anda.

Untuk informasi selengkapnya tentang contoh kode untuk menetapkan TaskID, lihat Contoh kode.

Pemantauan tugas

Anda dapat menggunakan metrik pemantauan tugas yang disediakan oleh Function Compute untuk memantau status tugas asinkron secara real time dan mendeteksi anomali seperti kesalahan dan timeout secara tepat waktu.

Prasyarat

Fungsi telah dibuat. Untuk informasi selengkapnya, lihat Buat fungsi.

Prosedur

  1. Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, pilih Function Management > Functions.

  2. Di bilah navigasi atas, pilih wilayah. Di halaman Functions, klik fungsi yang diinginkan.

    Di halaman detail fungsi, klik tab Monitoring untuk melihat metrik terkait pemanggilan asinkron dan penggunaan sumber daya tingkat instans tugas asinkron. Untuk informasi selengkapnya tentang metrik, lihat Metrik pemantauan.

    • Klik tab Function Metrics untuk melihat metrik terkait pemanggilan asinkron. Gambar berikut menunjukkan contohnya:

      image

    • Klik tab Instance Metrics untuk melihat penggunaan sumber daya tingkat instans tugas asinkron. Gambar berikut menunjukkan contohnya:

      Catatan

      Sebelum mengaktifkan metrik tingkat instans, Anda harus mengaktifkan fitur logging. Untuk informasi selengkapnya, lihat Konfigurasikan fitur logging.

      image

  3. Konfigurasikan aturan peringatan berbasis metrik.

    Jika Anda ingin memantau metrik, seperti penggunaan memori dan penggunaan vCPU, klik image di pojok kanan atas metrik untuk membuka panel Create Metric-based Alert Rule. Konfigurasikan kondisi dan ambang batas peringatan sesuai kebutuhan bisnis Anda, lalu klik OK.

    Gambar berikut memberikan contoh konfigurasi aturan peringatan, di mana peringatan dengan tingkat keparahan Sedang dilaporkan ke kontak melalui DingTalk, email, telepon, dan webhook sepanjang waktu jika backlog pemanggilan asinkron suatu fungsi lebih besar dari atau sama dengan lima.

    image

Orkestrasi pekerjaan

Anda dapat mengintegrasikan Function Compute dengan CloudFlow sehingga pemanggilan asinkron fungsi dapat diterapkan pada proses tugas dalam skenario berskala besar dan kompleks. Anda dapat mengorkestrasikan tugas asinkron Function Compute berdasarkan logika kendali CloudFlow, seperti Sequence, Choice, dan Parallel. CloudFlow mengkoordinasikan eksekusi tugas sesuai langkah-langkah yang ditentukan secara andal, melacak transisi status setiap tugas, dan mengeksekusi logika pengulangan yang telah ditentukan bila diperlukan untuk memastikan kelancaran dan keberhasilan penyelesaian tugas. Untuk informasi selengkapnya, lihat Integrasikan CloudFlow dengan Function Compute.

Prasyarat

Prosedur

  1. Masuk ke Konsol CloudFlow. Di bilah navigasi atas, pilih wilayah.

  2. Di panel navigasi sebelah kiri, klik Workflows. Di halaman Workflows, klik Create Workflow.

  3. Di kotak dialog Create Workflow, pilih metode untuk membuat alur kerja, lalu pilih mode untuk alur kerja tersebut.

    CloudFlow memungkinkan Anda membuat alur kerja dalam mode standar atau mode express. Untuk informasi selengkapnya tentang kedua mode tersebut, lihat Mode standar dan mode express. Untuk informasi selengkapnya, lihat Buat alur kerja berdasarkan kanvas kosong.

  4. Edit alur yang telah dibuat.

    1. Edit alur.

      Anda dapat menggunakan CloudFlow Studio atau YAML untuk mengedit alur. Dalam contoh ini, YAML digunakan.

      Di pojok kanan atas halaman detail alur, klik YAML. Di editor kode sebelah kiri, masukkan kode yang akan digunakan oleh alur tersebut lalu klik Save.

      Kode contoh:

      Type: StateMachine
      Name: MyFlow
      SpecVersion: v1
      StartAt: InvokeFunction
      States:
        - Type: Task
          Name: InvokeFunction
          Action: FC:InvokeFunction
          TaskMode: RequestComplete
          Parameters:
            invocationType: Async
            resourceArn: acs:fc:us-west-1:103435468****:functions/func-i1****/LATEST
          End: true
    2. Konfigurasikan peran alur.

      Di pojok kanan atas halaman detail alur, klik Configure Workflow, pilih peran dari daftar drop-down Execution Role di bagian Role Configuration, lalu klik Save.

      Catatan

      Pastikan peran yang dikonfigurasi untuk alur telah dilampirkan kebijakan AliyunFCInvocationAccess.

  5. Di halaman detail alur, klik Execute di pojok kanan atas untuk memicu alur dan memeriksa apakah alur berfungsi sesuai harapan.