رفتن به محتوا
cloudhost
فانکشن‌ها

کدی که با درخواست اجرا می‌شود.

یک تابع fetch بنویسید و مستقر کنید. با هر درخواست اجرا می‌شود، در بیکاری می‌خوابد و به ازای درخواست و زمان CPU فعال حساب می‌شود.

استاندارد وب، نه API اختصاصی

فانکشن یک ماژول با تابع fetch است، همان شکل استاندارد WinterTC. Request، Response، fetch، crypto و streamها همان‌اند که در مرورگر می‌شناسید، و ماژول‌های داخلی Node هم در دسترس‌اند.

export default {
  async fetch(request: Request, env: Env) {
    const url = new URL(request.url)
    return Response.json({ hello: url.searchParams.get("name") ?? "salam" })
  },
}

آنچه می‌گیرید

  • اجرا با درخواست

    نه سروری برای روشن نگه داشتن، نه ظرفیتی برای تنظیم. با درخواست اجرا می‌شود و در بیکاری می‌خوابد.

  • زمان‌بندی cron

    تا ۵ عبارت cron برای هر فانکشن، با منطقهٔ زمانی دلخواه؛ پیش‌فرض تهران. هر نوبت حداکثر یک بار اجرا می‌شود.

  • سکرت‌ها

    سکرت‌ها رمزگذاری‌شده نگه داشته می‌شوند و هرگز دوباره نشان داده نمی‌شوند. فقط در حافظهٔ فانکشن باز می‌شوند.

  • لاگ زنده

    console.log، درخواست‌ها و اجرای cronها، زنده در ترمینال یا داشبورد.

  • مانیتورینگ و هشدار

    درخواست‌ها، خطاهای ۴xx و ۵xx و p50/p95/p99 هر مسیر در یک ساعت، یک روز و یک هفته. هشدار با ایمیل، پیامک یا وب‌هوک.

  • نسخه و بازگشت

    هر استقرار یک نسخهٔ تغییرناپذیر است؛ برگشتن یک دستور است.

  • اتصال به داده

    env.DB برای دیتابیس، env.CACHE برای کش، env.BUCKET برای باکت. بدون رشتهٔ اتصال و کلید در کد.

  • fetch به بیرون

    فانکشن می‌تواند هر API عمومی را صدا بزند. آدرسهای شبکهٔ داخلی بسته‌اند.

  • پیش‌نمایش برای هر شاخه

    git push یک شاخه، آدرس آزمایشی خودش را می‌دهد.

کار شبانه، بدون سرور

هر روز ساعت ۳ بامداد به وقت تهران، سبدهای خرید قدیمی پاک می‌شوند. دیتابیس فقط همان چند ثانیه بیدار است.

name = "reports"
type = "function"
main = "index.ts"

[[db]]
binding = "DB"
database = "shop"

[triggers]
crons = ["0 3 * * *"]

به ازای درخواست و CPU فعال

هر اجرا یک درخواست حساب می‌شود، به‌علاوهٔ زمانی که کد واقعاً روی CPU کار کرده است. منتظر ماندن برای دیتابیس یا یک API بیرونی حساب نمی‌شود. پلن رایگان هر ماه سهم رایگان دارد.

پرسش‌های رایج

اولین فانکشن‌تان را مستقر کنید

یک فایل، یک دستور، یک آدرس.

فعلاً ثبت‌نام با کد دعوت است. اگر کد دارید، همین حالا حساب ایجاد کنید.

ثبت‌نام باکد ایمیلکد پیامکی