توابع بدون سرور سکو کلود (FaaS)
برای یک وبهوک، یک تبدیل کوچک یا یک کار شبانه، لازم نیست اپ کامل همیشهروشن داشته باشید. تابع بدون سرور فقط وقتی اجرا میشود که فراخوانی شود. کد بر پایهی استانداردهای وب نوشته میشود: رویداد fetch را میگیرید و یک Response برمیگردانید.
مناسب برای
- وبهوک درگاه پرداخت و سرویسها
- API سبک و پروکسی
- کار زمانبندیشدهی شبانه
- پردازش پیام صف
از کد تا آدرس
نوشتن
هندلر به رویداد fetch گوش میدهد و Response برمیگرداند.
addEventListener("fetch", …)ساخت
فایل را با CLI بفرستید یا در کنسول بنویسید.
sakoocloud fn create --name hello --file ./index.jsفراخوانی
تابع یک آدرس عمومی میگیرد؛ cron یا صف هم میتوانند اجرایش کنند.
invokeUrlبهروزرسانی
نسخهی جدید با یک دستور جایگزین میشود.
sakoocloud fn deploy <id> --file ./index.js
ساخت و مدیریت با CLI
حافظه و timeout را هنگام ساخت تعیین کنید؛ اگر فایل ورودی index.js نیست، --entry بدهید.
sakoocloud fn create --name hello --file ./index.js --memory 256 --timeout 30
sakoocloud fn list
sakoocloud fn info <function-id>
sakoocloud fn deploy <function-id> --file ./index.js
چه چیزهایی همراهش میآید
فقط کد
نه Dockerfile، نه ایمیج، نه مخزن. کد را در ویرایشگر کنسول بنویسید یا فایل هندلر را با CLI بفرستید.
- ویرایشگر کد در کنسول
- استقرار با sakoocloud fn create
- الگوهای آماده
- بهروزرسانی با fn deploy
مقیاس تا صفر
در بیکاری هیچ نمونهای اجرا نمیشود و هزینهای ندارد؛ زیر بار، تعداد نمونهها خودکار بالا میرود.
- بدون هزینه در بیکاری
- مقیاسگیری خودکار زیر بار
- حافظهی ۱۲۸ تا ۴۰۹۶ مگابایت
- timeout تا ۹۰۰ ثانیه
سه راه فراخوانی
هر تابع یک آدرس عمومی دارد. میتوانید آن را با زمانبند cron یا با رسیدن پیام به صف هم اجرا کنید.
- HTTP با invokeUrl
- Cron برای کار زمانبندیشده
- Queue برای پیامها
- پاسخ استاندارد Response
استاندارد وب
هندلر به رویداد fetch گوش میدهد و Response برمیگرداند؛ همان مدلی که در Service Worker و رانتایمهای edge میبینید.
- Request و Response استاندارد
- Response.json برای API
- متغیرهای محیطی
- لاگ اجرای هر درخواست
جزئیات فنی
مقادیر پیشفرض
| تنظیم | پیشفرض | بازه |
|---|---|---|
| حافظه | ۲۵۶ مگابایت | ۱۲۸ تا ۴۰۹۶ |
| timeout | ۳۰ ثانیه | ۱ تا ۹۰۰ |
| مقیاس تا صفر | فعال | — |
راههای فراخوانی
| Trigger | کاربرد |
|---|---|
| HTTP | درخواست مستقیم به invokeUrl |
| Cron | اجرا در زمان مشخص، مثلاً 0 3 * * * |
| Queue | اجرا با رسیدن پیام به صف |
پرسشهای متداول
تابع بدون سرور با اپ معمولی چه فرقی دارد؟
اپ همیشه روشن است و هزینهی ثابت دارد؛ تابع فقط هنگام فراخوانی اجرا میشود و در بیکاری به صفر میرسد.
چه زبانهایی پشتیبانی میشود؟
فعلاً جاوااسکریپت. برای زبانهای دیگر، یا برای استقرار از گیت و ایمیج، از میزبانی برنامه (PaaS) استفاده کنید.
cold start چقدر است؟
اولین درخواست بعد از بیکاری کمی کندتر است، چون نمونهای باید بالا بیاید؛ درخواستهای بعدی بدون این تأخیر اجرا میشوند.
حداکثر زمان اجرا چقدر است؟
پیشفرض ۳۰ ثانیه و قابل افزایش تا ۹۰۰ ثانیه با --timeout.
برای جزئیات بیشتر مستندات را ببینید یا پلنها را مقایسه کنید.