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 ayarlarla Aynı anda App Hosting, arka uçları yönetmeniz ve yapılandırmanız için araçlar sağlar yardımcı olabilir. Bu kılavuzda bu araçlar ve süreçler açıklanmaktadır.
Arka uç yapılandırma
Ortam değişkenleri veya çalışma zamanı ayarları gibi gelişmiş yapılandırmalar için
gibi eşzamanlılık, CPU ve bellek sınırları gibi özellikler için
apphosting.yaml
dosyasını uygulamanızın kök dizininde oluşturun. Bu dosya da
yönetilen gizli anahtarlara yapılan referansları destekler
Böylece, kaynak kontrolüne giriş yapmayı güvenli hale getirir.
Tipik bir apphosting.yaml
dosyası aşağıdaki gibi görünebilir ve bunun için
arka ucun Cloud Run hizmetini, bazı ortam değişkenlerini ve
Cloud Secret Manager tarafından yönetilen gizli anahtarlara yapılan referanslar:
# 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 örneklerle ilgili daha fazla bilgi ve bağlam sunulmaktadır Ayarlar'da devre dışı bırakabilirsiniz.
Cloud Run hizmet ayarlarını yapılandırın
apphosting.yaml
ayarlarıyla, verilerinizin nasıl yapılandırılacağını
Cloud Run hizmeti
temel hazırlığı yapılmış. Kullanılabilir ayarlar
Cloud Run hizmeti, runConfig
nesnesinde sağlanır:
cpu
- Her sunum örneği için kullanılan CPU sayısı (varsayılan 0).memoryMiB
- MiB'de her sunum örneğine ayrılan bellek miktarı (varsayılan 512)maxInstances
– Aynı anda çalıştırılabilecek maksimum container sayısı (varsayılan) / 100 ve kota tarafından yönetiliyor)minInstances
– Her zaman etkin kalacak kapsayıcı sayısı (varsayılan 0).concurrency
: Her sunma örneğinin yapabileceği maksimum istek sayısı al (varsayılan değer 80).
cpu
ve memoryMiB
arasındaki önemli ilişkiye dikkat edin; bellek ayarlanabilir
128 ile 32768 arasında herhangi bir tam sayı değeri oluşturabilirsiniz, ancak bellek sınırını artırmak
CPU sınırlarının artırılmasını gerektirir:
- 4GiB üzeri bir hız için en az 2 CPU gerekir
- 8GiB üzeri bir hız 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. Bir değer ayarlarsanız
CPU, 1'den az ise eşzamanlılığı 1 olarak ayarlamanız gerekir. Yalnızca CPU ayrılır
sırasında açıklığa kavuşturulabilir.
Derleme ortamını yapılandırma
Bazen derleme işleminiz için ek yapılandırmaya ihtiyacınız olur, örneğin:
üçüncü taraf API anahtarları veya ayarlanabilir ayarlar. App Hosting ortam sunuyor
bunu depolayıp almak için apphosting.yaml
içinde yapılandırma
veri türünü ifade eder.
env:
- variable: STORAGE_BUCKET
value: mybucket.appspot.com
Next.js uygulamaları için,
ortam değişkenleri
ayrıca
App Hosting ile çalışın. Ayrıntılı veriler için apphosting.yaml
kullanmanızı öneririz.
her çerçeveyle kontrol edebilirsiniz.
apphosting.yaml
bölümünde,
ortam değişkenini availability
özelliğini kullanarak değiştirebilirsiniz. Bir
ortam değişkeninin yalnızca derleme ortamında veya kullanılabilir
yalnızca çalışma zamanı ortamına gönderebilirsiniz. Varsayılan olarak her iki taraf da kullanılabilir.
env:
- variable: STORAGE_BUCKET
value: mybucket.appspot.com
availability:
- BUILD
- RUNTIME
Next.js uygulamalarında NEXT_PUBLIC_
ön ekini
inceleyebilirsiniz.
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. Biraz ortam değişkeni anahtarları dahili kullanım için ayrılmıştır. Bunlardan hiçbirini kullanmayın anahtarlarınız:
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 depolanmalıdır. Şunları yapabilirsiniz:
Hassas bilgileri kontrol etmemek için apphosting.yaml
içindeki gizli anahtarlara referansta bulunun
kaynak kontrolüne gönderebilirsiniz.
secret
türündeki parametreler, değere sahip dize parametrelerini temsil eder
Cloud Secret Manager'da depolanır.
Şunun yerine:
Gizli anahtar parametreleri, değeri doğrudan türeterek Cloud'daki mevcut olup olmadığını kontrol eder.
Secret Manager'a gidin ve kullanıma sunma sırasında değerleri yükleyin.
- variable: API_KEY
secret: myApiKeySecret
Cloud Secret Manager'daki gizli anahtarların birden fazla sürümü olabilir. Varsayılan olarak canlı arka ucunuzda kullanılabilen bir gizli parametrenin değeri, arka uç oluşturulduğunda gizli anahtarın mevcut en son sürümü Şu durumda: parametreler için sürüm oluşturma ve yaşam döngüsü yönetimiyle ilgili gereksinimleriniz varsa Cloud Secret Manager ile belirli sürümlere sabitleyebilirsiniz. Örneğin, sürüm 5:
- variable: PINNED_API_KEY
secret: myApiKeySecret@5
firebase apphosting:secrets:set
CLI komutuyla gizli anahtar oluşturabilirsiniz.
ve gerekli izinleri eklemeniz istenir. Bu akış size
gizli anahtar referansını apphosting.yaml
öğesine otomatik olarak ekleme seçeneğini kullanabilirsiniz.
Cloud Secret Manager işlevlerinin tamamından yararlanmak için
Cloud Secret Manager konsolu. Bunu yaparsanız
firebase
apphosting:secrets:grantaccess
CLI komutuyla App Hosting arka ucunuzun izinlerini kontrol edin.
Firebase Auth durumunu senkronize et
Firebase Auth kullanan uygulamalar,
kimlik doğrulama durumu, istemci ile sunucu arasında senkronize edildi. Bu özellik,
FirebaseServerApp
bir hizmet çalışanı ile uygulanır. Temel
görev akışı şöyle:
- Hizmet çalışanı uygulama API'yi kullanabilirsiniz.
- Sunucudaki istekten üstbilgileri alın ve bunu bir kimlik doğrulamaya dönüştürün
FirebaseServerApp
olan bir kullanıcı.
Arka uçları yönetme
App Hosting arka ucunun temel yönetimine yönelik komutlar: Firebase KSA'da sağlanmıştır. Biraz işlemleri Firebase konsolunda da mevcuttur. Bu bölümde, proje yöneticisi oluşturma ve yürütme dahil olmak üzere arka uçları silme.
Arka uç oluşturma
App Hosting arka ucu, projenizin veya oyununuzun App Hosting, Web uygulamanızı derleyip çalıştırmak için oluşturur. Proje yöneticileri, Firebase konsolunu kullanarak App Hosting arka uç veya Firebase KSA.
Firebase konsolu: Derleme menüsünden Uygulama Barındırma'yı seçin, ardından Kullanmaya başlayın.
KSA: (Sürüm 3.9 veya sonraki sürümler) Bir arka uç oluşturmak için aşağıdaki komutu çalıştırın
yerel proje dizininizin kök dizininden başvurarak,
proje kimliğini bağımsız değişken olarak kullanabilirsiniz (önizleme için
yalnızca us-central1
bölgesi desteklenir):
firebase apphosting:backends:create --project PROJECT_ID --location us-central1
Hem konsol hem de CLI için arka ucunuza ad atamak ve kur GitHub bağlantısı, ve şu temel dağıtım ayarlarını yapılandırın:
Uygulamanızın kök dizinini ayarlayın (varsayılan olarak
/
)package.json
dosyanız genellikle burada bulunur.
Canlı dalı ayarlayın
Bu, GitHub deponuzun yayındaki URL'yi ekleyin. Genellikle, özellik dallarının veya geliştirmenin dallar birleştirilir.
Otomatik kullanıma sunmaları kabul edin veya reddedin
Otomatik kullanıma sunma işlemleri varsayılan olarak etkindir. Arka uç oluşturma işlemi tamamlandığında, uygulamanızın hemen App Hosting ürününe dağıtılmasını seçebilirsiniz.
Arka uç silin
Bir arka ucu tamamen kaldırmak için önce Firebase KSA'yı, ardından manuel olarak kullanın gösteren kaynakları silmemeye özellikle dikkat ederek, başka arka uçlar veya Firebase projenizin başka yönleri tarafından kullanılabilir.
App Hosting Arka Ucunu silmek için aşağıdaki komutu çalıştırın. Bu işlem, arka ucunuz için tüm alan adlarını devre dışı bırakır ve ilişkili Cloud Run hizmet:
firebase apphosting:backends:delete BACKEND_ID --project PROJECT_ID --location us-central1
(İsteğe bağlı) Artifact Registry için Google Cloud Console sekmesi, "firebaseapphosting-images" içindeki arka ucunuzun görüntüsünü silin.
Cloud Secret Manager'da "apphosting" içeren tüm gizli anahtarları silin gizli adda, özel bu gizli anahtarların başka arka uçlar veya diğer arka uçlar tarafından kullanılmadığından daha fazlasını göz önünde bulundurun.