Cloud Run ile Firebase Hosting'i eşleyerek kendi isteklerinizi oluşturup sunun veya REST API'lerini mikro hizmet olarak oluşturun.
Cloud Run'ı kullanarak şunları yapabilirsiniz: container görüntüsünde paketlenmiş bir uygulama dağıtma Daha sonra Firebase Hosting'i kullanıyorsanız, HTTPS isteklerini yönlendirmek için container mimarisine alınmış bir uygulamadır.
- Cloud Run destekler çeşitli dillerde (Go, Node.js, Python ve Java dahil) size çok yönlü programlama dilini ve çerçevesini seçin.
- Cloud Run otomatik ve yatay olarak ölçeklendirilir gelen istekleri işlemek için container görüntünüzü kullanabilir, daha sonra düştüğünü görebilirsiniz.
- Yalnızca CPU için ödeme yaparsınız. bellek ve istek işleme sırasında tüketilen ağ miktarı.
Örnek: Cloud Run'ın entegre olduğu kullanım alanları ve örnekler Firebase Hosting hakkında bilgi için sunucusuz genel bakış.
.
Bu kılavuzda aşağıdakilerin nasıl yapılacağı gösterilmektedir:
- Basit bir Hello World uygulaması yazma
- Bir uygulamayı container mimarisine alma ve Container Registry'ye yükleme
- Container görüntüsünü Cloud Run'a dağıtma
- Container mimarisine alınmış uygulamanıza doğrudan Hosting istekleri
Dinamik içerik sunma performansını iyileştirmek için şunları yapabilirsiniz: İsterseniz önbellek ayarlarınızı düzenleyebilirsiniz.
Başlamadan önce
Cloud Run'ı kullanmadan önce bazı başlangıç görevlerini tamamlamanız gerekir.
Cloud Run'ın etkinleştirilmesi dahil olmak üzere Cloud Faturalandırma hesabı oluşturma
API'ye gidip gcloud
komut satırı aracını yükleyin.
Projeniz için faturalandırma ayarlarını yapın
Cloud Run ücretsiz kullanım kotası sunar. Ancak yine de Cloud Faturalandırma hesabı Firebase projenizle ilişkilendirin.
ziyaret edin.API'yi etkinleştirme ve SDK'yı yükleme
Google API'leri konsolunda Cloud Run API'yi etkinleştirin:
Şunu açın: Cloud Run API sayfası yapılandırmalısınız.
İstendiğinde Firebase projenizi seçin.
Cloud Run API sayfasında Etkinleştir'i tıklayın.
Yükleyin ve başlatın. Google Cloud SDK.
gcloud
aracının doğru proje için yapılandırıldığından emin olun:gcloud config list
1. Adım: Örnek uygulamayı yazın
Cloud Run'ın şunları desteklediğini unutmayın: birçok dilde şu örnekte gösterilen dillere ek olarak.
Go
helloworld-go
adında yeni bir dizin oluşturun, ardından dizini şu şekilde değiştirin: şunları sağlar:mkdir helloworld-go
cd helloworld-go
helloworld.go
adında yeni bir dosya oluşturun, ardından aşağıdaki kodu ekleyin:Bu kod, API'nin tanımladığı bağlantı noktasında dinleme yapan temel bir web sunucusu oluşturur
PORT
ortam değişkeni
Uygulamanız tamamlandı ve container mimarisine alınmaya ve şuralara yüklenmeye hazır: Container Registry.
Node.js
helloworld-nodejs
adlı yeni bir dizin oluşturun ve ardından dizini değiştirin girin:mkdir helloworld-nodejs
cd helloworld-nodejs
Aşağıdaki içeriklere sahip bir
package.json
dosyası oluşturun:index.js
adında yeni bir dosya oluşturun, ardından aşağıdaki kodu ekleyin:Bu kod, API'nin tanımladığı bağlantı noktasında dinleme yapan temel bir web sunucusu oluşturur
PORT
ortam değişkeni
Uygulamanız tamamlandı ve container mimarisine alınmaya ve şuralara yüklenmeye hazır: Container Registry.
Python
helloworld-python
adlı yeni bir dizin oluşturun ve ardından dizini değiştirin girin:mkdir helloworld-python
cd helloworld-python
app.py
adında yeni bir dosya oluşturun, ardından aşağıdaki kodu ekleyin:Bu kod, API'nin tanımladığı bağlantı noktasında dinleme yapan temel bir web sunucusu oluşturur
PORT
ortam değişkeni
Uygulamanız tamamlandı ve container mimarisine alınmaya ve şuralara yüklenmeye hazır: Container Registry.
Java
Yükle Java SE 8 veya sonraki bir JDK ve CURL.
Bunu yalnızca şurada yeni web projesini oluşturmak için yapmamız gerektiğini unutmayın: bir sonraki adıma geçebiliriz. Daha sonra açıklanacak olan Dockerfile, container'a yansıtmanıza yardımcı olur.
Konsolda cURL'yi kullanarak yeni bir boş web projesi oluşturun, ardından sıkıştırmayı açma komutları:
curl https://start.spring.io/starter.zip \ -d dependencies=web \ -d name=helloworld \ -d artifactId=helloworld \ -o helloworld.zip
unzip helloworld.zip
Bu işlem bir SpringBoot projesi oluşturur.
SpringBootApplication
sınıfını güncellesrc/main/java/com/example/helloworld/HelloworldApplication.java
tarafından/
eşlemesini işlemek için bir@RestController
ekleyerek ve aynı zamanda birTARGET
ortam değişkenini sağlamak için@Value
alanı:Bu kod, API'nin tanımladığı bağlantı noktasında dinleme yapan temel bir web sunucusu oluşturur
PORT
ortam değişkeni
Uygulamanız tamamlandı ve container mimarisine alınmaya ve şuralara yüklenmeye hazır: Container Registry.
2. Adım: Bir uygulamayı container mimarisine alın ve Container Registry'ye yükleyin
Şurada
Dockerfile
adlı yeni bir dosya oluşturarak örnek uygulamayı container mimarisine alın: kaynak dosyalarla aynı dizine sahip olur. Aşağıdaki içeriği kopyalayıp dosyası olarak kaydedebilirsiniz.Go
Node.js
Python
Java
Aşağıdaki komutu çalıştırarak Cloud Build kullanarak container görüntünüzü derleyin. komutunu çalıştırın:
gcloud builds submit --tag gcr.io/PROJECT_ID/helloworld
İşlem başarılı olduğunda, resim adını içeren BAŞARILI mesajı göreceksiniz
(gcr.io/PROJECT_ID/helloworld
).
Container görüntüsü artık Container Registry'de saklanıyor ve aşağıdaki durumlarda yeniden kullanılabilir: gerekir.
Cloud Build yerine yerel olarak yüklenmiş bir sürümü kullanabileceğinizi unutmayın için Docker'ı kapsayıcınızı yerel olarak derleyin.
3. Adım: Container görüntüsünü Cloud Run'a dağıtın
Şu komutu kullanarak dağıtın:
gcloud run deploy --image gcr.io/PROJECT_ID/helloworld
İstendiğinde:
- Bölge seçin (örneğin
us-central1
) - Hizmet adını onaylayın (örneğin,
helloworld
) - Kimliği doğrulanmayan çağrılara izin ver komutuna
Y
yanıtı verin
- Bölge seçin (örneğin
En iyi performans için aşağıdaki bölgeleri kullanarak Cloud Run hizmetinizi Hosting ile birlikte kullanın:
us-west1
us-central1
us-east1
europe-west1
asia-east1
Hosting'den Cloud Run'a yeniden yazma işlemleri şu bölgelerde:
asia-east1
asia-east2
asia-northeast1
asia-northeast2
asia-northeast3
asia-south1
asia-south2
asia-southeast1
asia-southeast2
australia-southeast1
australia-southeast2
europe-central2
europe-north1
europe-southwest1
europe-west1
europe-west12
europe-west2
europe-west3
europe-west4
europe-west6
europe-west8
europe-west9
me-central1
me-west1
northamerica-northeast1
northamerica-northeast2
southamerica-east1
southamerica-west1
us-central1
us-east1
us-east4
us-east5
us-south1
us-west1
us-west2
us-west3
us-west4
us-west1
us-central1
us-east1
europe-west1
asia-east1
Dağıtımın tamamlanması için birkaç dakika bekleyin. Başarılı olursa, komut satırı hizmet URL'sini görüntüler. Örnek:
.https://helloworld-RANDOM_HASH-us-central1.a.run.app Hizmet URL'sini bir web tarayıcısında açarak dağıtılmış kapsayıcınızı ziyaret edin.
Sonraki adımda, container mimarisine alınmış bu uygulamaya bir Firebase Barındırma URL'si Firebase tarafından barındırılan site.
4. Adım: Barındırma isteklerini, container mimarisine alınmış uygulamanıza yönlendirin
Entegre yeniden yazma kurallarını kullanıyorsanız istekleri belirli kalıplar tek bir hedefle eşleştiren
Aşağıdaki örnekte, sayfadan gelen tüm isteklerin nasıl yönlendirileceği gösterilmektedir
/helloworld
başlatılmasını ve çalıştırılmasını tetiklemek için
helloworld
container örneğiniz.
Aşağıdaki koşulların karşılandığından emin olun:
Sahip olduğunuz Firebase CLI'ın en son sürümüne sahip olmalısınız.
Firebase Hosting'i başlattınız.
KSA'yı yükleme ve başlatma hakkında ayrıntılı talimatlar için Barındırma bilgileri Barındırma Başlangıç Kılavuzu.
firebase.json
dosyanızı açın.hosting
bölümü altına aşağıdakirewrite
yapılandırmasını ekleyin:"hosting": { // ... // Add the "rewrites" attribute within "hosting" "rewrites": [ { "source": "/helloworld", "run": { "serviceId": "helloworld", // "service name" (from when you deployed the container image) "region": "us-central1", // optional (if omitted, default is us-central1) "pinTag": true // optional (see note below) } } ] }
Aşağıdaki kodu çalıştırarak barındırma yapılandırmanızı sitenize dağıtın komutunu çalıştırın:
firebase deploy --only hosting
Kapsayıcınıza artık aşağıdaki URL'lerden erişilebilir:
Firebase alt alan adlarınız:
PROJECT_ID.web.app/
vePROJECT_ID.firebaseapp.com/
Bağlı tüm özel alanlar:
CUSTOM_DOMAIN/
Hosting yapılandırma sayfasını ziyaret edin: yeniden yazma kuralları hakkında daha fazla bilgi edinin. Şunları yapabilirsiniz: şu konularda da bilgi edinebilirsiniz: yanıtların öncelik sırası barındırmaktadır.
Yerel olarak test et
Geliştirme sırasında container görüntünüzü yerel olarak çalıştırıp test edebilirsiniz. Örneğin, daha ayrıntılı talimatlar için Cloud Run belgeleri.
Sonraki adımlar
Dinamik içeriğinizin önbelleğe alınmasını global CDN.
Şu API'yi kullanarak diğer Firebase hizmetleriyle etkileşime geçin: Firebase Yönetici SDK'sı.
Aşağıdakiler de dahil olmak üzere Cloud Run hakkında daha fazla bilgi edinin: ayrıntılı "Nasıl Yapılır?" kılavuzlarını container'ları kurma, yönetme ve yapılandırma.
Fiyatlandırmayı ve kota ve sınırları Cloud Run.