App Hosting, kullanım kolaylığı ve az bakım için tasarlanmıştır. Çoğu kullanım alanı için optimize edilmiş varsayılan ayarlar vardır. Aynı zamanda App Hosting, arka uçları özel ihtiyaçlarınıza göre yönetmenizi ve yapılandırmanızı sağlayan araçlar sunar. Bu kılavuzda bu araçlar ve süreçler açıklanmaktadır.
Arka uç yapılandırma
Çevre değişkenleri veya eşzamanlılık, CPU ve bellek sınırları gibi çalışma zamanı ayarları gibi gelişmiş yapılandırmalar için uygulamanızın kök dizininde apphosting.yaml
dosyasını oluşturup düzenlemeniz gerekir. Bu dosya, Cloud Secret Manager ile yönetilen gizli anahtarlara yapılan referansları da desteklediğinden kaynak kontrolüne giriş yapmayı güvenli hale getirir.
apphosting.yaml
oluşturmak için aşağıdaki komutu çalıştırın:
firebase init apphosting
Bu işlem, örnek (yorum yapılan) yapılandırmasıyla temel bir başlangıç apphosting.yaml
dosyası oluşturur. Düzenleme sonrasında, arka uçtaki Cloud Run hizmetinin ayarları, bazı ortam değişkenleri ve Cloud Secret Manager tarafından yönetilen gizli bilgilere yönelik bazı referanslar içeren tipik bir apphosting.yaml
dosyası aşağıdaki gibi görünebilir:
# Settings for Cloud Run
runConfig:
minInstances: 2
maxInstances: 100
concurrency: 100
cpu: 2
memoryMiB: 1024
# Environment variables and secrets
env:
- variable: STORAGE_BUCKET
value: mybucket.appspot.com
availability:
- BUILD
- RUNTIME
- variable: API_KEY
secret: myApiKeySecret
# Same as API_KEY above but with a pinned version.
- variable: PINNED_API_KEY
secret: myApiKeySecret@5
# Same as API_KEY above but with the long form secret reference as defined by Cloud Secret Manager.
- variable: VERBOSE_API_KEY
secret: projects/test-project/secrets/secretID
# Same as API_KEY above but with the long form secret reference with pinned version.
- variable: PINNED_VERBOSE_API_KEY
secret: projects/test-project/secrets/secretID/versions/5
Bu kılavuzun geri kalanında, bu örnek ayarlarla ilgili daha fazla bilgi ve bağlam sağlanmaktadır.
Cloud Run hizmet ayarlarını yapılandırın
apphosting.yaml
ayarlarıyla, Cloud Run hizmetinizin nasıl temel hazırlığının yapılacağını yapılandırabilirsiniz. Cloud Run hizmeti için kullanılabilen ayarlar runConfig
nesnesinde sağlanır:
cpu
: Her sunma örneği için kullanılan CPU sayısı (varsayılan 0).memoryMiB
- MiB cinsinden her sunum örneğine ayrılan bellek miktarı (varsayılan 512)maxInstances
- Aynı anda çalıştırılabilecek maksimum container sayısı (varsayılan olarak 100'dür ve kota ile yönetilir)minInstances
: Her zaman etkin kalacak kapsayıcı sayısı (varsayılan 0).concurrency
: Her sunma örneğinin alabileceği maksimum istek sayısı (varsayılan 80).
cpu
ile memoryMiB
arasındaki önemli ilişkiye dikkat edin. Bellek, 128 ile 32.768 arasında herhangi bir tam sayı değerine ayarlanabilir ancak bellek sınırını artırmak için CPU sınırlarını da artırmanız gerekebilir:
- 4 GiB'den fazlası için en az 2 CPU gerekir
- 8 GiB'den fazlası için en az 4 CPU gerekir
- 16 GiB üzeri için en az 6 CPU gerekir
- 24 GiB üzeri için en az 8 CPU gerekir
Benzer şekilde, cpu
değeri eşzamanlılık ayarlarını etkiler. 1 CPU'dan az bir değer ayarlarsanız eşzamanlılığı 1 olarak ayarlamanız gerekir ve CPU yalnızca istek işleme sırasında ayrılır.
Derleme ortamını yapılandırma
Bazen derleme işleminiz için üçüncü taraf API anahtarları veya ayarlanabilir ayarlar gibi ek yapılandırmaya ihtiyacınız olur. App Hosting, projeniz için bu tür verileri depolamak ve almak üzere apphosting.yaml
'te ortam yapılandırması sunar.
env:
- variable: STORAGE_BUCKET
value: mybucket.appspot.com
Next.js uygulamalarında, ortam değişkenleri içeren dotenv dosyaları da App Hosting ile çalışır. Herhangi bir çerçeveyle ayrıntılı ortam değişkeni kontrolü için apphosting.yaml
kullanmanızı öneririz.
apphosting.yaml
ürününde, availability
özelliğini kullanarak hangi işlemlerin ortam değişkeninize erişebileceğini belirtebilirsiniz. Bir ortam değişkenini yalnızca derleme ortamında veya yalnızca çalışma ortamında kullanılabilir olacak şekilde kısıtlayabilirsiniz. Varsayılan olarak her iki taraf da kullanılabilir.
env:
- variable: STORAGE_BUCKET
value: mybucket.appspot.com
availability:
- BUILD
- RUNTIME
Next.js uygulamaları için, bir değişkeni tarayıcıda erişilebilir hale getirmek üzere dotenv dosyanızda yaptığınız gibi NEXT_PUBLIC_
ön ekini de kullanabilirsiniz.
env:
- variable: NEXT_PUBLIC_STORAGE_BUCKET
value: mybucket.appspot.com
availability:
- BUILD
- RUNTIME
Geçerli değişken anahtarları A-Z karakter veya alt çizgilerden oluşur. Bazı ortam değişkeni anahtarları dahili kullanım için ayrılmıştır. Yapılandırma dosyalarınızda aşağıdaki anahtarlardan hiçbirini kullanmayın:
X_FIREBASE_
ile başlayan tüm değişkenlerPORT
K_SERVICE
K_REVISION
K_CONFIGURATION
Gizli anahtar parametrelerini depolama ve bunlara erişme
API anahtarları gibi hassas bilgiler gizli anahtar olarak saklanmalıdır. Hassas bilgilerin kaynak denetiminde kontrol edilmesini önlemek için apphosting.yaml
içindeki gizli bilgileri referans olarak kullanabilirsiniz.
secret
türündeki parametreler, Cloud Secret Manager'da depolanan bir değeri olan dize parametrelerini temsil eder.
Gizli anahtar parametreleri, değeri doğrudan türetmek yerine, Cloud Secret Manager'daki mevcut olup olmadıklarını kontrol eder ve değerleri kullanıma sunma sırasında yükler.
- variable: API_KEY
secret: myApiKeySecret
Cloud Secret Manager'daki gizli anahtarların birden fazla sürümü olabilir. Varsayılan olarak, canlı arka uçunuzda kullanılabilen bir gizli anahtar parametresinin değeri, arka uç oluşturulduğu sırada gizli anahtarın mevcut olan en son sürümüne sabitlenir. Parametrelerin sürüm oluşturma ve yaşam döngüsü yönetimiyle ilgili şartlarınız varsa Cloud Secret Manager ile belirli sürümlere sabitleyebilirsiniz. Örneğin, 5. sürüme sabitlemek için:
- variable: PINNED_API_KEY
secret: myApiKeySecret@5
firebase apphosting:secrets:set
komutunu kullanarak gizli anahtarlar oluşturabilirsiniz. Bu durumda, gerekli izinleri eklemeniz istenir. Bu akış, gizli referansı apphosting.yaml
'e otomatik olarak ekleme seçeneği sunar.
Cloud Secret Manager'ın tüm işlevlerinden yararlanmak için Cloud Secret Manager konsolunu kullanabilirsiniz. Bunu yaparsanız firebase
apphosting:secrets:grantaccess
CLI komutunu kullanarak App Hosting arka ucunuza izin vermeniz gerekir.
Firebase Auth durumunu senkronize etme
Firebase Auth kullanan uygulamalar, kimlik doğrulama durumunun istemci ve sunucu arasında senkronize edilmesine yardımcı olmak için Firebase Web SDK'sını kullanmayı düşünmelidir. Bu, FirebaseServerApp
'ü bir hizmet çalışanıyla uygulayarak kolaylaştırılabilir. Temel görev akışı şu şekildedir:
- Sunucuya yapılan isteklerde uygulamanız için doğru üstbilgileri ekleyen bir hizmet çalışanı uygulayın.
- Sunucudaki istekteki üstbilgileri alın ve
FirebaseServerApp
ile kimlik doğrulama kullanıcısına dönüştürün.
Arka uçları yönetme
App Hosting arka uçlarının temel yönetimi için komutlar Firebase CLI'de sağlanır. Bazı işlemler Firebase konsolunda da kullanılabilir. Bu bölümde, arka uç oluşturma ve silme dahil olmak üzere daha yaygın yönetim görevlerinden bazıları açıklanmaktadır.
Arka uç oluşturma
App Hosting arka ucu, App Hosting tarafından Web uygulamanızı derlemek ve çalıştırmak için oluşturulan yönetilen kaynakların koleksiyonudur. Firebase konsolunu veya Firebase KSA'yı kullanarak App Hosting arka uçları oluşturup listeleyebilirsiniz.
Firebase konsolu: Derleme menüsünden Uygulama Barındırma'yı, ardından Başlayın'ı seçin.
KSA: (Sürüm 13.15.4 veya sonrası) Bir arka uç oluşturmak için yerel proje dizininizin kökünden aşağıdaki komutu çalıştırın. proje kimliğinizi ve tercih ettiğiniz bölgeyi bağımsız değişken olarak sağlayın:
firebase apphosting:backends:create --project PROJECT_ID --location us-central1
Hem konsolda hem de KSA'da, arka uçunuza bir ad atamak, GitHub bağlantısı oluşturmak ve aşağıdaki temel dağıtım ayarlarını yapılandırmak için talimatları uygulayın:
Uygulamanızın kök dizinini ayarlayın (varsayılan olarak
/
)package.json
dosyanız genellikle burada bulunur.
Canlı şubeyi ayarlama
Bu, GitHub deponuzun canlı URL'nize dağıtılan dalıdır. Genellikle özellik şubelerinin veya geliştirme şubelerinin birleştirildiği şubedir.
Otomatik kullanıma sunma işlemlerini kabul etme veya reddetme
Otomatik kullanıma sunma işlemleri varsayılan olarak etkindir. Arka uç oluşturma işlemi tamamlandığında, uygulamanızın App Hosting'e hemen dağıtılmasını seçebilirsiniz.
Arka uç silin
Bir arka uç hizmetini tamamen kaldırmak için önce Firebase CLI'yi kullanın, ardından diğer arka uç hizmetleri veya Firebase projenizin diğer yönleri tarafından kullanılabilecek kaynakları silmemek için özellikle dikkatli olarak ilgili öğeleri manuel olarak kaldırın.
App Hosting arka uç hizmetini silmek için aşağıdaki komutu çalıştırın. Bu işlem, arka uç alanlarınızın tümünü devre dışı bırakır ve ilişkili Cloud Run hizmetini siler:
firebase apphosting:backends:delete BACKEND_ID --project PROJECT_ID --location us-central1
(İsteğe bağlı) Artifact Registry için Google Cloud Console sekmesinde, "firebaseapphosting-images" bölümünde arka uçunuzun resmini silin.
Cloud Secret Manager'da, gizli adında "apphosting" (uygulama barındırma) bulunan tüm gizli anahtarları silin. Bu gizli anahtarların diğer arka uçlar veya Firebase projenizin diğer yönleri tarafından kullanılmadığından emin olmak için özel dikkat gösterin.