Aynı kod tabanından dağıtılan ve her biri biraz farklı yapılandırmaya sahip birden fazla ortam olması yaygın bir durumdur. Örneğin, hazırlama ortamınıza daha az CPU ve RAM atamak isteyebilirsiniz veya üretim ortamınızın en az 1 örneği etkin ve isteklere hizmet vermeye hazır tuttuğundan emin olmak isteyebilirsiniz. Kullanmak istediğiniz ortama ve kaynaklara bağlı olarak farklı ortam değişkenleri ve sırlar da belirtebilirsiniz.
Bu kılavuzda, her biri ayrı bir Firebase projesine olmak üzere üretim ve hazırlık ortamının nasıl dağıtılacağı açıklanmaktadır. Aynı ilkeleri uygulayarak diğer farklı türdeki ortamlara da dağıtım yapabilirsiniz. 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 depolanıyor.
- Ortamlarınızın her biri için (ör.
my-production-firebase-project
vemy-staging-firebase-project
) ayrı bir proje oluşturmuş olmanız gerekir. Üretim Firebase projenizi "üretim" ortam türüyle etiketlediğinizden emin olun. - Her projede, canlı dalı dağıtmak istediğiniz GitHub dalına (ör.
main
) ayarlanmış bir App Hosting arka ucu oluşturdunuz. Daha fazla bilgi için App Hosting ile çalışmaya başlama başlıklı makaleye bakın.
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. Ayrıca, Cloud Secret Manager ile yönetilen gizli anahtarlara yapılan referansları da destekler. Bu sayede, kaynak kontrolüne güvenli bir şekilde dahil edilebilir. Daha fazla bilgi için Arka ucu yapılandırma başlıklı makaleye bakın.
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 güvenle kullanılabilecek varsayılan değerler olmalıdır.
Sonraki bölümlerde, belirli ortamlar için apphosting.yaml
'daki varsayılan değerlerin nasıl geçersiz kılınacağı açıklanmaktadır. Bu örnek akış, bir hazırlama ortamı oluşturur.
1. adım: Ortam adını ayarlayın
Her App Hosting arka ucunun bir Ortam adı ayarı vardır. Bu alan, arka uçunuzu ortama özgü bir yapılandırma dosyasıyla eşlemek için kullanılır ve istediğiniz zaman 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ırlama 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öster'i tıklayın.
- Ayarlar sekmesinde Ortam'ı seçin.
- Ortam adı bölümüne 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ç için bir App Hosting dağıtımı tetiklendiğinde (git push ile veya konsol üzerinden manuel olarak), App Hosting, apphosting.yaml
'ye geri dönmeden önce apphosting.ENVIRONMENT_NAME.yaml
dosyasını kontrol eder.
2. adım: Ortama özgü apphosting.yaml
dosyanızı oluşturun
Ortama özel yapılandırmanız için, ortama özel geçersiz kılmaları belirtmek üzere apphosting.ENVIRONMENT_NAME.yaml
adlı bir dosya oluşturun. Bu dosya, varsayılan apphosting.yaml ile aynı biçime sahiptir ve apphosting.yaml
ile birlikte uygulamanızın kök dizininde bulunmalıdır.
Derleme sırasında App Hosting, bu iki dosyayı birleştirir. Ortama özgü YAML dosyasındaki değerlere, temel apphosting.yaml
dosyasındaki değerlere göre ö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
Şu şekilde bir apphosting.yaml
'nız 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.firebasestorage.app
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
Cloud Build günlüklerinizde inceleyebileceğiniz son birleştirilmiş çı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.firebasestorage.app
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
- variable: DATABASE_URL
secret: secretStagingDatabaseURL
CPU gibi belirli runConfig
değerlerinin ve çakışan ortam değişkenlerinin üzerine yazıldığını unutmayın.
3. adım: Kod tabanınızı dağıtın
Ortama özgü apphosting.ENVIRONMENT_NAME.yaml
dosyanızı düzenlemeyi tamamladıktan sonra 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, karşılık gelen YAML dosyasında belirttiğiniz belirli geçersiz kılma değerlerini kullanır ve bir değer bulunamadığı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 Yapay Zeka özellikleriyle entegre eden bir Firebase codelab'ini inceleyin: Next.js | Angular
- Özel alan bağlayın.
- Arka ucunuzu yapılandırın.
- Yayınları, site kullanımını ve günlükleri izleyin.