الحدود والحصص
الأرقام التي تحتاجها قبل تصميم دالة، والفجوات المعروفة في النظام الأساسي الحالي.
1. وظيفة
| الحد | القيمة | من أين يأتي |
|---|---|---|
| الاسم | من 1 إلى 64 حرفًا بين a-z, A-Z, 0-9, _, - | القسري عند النشر |
| حجم المصدر | 20 ميجابايت | القسري عند النشر |
| أوقات التشغيل | deno (TypeScript أو جافا سكريبت) و wasm | |
| الذاكرة | من 16 إلى 1024 ميجابايت، الافتراضي 128 | permissions.memory_mb |
| المدة | من 1 إلى 300 ثانية، الافتراضي 30 | permissions.timeout_secs |
| الشبكة الصادرة | مفتوحة افتراضيًا | permissions.allow_net: إذا لم تكن فارغة، لا يمكن الوصول إلا إلى المضيفين المدرجين |
يتم رفض القيمة خارج الحدود باستخدام 400؛ لا يتم تثبيته بصمت أبدًا. الإجابة الحقيقية لـ timeout_secs: 0: permissions.timeout_secs doit être compris entre 1 et 300 secondes.
تغيير الأذونات دون إعادة النشر:
فقط الحقول التي ترسلها تتغير.
2. مكالمة
| الحد | القيمة | المصدر |
|---|---|---|
| هيئة الطلب | حول 256 كيلو بايت | تم القياس: تم تمرير 260 كيلو بايت، وفشل 300 كيلو بايت مع 503 |
| هيئة الاستجابة | حول 256 كيلو بايت | تم القياس: 250 كيلو بايت مرت؛ 300 كيلو بايت لم تُرجع شيئًا خلال 50 ثانية |
| الدولة بين المكالمات | لا شيء | يتم تشغيل كل مكالمة في عامل V8 معزول جديد |
| المناطق | واحد | لا يوجد اختيار المنطقة |
تقتصر الرسالة التي تعبر المنصة على 1 ميجابايت، ويتم احتساب كل بايت من نص الطلب أربع مرات، لذلك يتم رفض النص الذي يزيد عن 256 كيلو بايت باستخدام 503 SERVICE_UNAVAILABLE. أبلغت SDK عن ذلك على أنه FunctionsRelayError، وهو أمر مضلل: إعادة المحاولة لا يمكن أن تساعد. لم يتم الرد على الاستجابة التي تزيد عن نفس الحجم على الإطلاق في اختبارنا. احتفظ بحجم الطلبات والردود أقل من 250 كيلو بايت وأرسل بيانات أكبر من خلال التخزين.
3. تقييم وتخطيط الحصص
معدل الاستدعاء لكل عنوان IP للعميل:
| الملف الشخصي | القيمة |
|---|---|
| انفجر | 15 مكالمة |
| مستدام | مكالمة واحدة في الثانية |
في سلسلة حقيقية من 30 مكالمة سريعة، تم إرجاع 15 200 و15 429. يحمل 429 رؤوس x-ratelimit-* وretry-after، ويكشف SDK عن التأخير كـ error.retryAfter.
الحصص الشهرية لكل خطة، من جدول خطط المنصة:
| خطة | الدعوات | المدة الإجمالية |
|---|---|---|
| مجاني | 100,000 | 6,000,000 مللي ثانية (100 دقيقة) |
| برو | 1,000,000 | 60,000,000 مللي ثانية (1000 دقيقة) |
| فريق | 10,000,000 | 600,000,000 مللي ثانية (10,000 دقيقة) |
| المؤسسة | 100,000,000 | 6,000,000,000 مللي ثانية (100,000 دقيقة) |
في الخطة المجانية، يكون الحد صعبًا: يتم رفض المكالمة التي تتجاوزه باستخدام 403 QUOTA_EXCEEDED. في الخطط المدفوعة، الجدول هو البدل الشهري، وما يحدث بعد ذلك يعتمد على الإعداد الزائد لاشتراكك. يتم احتساب المكالمة بمجرد الرد على وظيفتك، مهما كانت حالتها. لا يتم احتساب المكالمة التي تفشل قبل إجابات الوظيفة. تعتبر الوظائف وطرد كرون بمثابة دعوات أيضًا.
4. الوظائف والكرون والتنبيهات
| الحد | القيمة |
|---|---|
| محاولات وظيفية | 3 بشكل افتراضي، يتم تعيينها لكل مهمة باستخدام maxAttempts |
| التأخير بين المحاولات | 5 ثواني، ثابتة |
| وظائف متوازية لكل مثيل خدمة | 8 بشكل افتراضي |
| عقد الإيجار الجاري | 450 ثانية، ثم يتم استعادة الوظيفة |
| تم الاحتفاظ بالوظائف النهائية | 14 يوما افتراضيا |
listJobs الصفحة | من 1 إلى 500، الافتراضي 50 |
| جدول كرون | 5 أو 6 حقول، UTC، بدون أسماء مستعارة |
| فحص التنبيه | كل 60 ثانية |
قيم المهام هذه هي إعدادات الخدمة: JOB_MAX_RETRIES و JOB_RETRY_DELAY_SECS و WORKER_CONCURRENCY و JOB_RUNNING_LEASE_SECS و JOB_RETENTION_DAYS. اطلب من مشغل النظام الأساسي لديك قيم النشر المُدار.
5. الثغرات المعروفة
- لا يمكن الوصول إلى السجلات الخاصة بالوظيفة. ما تكتبه الدالة باستخدام
console.logأوconsole.errorيظل في سجلات وقت التشغيل، والتي لا يمكن قراءتها إلا لمشغل النظام الأساسي.aura functions logsيعرض الطلبات (الطريقة، المسار، الحالة، المدة، معرف الطلب)، وليس هذا الإخراج. أعد المعلومات التي تحتاجها في الرد، أو أرسلها إلى خدمة التسجيل الخاصة بك. - لا يوجد معرف طلب داخل الوظيفة. لا تتم إعادة توجيه معرف المكالمة إلى الوظيفة.
- لا توجد إصدارات أو التراجع. يؤدي النشر إلى استبدال الكود. احتفظ بالإصدار السابق في مستودعك.
- لا يوجد بث. يتم تخزين الاستجابة بأكملها مؤقتًا قبل أن تصل إلى SDK.
- قيمة
allow_netالفارغة لا تقيّد شيئًا. الشبكة مفتوحة افتراضيًا؛ اذكر مضيفيك لتقييدها. - المحاكاة المحلية جزئية. يقوم
aura functions serveبتشغيل ملفك باستخدام Deno ولكنه لا يعيد إنتاج مسار النظام الأساسي أو الرؤوس أو الحدود.