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
- Bir uygulamayı container mimarisine alma ve Container Registry hedefine 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 uygulamasını kullanmadan önce bazı başlangıç işlemlerini tamamlamanız gerekir.
Cloud Billing hesabı oluşturma, Cloud Run etkinleştirme dahil
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 Billing hesap Firebase projenizle ilişkilendirilir veya Cloud Run'ı deneyin.
ziyaret edin.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
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ı kapsayıcıya alın ve Container Registry hizmetine 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ü 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
Ş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ğrulanmamış çağrılara izin ver için
Y
yanıtını 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 dilinden Cloud Run diline 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, 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
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:
Sahip olduğunuz Firebase KSA'nın en son sürümünü kullanmanız gerekir.
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) } } ] }
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ı ç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ı.
Şu konular dahil olmak üzere Cloud Run hakkında daha fazla bilgi edinin: ayrıntılı "Nasıl Yapılır?" kılavuzlarında container'ları kurma, yönetme ve yapılandırma.
Fiyatlandırmayı ve kota ve sınırları Cloud Run.