App Hosting, kullanım kolaylığı ve düşük bakım maliyeti için tasarlanmıştır. Varsayılan ayarlar, çoğu kullanım alanı için optimize edilmiştir. 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 destekler. Bu sayede, kaynak denetimine eklemek güvenli olur.
apphosting.yaml
oluşturmak için aşağıdaki komutu çalıştırın:
firebase init apphosting
Bu işlem, örnek yapılandırma (yorumlu) içeren 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.firebasestorage.app
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
: Her bir sunma örneği için MiB cinsinden ayrılan bellek miktarı (varsayılan 512)maxInstances
: Aynı anda çalıştırılacak maksimum container sayısı (varsayılan olarak 100'dür ve kotaya göre 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'den fazlası için en az 6 CPU gerekir
- 24 GiB'den fazlası için en az 8 CPU gerekir
Benzer şekilde, cpu
değerinin eşzamanlılık ayarlarını etkilediği de unutulmamalıdır. 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ırmalara ihtiyacınız olabilir. 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.firebasestorage.app
Next.js uygulamaları için 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
dosyasında, availability
özelliğini kullanarak hangi işlemlerin ortam değişkeninize erişimi olduğunu 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 kullanıcı da bu özelliği kullanabilir.
env:
- variable: STORAGE_BUCKET
value: mybucket.firebasestorage.app
availability:
- BUILD
- RUNTIME
Next.js uygulamaları için, bir değişkeni tarayıcıda erişilebilir hale getirmek amacıyla dotenv dosyanızda yaptığınız gibi NEXT_PUBLIC_
ön ekini de kullanabilirsiniz.
env:
- variable: NEXT_PUBLIC_STORAGE_BUCKET
value: mybucket.firebasestorage.app
availability:
- BUILD
- RUNTIME
Geçerli değişken anahtarları A-Z karakterlerinden 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 parametreleri depolama ve bunlara erişme
API anahtarları gibi hassas bilgiler gizli anahtar olarak saklanmalıdır. Hassas bilgilerin kaynak denetimine 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 parametreler, değeri doğrudan türetmek yerine Cloud Secret Manager'da varlığı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 anahtar 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 işlevlerinin tamamını kullanmak için Cloud Secret Manager konsolunu kullanabilirsiniz. Bunu yaparsanız firebase
apphosting:secrets:grantaccess
CLI komutunu kullanarak App Hosting arka uçunuza izin vermeniz gerekir.
Firebase Auth durumunu senkronize etme
Firebase Auth kullanan uygulamalar, kimlik doğrulama durumunun istemci ile sunucu arasında senkronize kalmasına yardımcı olmak için Firebase Web SDK'sını kullanmalıdır. 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'nin web uygulamanızı oluşturmak ve çalıştırmak için oluşturduğu yönetilen kaynaklar koleksiyonudur. Tüm proje sahipleri, Firebase konsolunu veya Firebase KSA'yı kullanarak bir proje için ilk App Hosting arka ucunu oluşturabilir. Bu ilk kurulumdan sonra App Hosting yöneticileri ek arka uçlar da oluşturup yönetebilir. Ayrıntılar için Firebase App Hosting IAM rolleri başlıklı makaleyi inceleyin.
Firebase konsolu: Derleme menüsünden Uygulama Barındırma'yı, ardından Başlayın'ı seçin.
KSA: (13.15.4 veya sonraki sürümler) Arka uç oluşturmak için yerel proje dizininizin kökünden aşağıdaki komutu çalıştırın. Komutla birlikte projectID ve tercih ettiğiniz bölge parametrelerini belirtin:
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
/
)Bu genellikle
package.json
dosyanızı bulacağınız yerdir.
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 özelliği 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 anahtar adında "apphosting" 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.