Aynı kod tabanından dağıtılan ve her biri biraz farklı yapılandırmaya sahip birden fazla ortamın olması yaygındır. Örneğin, hazırlık ortamınıza daha az CPU ve RAM atamak isteyebilirsiniz. Alternatif olarak, üretim ortamınızda en az 1 örneğin etkin ve istekleri sunmaya hazır olduğundan emin olmak isteyebilirsiniz. Ayrıca kullanmak istediğiniz ortama ve kaynaklara bağlı olarak farklı ortam değişkenleri ve gizli anahtarlar belirtmek de isteyebilirsiniz.
Bu kılavuzda, her biri ayrı bir Firebase projesine dağıtılacak bir üretim ve hazırlık ortamının nasıl oluşturulacağı açıklanmaktadır. Aynı ilkeleri uygulayarak farklı türde ortamlara da dağıtabilirsiniz. Ortamlar hakkında daha fazla bilgi edinmek için Ortamlara genel bakış ve Firebase projeleri oluşturmayla ilgili genel en iyi uygulamalar başlıklı makaleleri inceleyin.
Ön koşullar
- Uygulama kodunuz zaten GitHub'da depolanmıştır.
- Ortamlarınızın her biri için zaten ayrı bir proje oluşturdunuz (örneğin,
my-production-firebase-project
vemy-staging-firebase-project
). Üretim Firebase projenizi "üretim" ortam türü ile etiketlediğinizden emin olun. - Her projede, canlı dalın dağıtmak istediğiniz GitHub dalına (
main
gibi) ayarlandığı bir App Hosting arka uç oluşturdunuz. Daha fazla bilgi için App Hosting'ü kullanmaya başlama başlıklı makaleyi inceleyin.
0. adım: apphosting.yaml dosyasında varsayılan bir yapılandırma oluşturun
App Hosting, uygulamanızın çalışma zamanı ayarlarını (CPU, eşzamanlılık, bellek sınırları vb.) ve ortam değişkenlerini yönetmek için apphosting.yaml
adlı bir yapılandırma dosyasını destekler. Cloud Secret Manager ile yönetilen gizli anahtarlara yapılan referansları da desteklediğinden kaynak kontrolüne giriş yapmayı güvenli hale getirir. Daha fazla bilgi için Arka uç yapılandırması başlıklı makaleyi inceleyin.
Başlamak için uygulamanızın kök dizininde bir apphosting.yaml
dosyası oluşturun.
Bu, ortama özgü bir yapılandırma dosyası bulunamadığında kullanılan yedek yapılandırma dosyasıdır. apphosting.yaml
içinde depolanan değerler, tüm ortamlarda kullanılması güvenli olan varsayılan değerler olmalıdır.
Sonraki bölümlerde, belirli ortamlar için apphosting.yaml
'teki varsayılan değerlerin nasıl geçersiz kılınacağı açıklanmaktadır. Bu örnek akış, bir hazırlık ortamı oluşturur.
1. Adım: Ortam adını ayarlayın
Her App Hosting arka ucunda bir ortam adı ayarı vardır. Bu alan, arka ucunuzu ortama özel bir yapılandırma dosyasıyla eşlemek için kullanılır ve herhangi bir zamanda değiştirilebilir. Arka uç başına yalnızca bir ortam adı ayarlayabilirsiniz.
Arka uç ortamınızın adını ayarlamak için:
- Firebase konsolunda, hazırlık projenizi seçin (bu örnekte my-staging-firebase-project).
- Sol gezinme menüsünden App Hosting simgesini seçin.
- Seçtiğiniz arka uçta Kontrol panelini görüntüle'yi tıklayın.
- Ayarlar sekmesinde Dağıtım'ı seçin.
- Ortam adı alanına ortamınızın adını girin. Ortamı istediğiniz gibi adlandırabilirsiniz. Bu örnekte staging kullanılmıştır.
- Kaydet'i tıklayın.
Arka uçunuz için bir App Hosting kullanıma sunma işlemi tetiklendiğinde (git push'ta veya konsol üzerinden manuel olarak), App Hosting, apphosting.yaml
'ye geri dönmeden önce bir apphosting.ENVIRONMENT_NAME.yaml
dosyası olup olmadığını kontrol eder.
2. Adım: Ortamınıza özel apphosting.yaml
dosyanızı oluşturun
Ortamınıza özel yapılandırma için ortama özel geçersiz kılma işlemlerini belirtmek üzere apphosting.ENVIRONMENT_NAME.yaml
adlı bir dosya oluşturun. Bu dosya, varsayılan apphosting.yaml ile aynı biçime sahiptir ve uygulamanızın kök dizininde apphosting.yaml
ile birlikte bulunmalıdır.
Derleme sırasında App Hosting bu iki dosyayı birleştirir. Bu işlemde, temel apphosting.yaml
dosyasına kıyasla ortama özgü YAML dosyasındaki değerlere öncelik verilir.
Bu örnekte, uygulamanın kök dizininde apphosting.staging.yaml
adlı bir dosya oluşturacaksınız:
runConfig:
cpu: 1
memoryMiB: 512
concurrency: 5
env:
- variable: API_URL
value: api.staging.service.com
availability:
- BUILD
- variable: DATABASE_URL
secret: secretStagingDatabaseURL
Aşağıdaki gibi bir apphosting.yaml
'iniz olduğunu varsayalım:
runConfig:
cpu: 3
memoryMiB: 1024
maxInstances: 4
minInstances: 0
concurrency: 100
env:
- variable: API_URL
value: api.service.com
availability:
- BUILD
- RUNTIME
- variable: STORAGE_BUCKET
value: mybucket.appspot.com
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
Cloud Build günlüklerinizde inceleyebileceğiniz birleştirilmiş nihai çıkış şu şekilde görünür:
runConfig:
cpu: 1
memoryMiB: 512
maxInstances: 4
minInstances: 0
concurrency: 5
env:
- variable: API_URL
value: api.staging.service.com
availability:
- BUILD
- variable: STORAGE_BUCKET
value: mybucket.appspot.com
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
- variable: DATABASE_URL
secret: secretStagingDatabaseURL
CPU gibi belirli runConfig
değerlerinin ve çakışan tüm ortam değişkenlerinin üzerine yazıldığını unutmayın.
3. adım: Kod tabanınızı dağıtın
Ortamınıza özel apphosting.ENVIRONMENT_NAME.yaml
dosyasını düzenlemeyi tamamladığınızda dosyanızı GitHub'a gönderin:
$ git add apphosting.<ENVIRONMENT_NAME>.yaml
$ git commit -m "Added environment specific yaml file"
$ git push
Bu ortam adıyla etiketlenen tüm arka uçlar, ilgili YAML dosyasında belirttiğiniz özel geçersiz kılma değerlerini kullanır ve bir değer bulunmadığında apphosting.yaml
değerine geri döner. İlişkili ortam adı olmayan arka uçlar için apphosting.yaml dosyasını kullanmaya devam edebilirsiniz.
Sonraki adımlar
- Daha ayrıntılı bilgi: Barındırılan bir uygulamayı Firebase Authentication ve Google AI özellikleriyle entegre eden bir Firebase kod laboratuvarını inceleyin: Next.js | Angular
- Özel bir alan bağlayın.
- Arka ucunuzu yapılandırın.
- Dağıtım işlemlerini, site kullanımını ve günlükleri izleyin.