Serverless Workflow mendukung secara native versi dan alias fungsi, memungkinkan Anda mengaitkan alur ke versi fungsi tertentu atau memanggil fungsi instans terjadwal melalui alias.
Kapan harus mengaitkan versi fungsi
Secara default, langkah tugas di Serverless Workflow memanggil versi terbaru dari suatu fungsi. Jika fungsi diperbarui saat alur sedang berjalan, langkah-langkah berikutnya dalam eksekusi yang sama mungkin menggunakan versi berbeda dibandingkan langkah sebelumnya—menyebabkan perilaku tidak konsisten atau hasil yang tidak terduga.
Kaitkan versi atau alias tertentu dalam situasi berikut:
Konsistensi alur: Suatu alur mengoordinasikan beberapa fungsi (f1, f2, f3). Setiap eksekusi harus menjalankan versi yang sama untuk semua fungsi. Tanpa pengaitan, pembaruan pada f1 di tengah eksekusi menyebabkan f2 dan f3 berpotensi menjalankan versi yang lebih baru.
Rollback: Penerapan terbaru menyebabkan regresi. Lakukan rollback pada alur dengan mengarahkannya kembali ke versi terakhir yang diketahui berfungsi dengan baik.
Instans yang Dicadangkan: Gunakan alias fungsi untuk memanggil instans yang dicadangkan, sehingga menghilangkan latensi cold start. Instans yang dicadangkan memerlukan versi fungsi tertentu—alias menyediakan penunjuk stabil ke versi tersebut.
Format resourceArn
Semua langkah tugas menggunakan parameter resourceArn untuk mengidentifikasi fungsi yang akan dipanggil. Formatnya bergantung pada apakah Anda ingin menggunakan versi terbaru, versi tertentu, atau alias:
| Target | Format resourceArn | Contoh |
|---|---|---|
| Versi terbaru (default) | acs:fc:{region}:{accID}:services/{service}/functions/{function} | acs:fc:cn-hangzhou:123:services/fnf-demo/functions/provision |
| Versi tertentu | acs:fc:{region}:{accID}:services/{service}.{version}/functions/{function} | acs:fc:::services/fnf-demo.1/functions/provision |
| Alias | acs:fc:{region}:{accID}:services/{service}.{alias}/functions/{function} | acs:fc:::services/fnf-demo.online/functions/provision |
Versi atau alias ditambahkan ke nama layanan dengan tanda titik (.), misalnya fnf-demo.online atau fnf-demo.1.
Panggil fungsi instans-reservasi melalui alias
Contoh ini menunjukkan cara mengonfigurasi alur untuk memanggil fungsi instans terjadwal menggunakan alias fungsi. Pendekatan ini menghilangkan overhead cold start dan menjaga stabilitas alur meskipun fungsi diperbarui.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Layanan Function Compute dengan fungsi yang telah diterapkan
Versi fungsi yang telah dipublikasikan dan alias yang mengarah ke versi tersebut
Instans terjadwal yang dikonfigurasi untuk alias tersebut
Untuk detail tentang penerbitan versi dan pembuatan alias, lihat Manage versions dan Manage aliases.
Langkah 1: Buat instans terjadwal untuk fungsi
Buat layanan bernama fnf-demo di Function Compute. Tambahkan fungsi Python 3 bernama provision dengan kode penanganan berikut:
import logging
def handler(event, context):
logger = logging.getLogger()
logger.info('Started function test')
return {"success": True}Publikasikan versi 1 dari fungsi tersebut, buat alias bernama online yang mengarah ke versi 1, lalu konfigurasikan instans terjadwal untuk alias online. Untuk panduan lengkap, lihat Introduction to supplementary examples.
Langkah 2: Buat alur yang mereferensikan alias
Definisikan alur yang memanggil fnf-demo.online — alias tersebut — dalam resourceArn langkah tugas:
version: v1
type: flow
steps:
- type: task
resourceArn: acs:fc:::services/fnf-demo.online/functions/provision
# Untuk mengaitkan ke nomor versi, gunakan:
# resourceArn: acs:fc:::services/fnf-demo.1/functions/provision
name: TestFCProvisionLangkah 3: Jalankan alur dan periksa hasil eksekusi
Jalankan alur dari Konsol atau command-line interface (CLI) dan bandingkan waktu eksekusi:
Sebelum mode reservasi: waktu eksekusi 500 ms
Setelah reserved mode: waktu eksekusi 230 ms


Mengaktifkan mode terjadwal memangkas waktu eksekusi dari 500 ms menjadi 230 ms.
Langkah selanjutnya
Introduction to versions — pelajari cara kerja versi fungsi
Manage versions — publikasikan dan kelola versi fungsi
Manage aliases — buat dan kelola alias fungsi
Best practices for cost optimization — kurangi biaya Function Compute