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

App Hosting, kullanım kolaylığı ve düşük bakım ihtiyacı 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önetip yapılandırmanız için araçlar sunar. Bu kılavuzda söz konusu araçlar ve süreçler açıklanmaktadır.

Ortam değişkenlerini ve gizli anahtarları ayarlama ve güncelleme

App Hosting, hassas olmayan yapılandırma değerleri için ortam değişkenlerini, API anahtarları, veritabanı kimlik bilgileri ve hizmet jetonları gibi hassas parametreler için ise gizli anahtarları kullanmanıza olanak tanır.

  • Standart ortam değişkenleri: Hassas olmayan, düz metin yapılandırmaları (ör. herkese açık API URL'leri, özellik bayrakları veya derleme hedefleri) için kullanılır. Değerler tüm proje üyeleri tarafından görülebilir.
  • Gizli anahtarlar: Hassas parametreler (ör. OAuth istemci gizli anahtarları, API jetonları veya veritabanı şifreleri) için kullanılır. Gizli anahtarlar Cloud Secret Manager tarafından desteklenir. Gizli değerler korunur ve Firebase konsolunda hiçbir zaman düz metin olarak gösterilmez. Bunun yerine konsol, gizli değerleri doğrudan Cloud Secret Manager'da görüntülemek ve yönetmek için derin bağlantılar sağlar.

Ortam parametrelerini iki tamamlayıcı yaklaşım kullanarak tanımlayabilir ve yönetebilirsiniz:

  • Firebase konsolu: İlk arka uç oluşturma sırasında veya arka uç ayarlarında dağıtım sonrasında gizli anahtarları ya da değişkenleri dinamik olarak hızlıca ekleyin, düzenleyin ve ekleyin.
  • Önce kod (apphosting.yaml): Sürüm kontrollü dağıtımlar için deponuzun yapılandırma dosyasında ortam değişkenlerini ve gizli referansları tanımlayın veya apphosting.<env>.yaml kullanarak farklı ortamlar için farklı değerler ayarlayın.

Firebase konsolu

Ortam değişkenleri eklemek için Firebase konsolu iletişim kutusunun ekran görüntüsü

apphosting.yaml

env:
  - variable: STORAGE_BUCKET
    value: mybucket.firebasestorage.app
  - variable: API_KEY
    secret: myApiKeySecret

Firebase konsolunda değişkenleri ve gizli anahtarları yönetme

Ortam değişkenlerini ve gizli anahtarları, arka uç oluştururken Firebase konsolunda veya dilediğiniz zaman arka uç ayarlarınızdan yapılandırabilirsiniz. Yayınlanmadan kaydedilen değişiklikler bir sonraki kullanıma sunma işleminizde geçerli olur ve mevcut işlemi etkilemez.

Arka uç oluşturma sırasında değişkenleri ve gizli anahtarları ayarlama

Firebase konsolunda yeni bir App Hosting arka ucu oluştururken kurulum sihirbazının Arka ucunuzu yapılandırın adımında standart ortam değişkenlerini ve gizli anahtarları yapılandırabilirsiniz:

  1. Firebase konsolunda Hosting & Serverless > App Hosting'e gidin ve Create backend'i (Arka uç oluştur) tıklayın.
  2. Birincil bölgenizi ve kod deponuzu seçmek için ilk sihirbaz adımlarını tamamlayın.
  3. Arka ucunuzu yapılandırın bölümünde, standart değişkenler ekleyip gizli anahtarlar ekleyebileceğiniz Ortam değişkenleri ve Gizli anahtarlar için daraltılabilir kartları bulun.
  4. Arka uç oluşturma sihirbazını tamamlayın ve Finish & deploy'u (Bitir ve dağıt) tıklayın.

Arka uç ayarlarında değişkenleri ve gizli anahtarları yönetme

Etkin arka uçlar için ortam değişkenlerini ve gizli anahtarları, arka uç ayarları kontrol panelinden görüntüleyebilir, ekleyebilir, düzenleyebilir veya silebilirsiniz:

  1. Firebase konsolunda App Hosting arka ucunuzu seçip Ayarlar > Ortam'ı açın.
  2. Ortam değişkenleri tablosundaki mevcut yapılandırmaları inceleyin:
    • Standart değişkenler: Değerler, kopyalanabilir kod bloklarında düz metin olarak gösterilir.
    • Gizli anahtarlar: Gizli anahtar adını gösteren tıklanabilir bir bağlantı olarak gösterilir (Google Cloud konsolunda Cloud Secret Manager'ı açar). Hedeflenen sürümü de (ör. latest veya 2 gibi belirli bir sürüm numarası) yanında yer alır.
  3. Değişken veya gizli anahtar eklemek için:
    1. Yeni ekle'yi tıklayın.
    2. 1. adım: Tür seçin bölümünde Standart ortam değişkeni'ni (tüm proje üyeleri tarafından görülebilen hassas olmayan veriler için) veya Gizli'yi (API anahtarları ve kısıtlı erişime sahip hassas kimlik bilgileri için) seçip Sonraki'yi tıklayın.
    3. 2. adım: Ayarları yapılandırın bölümünde Anahtar adını ve düz metin Değer'i (standart değişkenler için) girin veya Gizli kimliğini ve Sürüm'ü (gizli anahtarlar için) seçin.
    4. Aşağıdaki seçeneklerden birini kullanarak değişikliklerinizi kaydedin:
      • Kaydet ve dağıt: Arka uç yapılandırmasını hemen günceller ve yeni bir derleme ile kullanıma sunma işlemini tetikler.
      • Yalnızca kaydet (Kaydet ve dağıt'ın yanındaki açılır ok): Yapılandırma değişikliklerini hemen bir kullanıma sunma işlemi tetiklemeden kaydeder. Güncellenen ayarlar bir sonraki dağıtımınızda geçerli olur.
  4. Mevcut bir girişi düzenlemek veya silmek için satırın sonundaki Diğer işlemler (...) menüsünü tıklayın:
    • Anahtarı, değeri, gizli eşlemeyi veya sürümü değiştirmek için Düzenle'yi seçin ve ardından Kaydet ve dağıt ya da Yalnızca kaydet'i tıklayın.
    • Sil'i seçin ve iletişim kutusunda kaldırma işlemini onaylayın.

dotenv dosyadan değişkenleri aktarma

Next.js uygulamalarında, ortam değişkenlerini içeren dotenv dosyaları App Hosting ile çalışır.

Arka uç oluştururken veya güncellerken dotenv dosyanızdaki ortam değişkenlerini Firebase konsoluna aktarabilirsiniz. Bunun için dotenv dosyasının tüm içeriğini kopyalayıp Ayarlar > Ortam bölümündeki Yeni ekle formunda bulunan ilk Anahtar alanına yapıştırın.

Bu şekilde kopyalanan tüm ortam değişkenleri, giriş standart KEY=value biçimlendirmesini kullandığı sürece her birini ayrı ayrı girmeye gerek kalmadan otomatik olarak forma biçimlendirilir:

KEY1=value1
KEY2=value2
KEY3=value3

Herhangi bir çerçeveyle karmaşık veya ayrıntılı ortam değişkeni kontrolü için apphosting.yaml kullanmanızı öneririz.

apphosting.yaml uygulamasında değişkenleri ve gizli anahtarları yönetme

Kod öncelikli iş akışları için proje deponuzun apphosting.yaml yapılandırma dosyasındaki env: anahtarının altında standart ortam değişkenlerini ve gizli referansları tanımlayın (apphosting.yaml oluşturma ve düzenleme bölümüne bakın).

env:
  # Standard environment variables
  - variable: PUBLIC_API_URL
    value: https://api.example.com
    availability:
      - BUILD
      - RUNTIME
  - variable: FEATURE_FLAG_NEW_UI
    value: "true"

  # Secret references backed by Cloud Secret Manager
  - variable: DATABASE_URL
    secret: projects/PROJECT_ID/secrets/db-connection-string/versions/latest
  - variable: GEMINI_API_KEY
    secret: myGeminiApiKeySecret@1

env: içindeki her giriş aşağıdaki alanları destekler:

  • variable: Uygulama sürecinize sunulan ortam değişkeni adı.
  • value: Düz metin dize değeri (standart ortam değişkenleri için).
  • secret: Cloud Secret Manager gizli anahtar referansı (gizli anahtarlar için). Kısa gizli anahtar adını (ör. myGeminiApiKeySecret veya sabitlenmiş myGeminiApiKeySecret@1) ya da tam kaynak yolunu (projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION) kullanabilirsiniz. Daha fazla bilgi için Gizli parametreleri depolama ve bunlara erişme başlıklı makaleyi inceleyin.
  • availability: Değişkenin veya gizli anahtarın BUILD aşamasında, RUNTIME aşamasında veya her ikisinde de erişilebilir olup olmayacağını kontrol eder.

Değişken kullanılabilirliğini ayarlama

Firebase konsolunda yapılandırılan ortam değişkenleri ve gizli anahtarlar hem derleme hem de çalışma zamanında kullanılabilir. availability özelliğini kullanarak kapsamı daraltmadığınız sürece bu, apphosting.yaml içinde tanımlanan girişler için de varsayılan davranıştır. apphosting.yaml içinde (ancak konsolda değil), bir değişkeni veya gizli anahtarı yalnızca derleme ortamıyla (BUILD) ya da yalnızca çalışma zamanı ortamıyla (RUNTIME) kısıtlayabilirsiniz.

Uygulama kodundaki değişkenlere ve gizli anahtarlara erişme

Firebase konsolunda veya apphosting.yaml ile yapılandırılmış olmalarından bağımsız olarak ortam değişkenleri ve gizli anahtarlar, uygulama çalışma zamanınıza standart ortam değişkenleri (ör. Node.js'de process.env) olarak gösterilir.

// Accessing a standard environment variable
const apiUrl = process.env.PUBLIC_API_URL;

// Accessing a secret
const apiKey = process.env.GEMINI_API_KEY;

export async function fetchData() {
  const response = await fetch(`${apiUrl}/data`, {
    headers: {
      'Authorization': `Bearer ${apiKey}`
    }
  });
  return response.json();
}
  • Sunucu tarafı erişim: Tüm ortam değişkenlerine ve gizli anahtarlara sunucu tarafı yürütme bağlamlarında (ör. Next.js sunucu bileşenleri, API rotaları veya Node.js arka uç işleyicileri) güvenli bir şekilde erişilebilir.
  • İstemci tarafı görünürlük: Next.js gibi çerçevelerde standart ortam değişkenlerini tarayıcıya göstermek için değişken anahtarının çerçeve kurallarına uyduğundan (ör. NEXT_PUBLIC_ ile başladığından) emin olun.

    env:
      - variable: NEXT_PUBLIC_STORAGE_BUCKET
        value: mybucket.firebasestorage.app
        availability:
          - BUILD
          - RUNTIME
    

Değişken hiyerarşisi

Firebase App Hosting, ortam değişkenlerinizi ve gizli anahtarlarınızı kaynaklarına göre öncelik sırasına göre uygular. Firebase konsolunda yapılan yapılandırmalar, apphosting.yaml ve dotenv dosyalarında belirtilen parametreleri her zaman geçersiz kılar. Hem apphosting.yaml hem de Firebase konsolunda aynı ada sahip bir ortam değişkeni veya gizli anahtar varsa derleme ve çalışma zamanı yürütme sırasında konsol değeri öncelikli olur.

Öncelik sırasının tamamı şu şekildedir:

  1. Firebase konsolu: Konsolda ayarlanan değişkenler ve gizli anahtarlar
  2. apphosting.<env>.yaml: apphosting.staging.yaml gibi ortama özgü bir YAML dosyasında belirtilen değişkenler ve gizli anahtarlar (Birden fazla ortam dağıtma bölümüne bakın)
  3. apphosting.yaml: apphosting.yaml dosyasında belirtilen değişkenler ve gizli anahtarlar
  4. Firebase sistemi: FIREBASE_CONFIG veya FIREBASE_WEBAPP_CONFIG değerlerini içeren, Firebase tarafından ayarlanan değişkenler ve SSR uygulamaları için ana makine adlarını ve bağlantı noktalarını ayarlayan ortam değişkenleri (bundle.yaml içindeki App Hosting bağdaştırıcıları tarafından ayarlanır)

Otomatik olarak doldurulan ortam değişkenleri

App Hosting tarafından otomatik olarak doldurulan ortam değişkenleri vardır. Bunlar arasında Google Cloud tarafından doldurulanlar ve kurulum sırasında arka uçta appId ayarlandığında Firebase'e özgü ortam değişkenleri yer alır:

  • FIREBASE_CONFIG: (Derleme ve çalışma zamanı ortamlarında kullanılabilir) Aşağıdaki Firebase projesi yapılandırma bilgilerini sağlar:

    {
      "databaseURL": "https://DATABASE_NAME.firebaseio.com",
      "storageBucket": "PROJECT_ID.firebasestorage.app",
      "projectId": "PROJECT_ID"
    }
    

    Bu yapılandırma, Firebase Admin SDK'yı bağımsız değişken olmadan başlattığınızda otomatik olarak uygulanır.

  • FIREBASE_WEBAPP_CONFIG: (Yalnızca derleme ortamında kullanılabilir) Aşağıdaki Firebase projesi yapılandırma bilgilerini sağlar:

    {
      "apiKey": "API_KEY",
      "appId": "APP_ID",
      "authDomain": "AUTH_DOMAIN.firebaseapp.com",
      "databaseURL": "https://DATABASE_NAME.firebaseio.com",
      "messagingSenderId": "PROJECT_NUMBER",
      "projectId": "PROJECT_ID",
      "storageBucket": "PROJECT_ID.firebasestorage.app"
    }</span>
    

    Firebase JS SDK'sı, derleme sırasında postinstall komut dosyasında bu FIREBASE_WEBAPP_CONFIG ortam değişkenini otomatik olarak kontrol eder. Böylece istemci SDK'sını herhangi bir bağımsız değişken olmadan da başlatabilirsiniz.

SDK'ları başlatmak için bu ortam değişkenlerinin nasıl kullanılacağı hakkında daha fazla bilgi edinmek isterseniz Firebase Admin SDK'yı ve web SDK'larını otomatik olarak başlatma başlıklı makaleyi inceleyin.

Gerçek Firebase yapılandırmanızdaki değerlerin, projenizde sağladığınız belirli kaynaklara karşılık geleceğini unutmayın.

Değişken hiyerarşisi

Firebase App Hosting, değişkenlerinizi kaynaklarına göre bir öncelik sırasına göre uygular. Örneğin, Firebase konsolunda ayarlanan değerler her zaman apphosting.yaml ve dotenv dosyalarında ayarlanan değerleri geçersiz kılar veya bunlara göre öncelikli olur.

Öncelik sırasının tamamı şu şekildedir:

  1. Firebase konsolu: Konsolda ayarlanan değişkenler
  2. apphosting.<env>.yaml: apphosting.staging.yaml gibi ortama özgü bir YAML dosyasında belirtilen değişkenler (Birden fazla ortam dağıtma bölümüne bakın)
  3. apphosting.yaml → apphosting.yaml dosyasında belirtilen değişkenler
  4. Firebase sistemi: firebase_config json veya firebase_webapp_config değerlerini içeren, Firebase tarafından ayarlanan değişkenler ve SSR uygulamaları için ana makine adlarını ve bağlantı noktalarını ayarlayan ortam değişkenleri (bundle.yaml içindeki App Hosting bağdaştırıcıları tarafından ayarlanır)

Ayrılmış adlar ve sınırlamalar

Cloud Run container çalışma zamanı sözleşmesinde tanımlanan ortam değişkenleri ayrılmıştır ve ayarlanamaz.

Ortam tarafından sağlanan ortam değişkenleri, otomatik olarak ayarlananlar dışında, gelecekteki çalışma zamanı sürümlerinde değişebilir. En iyi uygulama olarak, açıkça ayarlamadığınız ortam değişkenlerine bağlı kalmamanızı veya bunları değiştirmemenizi ve çakışmaları önlemek için ortam değişkenlerine benzersiz bir anahtarla ön ek eklemenizi öneririz.

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:

  • Boş dizeler ("")
  • "=" içeren anahtarlar
  • X_FIREBASE_, X_GOOGLE_ veya CLOUD_RUN_ ile başlayan anahtarlar
  • PORT
  • K_SERVICE
  • K_REVISION
  • K_CONFIGURATION
  • Yinelenen Anahtarlar

apphosting.yaml oluşturma ve düzenleme

Gizli anahtarlar 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ı destekler. Bu sayede, kaynak denetimine güvenli bir şekilde giriş yapılabilir.

apphosting.yaml oluşturmak için aşağıdaki komutu çalıştırın:

firebase init apphosting

Bu komut, örnek (yorumlanmış) yapılandırmayla temel bir başlangıç apphosting.yaml dosyası oluşturur. Düzenleme işleminden sonra tipik bir apphosting.yaml dosyası aşağıdaki gibi görünebilir. Bu dosyada arka ucun Cloud Run hizmetiyle ilgili ayarlar, bazı ortam değişkenleri ve Cloud Secret Manager tarafından yönetilen gizli anahtarlara yönelik bazı referanslar bulunur:

# 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 ayarlar hakkında daha fazla bilgi ve bağlam sunulmaktadır.

Cloud Run hizmet ayarlarını yapılandırma

apphosting.yaml ayarlarıyla Cloud Run hizmetinizin nasıl temel hazırlık yapacağını yapılandırabilirsiniz. Cloud Run hizmeti için kullanılabilen ayarlar runConfig nesnesinde sağlanır:

cpu, memoryMiB ve concurrency'nin birbirine bağlı sınırları olduğunu unutmayın (örneğin, daha yüksek bellek yapılandırmaları daha yüksek minimum CPU sınırları gerektirir ve kesirli CPU'lar 1 eşzamanlılık gerektirir). Geçerli aralıklar ve gerekli kombinasyonlar için CPU sınırları ve bellek sınırları ile ilgili Cloud Run belgelerine bakın.

Derleme ve çalıştırma komut dosyalarını geçersiz kılma

App Hosting, algılanan çerçeveye göre uygulamanızın derleme ve başlatma komutunu tahmin eder. Özel bir derleme veya başlatma komutu kullanmak istiyorsanız apphosting.yaml dosyasında App Hosting'un varsayılanlarını geçersiz kılabilirsiniz.

scripts:
  buildCommand: next build --no-lint
  runCommand: node dist/index.js

Derleme komutunu geçersiz kılma, diğer tüm derleme komutlarından önceliklidir ve uygulamanızı çerçeve bağdaştırıcılarından çıkarır ve App Hosting tarafından sağlanan çerçeveye özgü optimizasyonları devre dışı bırakır. Uygulamanızın özellikleri adaptörler tarafından iyi desteklenmediğinde kullanılması en iyisidir. Derleme komutunuzu değiştirmek ancak sağlanan bağdaştırıcıları kullanmaya devam etmek istiyorsanız derleme komut dosyanızı package.json içinde ayarlayın. Bunun için App Hosting çerçeve bağdaştırıcıları bölümündeki talimatları uygulayın.

Uygulamanızı başlatmak için App Hosting tarafından tahmin edilen komuttan farklı bir komut kullanmak istediğinizde çalıştırma komutunu geçersiz kılma özelliğini kullanın.

Derleme çıkışını yapılandırma

App Hosting, çerçeve tarafından belirtilen kullanılmayan çıkış dosyalarını silerek uygulama dağıtımlarınızı varsayılan olarak optimize eder. Uygulamanızın dağıtım boyutunu daha da optimize etmek veya varsayılan optimizasyonları yok saymak istiyorsanız apphosting.yaml içinde bunu geçersiz kılabilirsiniz.

outputFiles:
  serverApp:
    include: [dist, server.js]

include parametresi, uygulamanızı dağıtmak için gerekli olan, uygulama kök diziniyle ilişkili dizinlerin ve dosyaların listesini alır. Tüm dosyaların saklandığından emin olmak istiyorsanız include parametresini [.] olarak ayarlayın. Böylece tüm dosyalar dağıtılır.

Gizli parametreleri depolama ve bunlara erişme

API anahtarları gibi hassas bilgiler gizli anahtar olarak depolanmalıdır. Hassas bilgileri kaynak denetimine eklememek için Firebase konsolunda gizli anahtarları arka ucunuza ekleyebilir veya apphosting.yaml içinde referans verebilirsiniz.

secret türündeki parametreler, değeri Cloud Secret Manager'da depolanan dize parametrelerini temsil eder. Gizli parametreler, değeri doğrudan türetmek yerine Cloud Secret Manager'da mevcut olup olmadığını kontrol eder ve değerleri kullanıma sunma sırasında yükler.

env:
  - variable: API_KEY
    secret: myApiKeySecret

Cloud Secret Manager'daki gizli anahtarların birden fazla sürümü olabilir. Varsayılan olarak, canlı arka ucunuzun kullanabileceği gizli parametrenin değeri, arka ucun oluşturulduğu sırada gizli parametrenin mevcut 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 Firebase konsolunda veya apphosting.yaml'da belirli sürümleri sabitleyebilirsiniz. Örneğin, apphosting.yaml içinde 5. sürüme sabitlemek için:

env:
  - variable: PINNED_API_KEY
    secret: myApiKeySecret@5

Firebase CLI komutuyla gizli anahtarlar oluşturabilirsiniz firebase apphosting:secrets:set. Gerekli izinleri eklemeniz istenir. Bu akış, gizli referansı apphosting.yaml dosyasına otomatik olarak ekleme seçeneği sunar.

Cloud Secret Manager'a erişim izni verme

App Hosting hizmetinin derleme ve çalışma zamanı sunumları sırasında gizli değerleri getirmesi için App Hosting arka uç hizmet hesabının Cloud Secret Manager'a erişim izni olmalıdır.

Gizli anahtarları firebase apphosting:secrets:set yerine Cloud Secret Manager konsolu veya gcloud CLI kullanarak oluşturuyorsanız Firebase CLI ile arka ucunuza erişim izni verin:

firebase apphosting:secrets:grantaccess SECRET_NAME

Alternatif olarak, gcloud CLI'yı kullanarak App Hosting hizmet aracısına (service-PROJECT_NUMBER@gcp-sa-apphosting.iam.gserviceaccount.com) veya arka ucunuzun çalışma zamanı hizmet hesabına Secret Manager Secret Accessor rolünü (roles/secretmanager.secretAccessor) verebilirsiniz:

gcloud secrets add-iam-policy-binding SECRET_NAME \
    --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-apphosting.iam.gserviceaccount.com" \
    --role="roles/secretmanager.secretAccessor"

Konsol erişimi ve role dayalı izinler

Firebase konsolu, kullanıcı IAM izinlerine göre ortam ve Secret Manager özelliklerini dinamik olarak kısıtlar:

  • Görüntüleyici rolü: Salt okuma proje izinlerine sahip kullanıcılar mevcut yapılandırma ayarlarını görüntüleyebilir ancak değişiklik yapamaz.
    • Arka uç oluşturma sırasında Arka uç oluştur düğmesi devre dışı bırakılır.
    • Arka uçta Ayarlar > Ortam bölümünde Yeni ekle düğmesi devre dışı bırakılır ve Diğer işlemler (...) satır menüleri gizlenir.
  • Eksik Secret Manager izinleri: Cloud Secret Manager ile etkileşim kurmak için IAM izinlerine sahip olmayan kullanıcılar, konsolda bir uyarı mesajı görür (Gizli anahtar ekleme izni için proje sahibine başvurun):
    • Arka uç oluşturma sırasında Gizli anahtarlar kartı devre dışı bırakılır.
    • Arka uçta Ayarlar > Ortam bölümünde, Yeni ekle'yi tıkladığınızda Gizli seçeneği devre dışı bırakılır ve mevcut gizli girişlerde Diğer işlemler (...) satır menüsündeki seçeneklerden bazıları gizlenir.

VPC erişimini yapılandırma

App Hosting arka ucunuz bir Sanal Özel Bulut (VPC) ağına bağlanabilir. Daha fazla bilgi ve örnek için Firebase App Hosting'i bir VPC ağına bağlama başlıklı makaleyi inceleyin.

Erişimi yapılandırmak için apphosting.yaml dosyanızdaki vpcAccess eşlemesini kullanın. Tam nitelikli bir ağ/bağlayıcı adı veya kimlik kullanın. Kimliklerin kullanılması, farklı bağlayıcılar/ağlar içeren hazırlık ve üretim ortamları arasında taşınabilirliği sağlar.

Doğrudan VPC çıkış yapılandırması (apphosting.yaml):

runConfig:
  vpcAccess:
    egress: PRIVATE_RANGES_ONLY # Default value
    networkInterfaces:
      # Specify at least one of network and/or subnetwork
      - network: my-network-id
        subnetwork: my-subnetwork-id

Sunucusuz Bağlayıcı Yapılandırması (apphosting.yaml):

runConfig:
  vpcAccess:
    egress: ALL_TRAFFIC
    connector: connector-id

Arka uçları yönetme

App Hosting arka uçlarının temel yönetimi için komutlar, Firebase konsolunda ve Firebase CLI'da sağlanır. Bu bölümde, arka uç oluşturma ve silme gibi daha yaygın yönetim görevlerinden bazıları açıklanmaktadır.

Arka uç oluşturma

App Hosting arka ucu, web uygulamanızı oluşturmak ve çalıştırmak için App Hosting tarafından oluşturulan yönetilen kaynakların koleksiyonudur.

Firebase konsolu: Hosting & Serverless > App Hosting'e gidin ve Create backend'i (Arka uç oluştur) tıklayın (Firebase projenizdeki ilk arka uçsa Get started'ı [Başlayın] tıklayın).

Firebase CLI: (v13.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 ve proje kimliğinizi bağımsız değişken olarak sağlayın:

firebase apphosting:backends:create --project PROJECT_ID

Konsol veya CLI için talimatları uygulayarak bir bölge seçin, GitHub bağlantısı oluşturun 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ı ayarlama

    Bu, GitHub deponuzun canlı URL'nize dağıtılan dalıdır. Genellikle özellik dallarının veya geliştirme dallarının birleştirildiği daldır.

  • Otomatik kullanıma sunma işlemlerini kabul etme veya reddetme

    Otomatik kullanıma sunma varsayılan olarak etkindir. Arka uç oluşturma işlemi tamamlandığında uygulamanızın hemen App Hosting ortamına dağıtılmasını seçebilirsiniz.

  • Arka ucunuza bir ad atayın.

  • Çalışma zamanı ortamınızı seçin. Varsayılan olarak, önerilen en yeni Node.js sürümü sizin için önceden seçilir.

    • Otomatik Temel Resim Güncellemeleri'ni (ABIU) yapılandırın. ABIU varsayılan olarak etkindir ve temel ortamınıza güvenlik yamalarını otomatik olarak uygular. Çalışma zamanınız için "Belirtilmedi"yi seçerek ABIU'yu devre dışı bırakabilirsiniz.

Arka uç silin

Bir arka ucu tamamen kaldırmak için önce Firebase konsolunu veya Firebase CLI'yı kullanarak silin, ardından ilgili öğeleri manuel olarak kaldırın. Bu sırada, diğer arka uçlar veya Firebase projenizin diğer bölümleri tarafından kullanılabilecek kaynakları silmemeye dikkat edin.

Firebase konsolu: Ayarlar menüsünden Arka ucu sil'i seçin.

Firebase CLI: (v13.15.4 veya sonraki sürümler)

  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 alanları devre dışı bırakır ve ilişkili Cloud Run hizmetini siler:

    firebase apphosting:backends:delete BACKEND_ID --project PROJECT_ID
    
  2. (İsteğe bağlı) Artifact Registry için Google Cloud konsol sekmesinde, "firebaseapphosting-images" bölümünde arka ucunuzun resmini silin.

  3. Cloud Secret Manager'da, gizli anahtar adında"apphosting" ifadesi bulunan tüm gizli anahtarları silin. Bu gizli anahtarların Firebase projenizin diğer arka uçları veya diğer yönleri tarafından kullanılmadığından emin olun.