Firebase-tools: Hosting tidak menjalankan fungsi jika wilayah fungsi tidak default

Dibuat pada 28 Jul 2018  ·  41Komentar  ·  Sumber: firebase/firebase-tools

Informasi versi

4.00

Informasi Platform

OS X

Langkah-langkah untuk mereproduksi

fungsi dikerahkan ke 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"
      }
    ]
  }
}

Perilaku yang diharapkan

https://blablabla.firebaseapp.com akan mendapatkan data dari helloIvanA

Perilaku sebenarnya

https://blablabla.firebaseapp.com dialihkan ke https://us-central1-yushkarala.cloudfunctions.net/helloIvanA/
dan memberi
Error: Forbidden Your client does not have permission to get URL /helloIvanA/ from this server.

Komentar yang paling membantu

Akan senang melihat ini diterapkan. Pengunjung saya berasal dari Eropa, dan TTFB dari us-central1 setidaknya 3x lebih besar dari europe-west1 .

Semua 41 komentar

Hai, ini adalah perilaku yang diharapkan, silakan lihat https://firebase.google.com/docs/functions/locations#http_and_client_callable_functions , kotak biru menunjukkan bahwa semua fungsi yang berfungsi sebagai pengalihan hosting harus berada di 'us-central1', ini karena dari situlah asal hosting.

Terima kasih, apakah ada kemungkinan perilaku yang diharapkan ini akan berubah dalam waktu dekat atau setidaknya di masa depan?

Hai, itu akan berubah di masa depan, tetapi tidak dalam waktu dekat. Tergantung kapan Firebase Hosting diluncurkan di wilayah lain.

Halo,
Masalah saya sangat mirip dengan ini, tetapi fungsi saya harus di UE, karena menggunakan jaringan eksternal, dan latensi jauh lebih baik dengan cara ini (2-4 detik vs 4-600 ms) waktu eksekusi
Dijelaskan masalah saya di:
https://github.com/firebase/firebase-js-sdk/issues/1101
jadi belum ada solusi untuk menggunakan penulisan ulang ke wilayah lain saat ini?
(Saya punya solusi, menggunakan tautan langsung untuk mencapai fungsi UE, tetapi itu tidak ideal dari sisi pengembangan, saya perlu memindahkan semuanya untuk mengujinya)

Akan senang melihat ini diterapkan. Pengunjung saya berasal dari Eropa, dan TTFB dari us-central1 setidaknya 3x lebih besar dari europe-west1 .

Hai, itu akan berubah di masa depan, tetapi tidak dalam waktu dekat. Tergantung kapan Firebase Hosting diluncurkan di wilayah lain.

Hai @laurenzlong ,

apakah itu berarti ketika Hosting akan tersedia melalui lokasi lain yang us-central1 , kami juga dapat melewati batasan berikut ?
Important: If you are using HTTP functions to serve dynamic content for hosting, you must use us-central1. dari doc

Saya membutuhkan fitur itu untuk aplikasi saya. Jadi, lebih cepat, lebih baik :)!

Terima kasih banyak untuk semua ini.

Peringatan dalam huruf tebal harus ditulis sampai ini diperbaiki. Saya telah menghabiskan terlalu banyak waktu sampai saya menyadari apa yang terjadi.
Setidaknya tambahkan opsi region ke penulisan ulang sehingga kami dapat mengarahkan ulang ke eropa.

Semoga fungsi cloud untuk opsi Firebase mendukung region seperti yang dilakukan pengaturan cloud run . Saya menggunakan wilayah tokyo . Ini benar-benar jauh dari us-central1 .

apakah itu berarti ketika Hosting akan tersedia melalui lokasi lain yang us-central1 , kami juga dapat melewati batasan berikut ?
Important: If you are using HTTP functions to serve dynamic content for hosting, you must use us-central1. dari doc

Hai @laurenzlong ,

apakah kamu punya (baik)? berita tentang ini?

Saya setuju bahwa seperti yang dikatakan @wangchou , cloud run akan menjadi alternatif, tetapi menambah tumpukan layanan / teknologi.

Berharap untuk membaca Anda segera. Terima kasih!

Kami masih menyelidiki hal ini, tetapi saat ini infrastruktur asal kami terkonsentrasi di us-central yang berarti mengizinkan fungsi proxy di wilayah lain pada akhirnya akan menciptakan latensi ekstra dalam banyak kasus. Misalnya:

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

Ini berarti bahwa waktu perjalanan pulang pergi benar-benar melakukan sesuatu seperti penggandaan.

Kami sedang menyelidiki perluasan lokasi infrastruktur asal kami, tetapi sampai saat itu kami berhati-hati untuk menambahkan kemampuan ini karena lebih cenderung menyebabkan kerugian daripada kebaikan.

@mbleigh - Bisakah Anda memberi kami perkiraan kapan asal Hosting akan berlokasi di luar AS?

Seluruh lingkungan Firebase luar biasa, tetapi ini membuat kami berpikir dua kali sebelum beralih ke sana. Terima kasih

Benar-benar tidak tahu mengapa masalah ini telah ditutup jika tidak diselesaikan, menabrak +1.

Kedua ini, Firebase luar biasa, tetapi untuk pengguna Eropa ini adalah peringatan besar.

Maaf, kami tidak dapat mengomentari jadwal karena terlalu banyak waktu untuk berubah. Saya menghargai suara yang berkelanjutan untuk mendukung ini sebagai fitur, itu pasti sesuatu yang kami perhitungkan saat kami merencanakan dan membangun produk.

Saya memiliki masalah yang mungkin terkait dengan ini, tetapi saya tidak sepenuhnya memahami hal ini jadi saya tidak tahu. Jika seseorang yang lebih tahu dan punya waktu ingin mengomentari itu, silakan lihat pertanyaan ini:

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

Akan menjadi hal yang luar biasa untuk memiliki ini, kami akhirnya dapat menambahkan penulisan ulang hosting ke fungsi kami yang sudah ada di europe-west1.

Akan sangat bagus. Untuk saat ini, juga menggunakan pengalihan seperti yang disebutkan @hgghyxo :

Nama fungsi api
Wilayah europe-west1

firebase.json

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

@mcoevert berkomentar pada 19 Agustus 2019, 10:36 GMT+2 :

Akan sangat bagus. Untuk saat ini, juga menggunakan pengalihan seperti yang disebutkan @hgghyxo :

Pengalihan tidak akan menyelesaikan masalah CORS.

Ingin melihat dukungan wilayah eropa juga.

Tampaknya penulisan ulang sekarang dapat dilakukan dengan layanan Cloud Run yang dihosting di region europe-west1 (saat ini satu-satunya region eropa yang tersedia untuk Cloud Run). Ini tidak persis sama, tapi cukup dekat.

Hai, ini adalah perilaku yang diharapkan, silakan lihat https://firebase.google.com/docs/functions/locations#http_and_client_callable_functions , kotak biru menunjukkan bahwa semua fungsi yang berfungsi sebagai pengalihan hosting harus berada di 'us-central1', ini karena dari situlah asal hosting.

Maaf tapi kotak biru kecil mudah terlewatkan. Kami telah menghabiskan terlalu banyak waktu untuk masalah ini, berpikir itu adalah masalah konfigurasi di pihak kami.

Mengapa ini ditutup - ini adalah masalah bagi kami di Eropa. Apakah ada penjelasan mengapa ini hanya berfungsi untuk wilayah kami?

Masalah ini ditutup karena merupakan permintaan fitur untuk Firebase Hosting yang tidak dapat ditangani secara langsung di Firebase CLI. Permintaan fitur dilacak secara internal dan sebaiknya Anda meminta dukungan untuk wilayah tambahan melalui formulir ini .

Kami sangat menyadari bahwa banyak dari Anda yang menginginkan fitur ini, terima kasih atas umpan baliknya!

Masalah ini ditutup karena merupakan permintaan fitur untuk Firebase Hosting yang tidak dapat ditangani secara langsung di Firebase CLI. Permintaan fitur dilacak secara internal dan sebaiknya Anda meminta dukungan untuk wilayah tambahan melalui formulir ini .

Kami sangat menyadari bahwa banyak dari Anda yang menginginkan fitur ini, terima kasih atas umpan baliknya!

Permintaan fitur hanya dilacak secara internal? Bukankah itu membawa banyak permintaan duplikat? Saya ingin menunjukkan dukungan untuk fitur ini untuk menyertakan wilayah non-AS.

Ya -- jika Anda mengirim permintaan fitur, kami akan menghapus duplikatnya dari yang lain untuk pelacakan internal kami (dan ini pasti membantu untuk menunjukkan lebih banyak dukungan untuk permintaan!).

Anda dapat menggunakan Cloud Run alih-alih Cloud Function jika Anda tidak memerlukan VPC. Cloud Run (terkelola sepenuhnya) tidak dapat terhubung ke jaringan VPC saat ini. Solusi yang telah saya uji untuk menggunakan VPC + domain kustom + Cloud Function adalah dengan menggunakan Cloud Run dengan domain kustom yang merupakan proxy dari Cloud Function. Ini menambahkan sedikit overhead tetapi jika Cloud Run dan Cloud Function Anda berada di region yang sama, secara teori, latensi seharusnya tidak terlalu besar. Karena itu, saya telah memantaunya lebih dari sebulan dan Cloud Run beta tidak 100% stabil:

image

Ini adalah repo dengan proxy yang saya gunakan jika Anda ingin menyebarkannya ke Cloud Run dan mencobanya https://github.com/reactgraphqlacademy/cloud-run-proxy

Saya telah menguji pekerja Cloudflare dengan proxy di wilayah yang sama dengan Cloud Function dan memantaunya selama periode yang sama. Itu lebih lambat dari Cloud Run, meskipun 100% dapat diandalkan.

image

Anda dapat menggunakan kode ini jika Anda ingin menguji pekerja Cloudflare https://Gist.github.com/alexlbr/814446f03cf12e22f07ccaa580eb1154 . @wangchou Jika saya tidak salah, Anda dapat menjalankan pekerja Cloudflare di Tokio, sehingga dapat lebih dekat ke tepi tempat pengguna berada karena Cloud Run belum didukung di wilayah itu.

Yang berikut ini memantau Cloud Function secara langsung tanpa proxy apa pun selama periode yang sama.

image

Saya telah menggunakan https://uptimerobot.com untuk pemantauan.

Cloud Run terlihat sangat menjanjikan bagi saya, saya tidak sabar menunggu rilis lengkapnya

Ada pembaruan tentang ini? Kenapa ditutup?

Mustahil?

@abdellahaski @l2aelba Kami pasti mendengar titik sakitnya di sini. Seperti yang dikatakan @mbleigh sebelumnya, mengajukannya sebagai permintaan fitur (lihat di bawah) adalah cara terbaik untuk membantu ini mendapatkan daya tarik bagi kami secara internal. Terima kasih!

Masalah ini ditutup karena merupakan permintaan fitur untuk Firebase Hosting yang tidak dapat ditangani secara langsung di Firebase CLI. Permintaan fitur dilacak secara internal dan sebaiknya Anda meminta dukungan untuk wilayah tambahan melalui formulir ini .

Kami sangat menyadari bahwa banyak dari Anda yang menginginkan fitur ini, terima kasih atas umpan baliknya!

Ingin melihat dukungan asia-east2 juga.

Saya hampir menyerah pada firebase karena dokumentasi yang buruk.

Minimum absolut adalah mengeluarkan peringatan jika tidak ada fungsi di us-central yang cocok dengan fungsi di redirect!

Saya menyarankan tim firebase mencoba membiarkan seseorang mengembangkan proyek di mana pengguna berada di luar AS. Ini gila bahwa kami tidak mendapatkan peringatan untuk hal-hal semacam ini.

Mari saling membantu dengan melakukan apa yang mereka minta - kirimkan permintaan fitur:
https://firebase.google.com/support/troubleshooter/report/features

Ini draf untuk Anda salin/tempel - selesaikan saja :)

Hosting menulis ulang ke fungsi di wilayah non-AS
https://github.com/firebase/firebase-tools/issues/842

Benar-benar harus dapat membuat penulisan ulang ke fungsi di wilayah selain US-Central1.

Target audiens kami tidak berada di AS dan kurangnya fitur ini merupakan kendala besar bagi kami, membuat kami tidak yakin untuk mendedikasikan tumpukan teknologi kami ke Firebase secara keseluruhan.

Harap pertimbangkan untuk memprioritaskan fitur ini dalam waktu dekat.
Terima kasih,

image

Di sini berharap untuk fitur ini segera!

Adakah yang pernah meneliti penggunaan cloud run alih-alih fungsi cloud?

Cloud run menyediakan fungsionalitas di wilayah lain juga

Dua tahun kemudian dan ini masih menjadi masalah.. Kenapa ini ditutup?

Hai, ini adalah perilaku yang diharapkan, silakan lihat https://firebase.google.com/docs/functions/locations#http_and_client_callable_functions , kotak biru menunjukkan bahwa semua fungsi yang berfungsi sebagai pengalihan hosting harus berada di 'us-central1', ini karena dari situlah asal hosting.

Halaman @laurenzlong

Cloud Functions tersedia di region berikut:

  • us-central1 (Iowa)
  • us-east1 (Carolina Selatan)
  • us-east4 (Virginia Utara)
  • eropa-barat1 (Belgia)
  • eropa-barat2 (London)
  • eropa-barat3 (Frankfurt)
  • asia-timur2 (Hong Kong)
  • asia-timur laut1 (Tokyo)

Saya memilih eur3 (europe-west) karena berada di urutan teratas bersama dengan us-central1, dan terpisah dari lokasi lain. Pikir keduanya default.

Apa yang harus saya lakukan, apakah ada perbaikan untuk ini?

Mengapa?????

Hai teman-teman, terima kasih atas semua umpan balik tentang ini. Kami pasti mendengar bahwa Anda ingin melihat fungsi dukungan Firebase Hosting di luar us-central1 . Sayangnya ada sejumlah besar pekerjaan infrastruktur yang harus dilakukan sebelum dapat bekerja dengan baik, jadi kami tidak bisa hanya "membalik saklar" dan membawa wilayah lain online.

Kami telah mendengar tentang ini cukup sering sebagai permintaan fitur, dan itu ada di peta jalan kami meskipun saya tidak dapat mengomentari garis waktu tertentu. Repositori ini bukan tempat yang tepat untuk memposting permintaan fitur untuk produk Firebase Hosting secara keseluruhan -- jika Anda tertarik dengan fitur ini, kirimkan permintaan fitur agar kami dapat terus melacak minat tersebut secara internal dan memprioritaskan pekerjaan yang perlu terjadi untuk mengaktifkannya.

Terima kasih semuanya!

Hai,

Saya pikir tidak ada yang peduli di mana Anda menghosting, kami hanya ingin perbaikan sederhana sehingga kesalahan tidak akan muncul.

Perbaikan ini dapat dilakukan dalam kode Anda, tidak ada hubungannya di mana Anda melakukan hosting Anda..

Dan ini bukan permintaan fitur, penghapusan bug tidak menjadi fitur. Hapus saja bug itu

Terima kasih..

Apakah halaman ini membantu?
0 / 5 - 0 peringkat