Uygulama Barındırma arka uçlarını yapılandırma ve yönetme

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şkenler
  • PORT
  • 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:

  1. Hizmet çalışanı uygulama API'yi kullanabilirsiniz.
  2. 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.

  1. 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
    
  2. (İsteğe bağlı) Artifact Registry için Google Cloud Console sekmesi, "firebaseapphosting-images" içindeki arka ucunuzun görüntüsünü silin.

  3. 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.