Firebase-tools: لا يتم تنفيذ وظيفة الاستضافة إذا كانت منطقة الوظيفة غير افتراضية

تم إنشاؤها على ٢٨ يوليو ٢٠١٨  ·  41تعليقات  ·  مصدر: firebase/firebase-tools

معلومات الإصدار

4.00

معلومات المنصة

OS X

خطوات التكاثر

تم نشر الوظيفة إلى europe-west1

// function code
const functions = require('firebase-functions');

exports.helloIvanA = functions
  .region('europe-west1')
  .https.onRequest((request, response) => {
    response.send('Hello from Ivan!');
  });

// firebase.json
{
  "hosting": {
    "public": "public",

    "rewrites": [
      {
        "source": "**",
        "function": "helloIvanA"
      }
    ]
  }
}

سلوك متوقع

سيحصل https://blablabla.firebaseapp.com على بيانات من helloIvanA

السلوك الفعلي

https://blablabla.firebaseapp.com بإعادة التوجيه إلى https://us-central1-yushkarala.cloudfunctions.net/helloIvanA/
ويعطي
Error: Forbidden Your client does not have permission to get URL /helloIvanA/ from this server.

التعليق الأكثر فائدة

أتمنى أن أرى هذا مطبق زواري من أوروبا ، و TTFB من us-central1 أكبر بثلاث مرات على الأقل من europe-west1 .

ال 41 كومينتر

أيضًا مثال على الريبو https://github.com/istarkov/firebase-hosting-error

مرحبًا ، هذا هو السلوك المتوقع ، يرجى الاطلاع على https://firebase.google.com/docs/functions/locations#http_and_client_callable_functions ، يشير المربع الأزرق إلى أن جميع الوظائف التي تعمل كإعادة توجيه للاستضافة يجب أن تكون في "us-central1" ، وهذا هو نظرًا لحقيقة أن هذا هو مكان أصل الاستضافة.

شكرا لك ، هل هناك فرصة لتغيير هذا السلوك المتوقع في المستقبل القريب أو على الأقل في المستقبل؟

مرحبًا ، سيتغير في المستقبل ، لكن ليس في المستقبل القريب. يعتمد ذلك على وقت إطلاق Firebase Hosting في مناطق جغرافية أخرى.

مرحبا،
مشكلتي شبيهة جدًا بهذا ، ولكن يجب أن تكون وظائفي في الاتحاد الأوروبي ، لأنه يستخدم شبكة خارجية ، ويكون وقت الاستجابة أفضل بكثير بهذه الطريقة (2-4 ثوانٍ مقابل 4-600 مللي ثانية) وقت التنفيذ
وصفت مشكلتي في:
https://github.com/firebase/firebase-js-sdk/issues/1101
إذن لا يوجد حل بعد لاستخدام إعادة الكتابة إلى منطقة أخرى في الوقت الحالي؟
(لدي حل بديل ، باستخدام روابط مباشرة للوصول إلى وظيفة الاتحاد الأوروبي ، ولكن هذا ليس مثاليًا من جانب التطوير ، فأنا بحاجة إلى إعادة نشر كل شيء لاختباره)

أتمنى أن أرى هذا مطبق زواري من أوروبا ، و TTFB من us-central1 أكبر بثلاث مرات على الأقل من europe-west1 .

مرحبًا ، سيتغير في المستقبل ، لكن ليس في المستقبل القريب. يعتمد ذلك على وقت إطلاق Firebase Hosting في مناطق جغرافية أخرى.

مرحبا @ laurenzlong ،

هل هذا يعني أنه عندما تكون الاستضافة متاحة من خلال مواقع أخرى us-central1 ، سنكون قادرين أيضًا على تجاوز القيد التالي؟
Important: If you are using HTTP functions to serve dynamic content for hosting, you must use us-central1. من doc

أحتاج هذه الميزة لطلبي. لذلك ، كلما كان ذلك أفضل :)!

شكرا جزيلا على كل هذا.

يجب كتابة تحذير بخط عريض حتى يتم إصلاح ذلك. لقد قضيت الكثير من الوقت حتى أدركت ما يحدث.
أضف على الأقل خيار region لإعادة الكتابة حتى نتمكن من إعادة التوجيه إلى أوروبا.

وظيفة سحابة الأمل لـ Firebase تدعم الخيار region مثل إعداد cloud run فعل ذلك. أنا أستخدم tokyo region. إنه حقًا بعيد عن us-central1 .

هل هذا يعني أنه عندما تكون الاستضافة متاحة من خلال مواقع أخرى us-central1 ، سنكون قادرين أيضًا على تجاوز القيد التالي؟
Important: If you are using HTTP functions to serve dynamic content for hosting, you must use us-central1. من doc

مرحبا @ laurenzlong ،

هل لديك اي (جيد)؟ أخبار عن هذا؟

أوافق على أنه كما قال wangchou ، سيكون التشغيل السحابي بديلاً ، لكنه يضيف مجموعة من الخدمات / التكنولوجيا.

أتمنى أن أقرأ لك قريبا. شكرا!

ما زلنا نبحث في هذا الأمر ، لكن في الوقت الحالي ، تتركز بنيتنا الأساسية الأصلية في us-central مما يعني أن السماح بالوظائف الوكيلة في مناطق أخرى سينتهي به الأمر إلى إنشاء زمن انتقال إضافي في معظم الحالات. على سبيل المثال:

tokyo -> CDN edge -> origin (us-central) -> function (tokyo)

هذا يعني أن وقت الرحلة ذهابًا وإيابًا يفعل شيئًا مثل المضاعفة.

نحن نحقق في توسيع مواقع البنية التحتية الأصلية الخاصة بنا ، ولكن حتى ذلك الحين نحن قلقون بشأن إضافة هذه الإمكانية حيث من المرجح أن تسبب ضررًا أكثر من نفعها.

mbleigh - من فضلك ، هل يمكن أن تعطينا أي تقديرات متى سيكون أصل الاستضافة خارج الولايات المتحدة؟

بيئة Firebase بأكملها رائعة ، لكن هذا يجعلنا نفكر مرتين قبل التبديل إليها. شكرا لك

لا أعرف حقًا سبب إغلاق هذه المشكلة إذا لم يتم حلها ، حيث يتم إجراء +1.

ثانيًا ، يعد Firebase أمرًا مذهلاً ، ولكن بالنسبة للمستخدمين الأوروبيين ، يعد هذا تحذيرًا رئيسيًا.

عذرًا ، لا يمكننا التعليق على الجداول الزمنية لأنها عرضة للتغيير قليلاً. أنا أقدر الصوت المستمر لدعم هذا كميزة ، وهذا بالتأكيد شيء نضعه في الاعتبار أثناء تخطيطنا وبناء المنتج.

لدي مشكلة قد تكون مرتبطة بهذا ، لكنني لا أفهم ذلك تمامًا ، لذا لا أعرف. إذا أراد شخص يعرف أفضل ولديه وقت للتعليق على ذلك ، فيرجى الاطلاع على هذا السؤال:

https://stackoverflow.com/questions/57367131/403-from-deployed-firebase-function

سيكون شيئًا رائعًا أن يكون لدينا هذا ، يمكننا أخيرًا إضافة إعادة كتابة لاستضافة إلى وظائفنا التي تعيش بالفعل في أوروبا الغربية 1.

سيكون عظيما حقا. في الوقت الحالي ، يتم أيضًا استخدام عمليات إعادة التوجيه كما ذكر hgghyxo :

اسم الوظيفة api
المنطقة europe-west1

firebase.json

"redirects": {
    {
          "source": "/api/endpoint",
          "destination": "https://europe-west1-project-id.cloudfunctions.net/api/endpoint",
          "type": 301
    },
    ...
}

mcoevert علق في 19 أغسطس 2019 ، 10:36 صباحًا بتوقيت جرينتش + 2 :

سيكون عظيما حقا. في الوقت الحالي ، يتم أيضًا استخدام عمليات إعادة التوجيه كما ذكر hgghyxo :

لن تحل عمليات إعادة التوجيه مشكلات CORS بالرغم من ذلك.

هل ترغب في رؤية دعم منطقة أوروبا أيضًا.

يبدو أنه يمكن الآن إجراء إعادة الكتابة باستخدام خدمة Cloud Run المستضافة على europe-west1 المنطقة (حاليًا منطقة أوروبا الوحيدة المتاحة للتشغيل السحابي). الأمر ليس متشابهًا تمامًا ، لكنه قريب جدًا.

مرحبًا ، هذا هو السلوك المتوقع ، يرجى الاطلاع على https://firebase.google.com/docs/functions/locations#http_and_client_callable_functions ، يشير المربع الأزرق إلى أن جميع الوظائف التي تعمل كإعادة توجيه للاستضافة يجب أن تكون في "us-central1" ، وهذا هو نظرًا لحقيقة أن هذا هو مكان أصل الاستضافة.

نأسف ولكن الصندوق الأزرق الصغير يضيع بسهولة. لقد أهدرنا ساعات طويلة على هذه المشكلة ، معتقدين أنها كانت مشكلة تكوين في نهايتنا.

لماذا تم إغلاق هذا - إنها مشكلة بالنسبة لنا في أوروبا. هل هناك أي تفسير لماذا تعمل فقط لمنطقتنا؟

تم إغلاق هذه المشكلة لأنها طلب ميزة لاستضافة Firebase ولا يمكن معالجتها مباشرةً في Firebase CLI. يتم تتبع طلبات الميزات داخليًا وأنا أشجعك على طلب الدعم لمناطق إضافية عبر هذا النموذج .

نحن ندرك بالتأكيد أن العديد منكم يريد هذه الميزة ، شكرًا على التعليقات!

تم إغلاق هذه المشكلة لأنها طلب ميزة لاستضافة Firebase ولا يمكن معالجتها مباشرةً في Firebase CLI. يتم تتبع طلبات الميزات داخليًا وأنا أشجعك على طلب الدعم لمناطق إضافية عبر هذا النموذج .

نحن ندرك بالتأكيد أن العديد منكم يريد هذه الميزة ، شكرًا على التعليقات!

هل يتم تعقب طلبات الميزات داخليًا فقط؟ ألا يجلب ذلك الكثير من الطلبات المكررة؟ أود إظهار الدعم لهذه الميزات لتشمل مناطق خارج الولايات المتحدة.

نعم - إذا قمت بإرسال طلب ميزة ، فسنقوم بإلغاء تكراره مقابل طلبات أخرى من أجل التتبع الداخلي لدينا (وهو بالتأكيد يساعد في إظهار المزيد من الدعم للطلبات!).

يمكنك استخدام Cloud Run بدلاً من Cloud Function إذا لم تكن بحاجة إلى VPC. Cloud Run (مُدار بالكامل) لا يمكنه الاتصال بشبكة VPC حاليًا. يتمثل الحل البديل الذي اختبرته لاستخدام المجال المخصص + VPC + وظيفة السحابة في استخدام Cloud Run مع مجال مخصص وهو وكيل لـ Cloud Function. إنه يضيف القليل من النفقات العامة ولكن إذا كان Cloud Run و Cloud Function في نفس المنطقة ، فمن الناحية النظرية ، لا ينبغي أن يكون هناك الكثير من الكمون. ومع ذلك ، فقد قمت بمراقبته على مدار شهر ولم يكن الإصدار التجريبي من Cloud Run مستقرًا بنسبة 100٪:

image

هذا ريبو مع الوكيل الذي استخدمته إذا كنت ترغب في نشره في Cloud Run وتجربته https://github.com/reactgraphqlacademy/cloud-run-proxy

لقد اختبرت عامل Cloudflare باستخدام وكيل في نفس المنطقة التي توجد فيها وظيفة السحابة وقمت بمراقبتها خلال نفس الفترة. كان أبطأ من Cloud Run ، على الرغم من أنه كان موثوقًا بنسبة 100 ٪.

image

يمكنك استخدام هذا الرمز إذا كنت تريد اختبار عامل Cloudflare https://gist.github.com/alexlbr/814446f03cf12e22f07ccaa580eb1154 . wangchou إذا لم أكن مخطئًا ، يمكنك تشغيل عامل Cloudflare في Tokio ، لذا يمكن أن يكون أقرب إلى الحافة حيث يوجد المستخدم نظرًا لأن Cloud Run غير مدعوم حتى الآن في تلك المنطقة.

يقوم ما يلي بمراقبة وظيفة السحابة مباشرة بدون أي وكيل خلال نفس الفترة.

image

لقد استخدمت https://uptimerobot.com للرصد.

يبدو Cloud Run واعدًا جدًا بالنسبة لي ، ولا أطيق الانتظار حتى الإصدار الكامل

أي تحديثات على هذا؟ لماذا هو مغلق؟

غير ممكن؟

abdellahaski @ l2aelba نسمع بالتأكيد نقطة الألم هنا. كما قال mbleigh سابقًا ، فإن تقديمه كطلب ميزة (انظر أدناه) هو أفضل طريقة للمساعدة في اكتساب هذا الجذب لنا داخليًا. شكرا!

تم إغلاق هذه المشكلة لأنها طلب ميزة لاستضافة Firebase ولا يمكن معالجتها مباشرةً في Firebase CLI. يتم تتبع طلبات الميزات داخليًا وأنا أشجعك على طلب الدعم لمناطق إضافية عبر هذا النموذج .

نحن ندرك بالتأكيد أن العديد منكم يريد هذه الميزة ، شكرًا على التعليقات!

هل ترغب في رؤية دعم asia-east2 أيضًا.

أنا على وشك التخلي عن Firebase بسبب الوثائق السيئة.

الحد الأدنى المطلق هو إصدار تحذير إذا لم تكن هناك وظيفة في us-central تطابق الوظيفة في إعادة التوجيه!

أقترح أن يحاول فريق Firebase السماح لشخص ما بتطوير مشروع يكون فيه المستخدمون خارج الولايات المتحدة. من الجنون أننا لا نتلقى تحذيرات من هذا النوع من الأشياء.

دعنا نساعد بعضنا البعض من خلال القيام بما يطلبونه - نشر طلب ميزة:
https://firebase.google.com/support/troubleshooter/report/features

إليك مسودة يمكنك نسخها / لصقها منها - فقط قم بإنجازها :)

إعادة كتابة الاستضافة للوظائف في منطقة خارج الولايات المتحدة
https://github.com/firebase/firebase-tools/issues/842

تحتاج حقًا إلى أن تكون قادرًا على إنشاء عمليات إعادة كتابة لوظائف في مناطق أخرى غير US-Central1.

جمهورنا المستهدف ليس في الولايات المتحدة ، ويشكل الافتقار إلى هذه الميزة مصدر قلق كبير لنا ، مما يجعلنا غير متأكدين من تكريس مكدس التكنولوجيا لدينا لـ Firebase بشكل عام.

يرجى النظر في إعطاء الأولوية لهذه الميزة في المستقبل القريب.
شكرا لك،

image

هنا نأمل في هذه الميزة قريبا!

هل بحث أي شخص في استخدام التشغيل السحابي بدلاً من وظائف السحابة؟

يوفر تشغيل السحابة وظائف في مناطق أخرى أيضًا

بعد عامين وما زالت هذه مشكلة .. لماذا أغلق هذا بالمناسبة؟

مرحبًا ، هذا هو السلوك المتوقع ، يرجى الاطلاع على https://firebase.google.com/docs/functions/locations#http_and_client_callable_functions ، يشير المربع الأزرق إلى أن جميع الوظائف التي تعمل كإعادة توجيه للاستضافة يجب أن تكون في "us-central1" ، وهذا هو نظرًا لحقيقة أن هذا هو مكان أصل الاستضافة.

الاستدعاء laurenzlong

تتوفر وظائف السحابة في المناطق التالية:

  • us-central1 (آيوا)
  • us-east1 (ساوث كارولينا)
  • us-east4 (شمال فيرجينيا)
  • europe-west1 (بلجيكا)
  • أوروبا الغربية 2 (لندن)
  • europe-west3 (فرانكفورت)
  • asia-east2 (هونغ كونغ)
  • آسيا-شمال شرق 1 (طوكيو)

اخترت يورو 3 (أوروبا الغربية) لأنه كان على رأس القائمة مع مركزنا 1 ، ومنفصل عن المواقع الأخرى. يعتقد أن هذين هما التقصير.

ماذا علي أن أفعل ، هل هناك أي إصلاح لهذا؟

لماذا؟؟؟؟؟

مرحبا يا رفاق ، شكرا على كل ردود الفعل على هذا. نسمع منك بالتأكيد أنك ترغب في رؤية وظائف دعم استضافة Firebase خارج us-central1 . لسوء الحظ ، هناك قدر كبير من أعمال البنية التحتية التي يجب إجراؤها قبل أن تعمل بشكل جيد ، لذلك لا يمكننا "تبديل التبديل" وإحضار مناطق أخرى عبر الإنترنت.

لقد سمعنا عن هذا كثيرًا كطلب ميزة ، وهو مدرج في خريطة الطريق الخاصة بنا على الرغم من أنه لا يمكنني التعليق على جداول زمنية محددة. هذا المستودع ليس المكان الصحيح لنشر طلبات الميزات لمنتج Firebase Hosting ككل - إذا كنت مهتمًا بهذه الميزة ، فيرجى إرسال طلب ميزة حتى نتمكن من متابعة تتبع الاهتمام بهذا داخليًا وتحديد أولويات العمل يجب أن يحدث لتمكينه.

شكرا لكم جميعا!

مرحبا،

أعتقد أن لا أحد يهتم بالمكان الذي تستضيفه ، نريد فقط إصلاحًا بسيطًا حتى لا يظهر هذا الخطأ.

يمكن إجراء هذا الإصلاح في التعليمات البرمجية الخاصة بك ، ولا تفعل شيئًا حيث تقوم بالاستضافة ..

وهذا ليس طلبًا لميزة ، ولا تصبح إزالة الخطأ ميزة. فقط قم بإزالة هذا الخطأ

شكرا..

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات