Cloud Run oluşturmak ve yayınlamak için Firebase Hosting ile eşleştirin veya REST API'lerini mikro hizmet olarak oluşturun.
Cloud Run hizmetini kullanarak şunları yapabilirsiniz: container görüntüsünde paketlenmiş bir uygulama dağıtma Daha sonra Firebase Hosting, HTTPS isteklerinizi container mimarisine alınmış bir uygulamadır.
- Cloud Run destekler bazı diller (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ı.
Örneğin, Cloud Run için kullanım alanları ve örnekler, Firebase Hosting için sunucusuz genel bakış.
Bu kılavuzda aşağıdakilerin nasıl yapılacağı gösterilmektedir:
- Basit bir Hello World uygulaması yazma
- Uygulamayı kapsayıcıya alma ve Container Registry'a yükleme
- Container görüntüsünü Cloud Run projesine dağıtın
- Hosting isteklerini container mimarisine alınmış uygulamanıza yönlendirme
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 Cloud Billing hesabı oluşturma, Cloud Run API'yi etkinleştirme ve gcloud
komut satırı aracını yükleme gibi bazı başlangıç görevlerini tamamlamanız gerekir.
Projeniz için faturalandırma ayarlarını yapın
Cloud Run, ücretsiz kullanım kotası sunar ancak Cloud Run'ü kullanmak veya denemek için Firebase projenizle ilişkili bir Cloud Billing hesabınız olmalıdır.
API'yi etkinleştirme ve SDK'yı yükleme
Google API'leri konsolunda Cloud Run API'sini 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 uygulamasının desteklediğini unutmayın başka birçok dil ş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
adlı yeni bir dosya oluşturun ve 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
adlı yeni bir dosya oluşturun ve 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 kapsayıcıya yerleştirilip Container Registry'e yüklenmeye hazır.
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.
/
eşlemesini işlemek için bir@RestController
veTARGET
ortam değişkenini sağlamak için bir@Value
alanı ekleyereksrc/main/java/com/example/helloworld/HelloworldApplication.java
içindekiSpringBootApplication
sınıfını güncelleyin:Bu kod,
PORT
ortam değişkeni tarafından tanımlanan bağlantı noktasında dinleme yapan temel bir web sunucusu oluşturur.
Uygulamanız tamamlandı ve container mimarisine alınmaya ve şuralara yüklenmeye hazır: Container Registry
2. Adım: Bir uygulamayı kapsayıcıya alın ve Container Registry'ye yükleyin
Kaynak dosyalarla aynı dizinde
Dockerfile
adlı yeni bir dosya oluşturarak örnek uygulamayı kapsayıcıya alın. 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ü oluşturun. 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 içinde depolanı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 ürününe dağıtın
Aşağıdaki komutu kullanarak dağıtın:
gcloud run deploy --image gcr.io/PROJECT_ID/helloworld
İstendiğinde:
- Bir 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
- Bir 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 kaynağından Cloud Run öğesine yeniden yazma işlemleri şurada desteklenmektedir: ş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 Hosting URL'sini kullanarak siteniz için dinamik içerik oluşturabilir Firebase tarafından barındırılan site.
4. adım: Barındırma isteklerini kapsayıcı uygulamanıza yönlendirin
Yeniden yazma kuralları sayesinde, belirli kalıplarla eşleşen istekleri tek bir hedefe yönlendirebilirsiniz.
Aşağıdaki örnekte, sayfadan gelen tüm isteklerin nasıl yönlendirileceği gösterilmektedir
ve çalıştırılmasını tetiklemek için Hosting sitenizde /helloworld
helloworld
container örneğiniz.
Aşağıdaki koşulların karşılandığından emin olun:
Firebase İTŞ'nin en son sürümüne sahip olmalısınız.
Firebase Hosting uygulamasını başlattınız.
KSA'yı yükleme ve başlatma hakkında ayrıntılı talimatlar için Hosting için Hosting için 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) } } ] }
Proje dizininizin kökünden aşağıdaki komutu çalıştırarak barındırma yapılandırmanızı sitenize dağıtı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ı çeşitli Hosting yapılandırmaları için.
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 dokümanları.
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ı.
Kapsayıcıları ayarlama, yönetme ve yapılandırmayla ilgili ayrıntılı kullanım kılavuzları da dahil olmak üzere Cloud Run hakkında daha fazla bilgi edinin.
Fiyatlandırmayı ve kota ve sınırları Cloud Run.