Uzantınızda parametreleri ayarlayın ve kullanın

Parametreler, kullanıcının yüklü her bir uzantı örneğini özelleştirdiği mekanizmadır. Parametreler bir uzantının ortam değişkenleri gibidir. Parametre değerleri otomatik olarak doldurulabilir (kurulumdan sonra Firebase tarafından sağlanır) veya kullanıcı tarafından yapılandırılabilir (kurulum sırasında kullanıcı tarafından belirlenir).

Bu parametreler, uzantınızın işlev kaynak kodunda, extension.yaml dosyanızda ve POSTINSTALL.md dosyanızda referans olarak kullanmanız için mevcuttur. PARAMETER_NAME adlı bir parametreye nasıl başvurulacağını açıklayan söz dizimi aşağıda verilmiştir:

  • İşlev kaynak kodunuzda params modülünü (örneğin, params.defineInt(" PARAMETER_NAME ") ) veya process.env. PARAMETER_NAME .

  • extension.yaml ve POSTINSTALL.md içinde ${param: PARAMETER_NAME } kullanın.

    Kurulumdan sonra Firebase konsolu POSTINSTALL.md dosyasının içeriğini görüntüler ve tüm parametre referanslarını kurulu örneğin gerçek değerleriyle doldurur.

Otomatik olarak doldurulan parametreler

Bir uzantının yüklü her örneği, Firebase tarafından sağlanan çeşitli varsayılan otomatik doldurulan parametrelere otomatik olarak erişime sahiptir (aşağıdaki tabloya bakın). Bu parametre değerleri ya Firebase projesinin varsayılan değerleridir ( varsayılan Depolama grubu gibi) ya da uzantıya özeldir (uzantının örnek kimliği gibi).

Otomatik olarak doldurulan tüm parametre değerleri değişmezdir. Proje oluşturma veya genişletme kurulumu sırasında ayarlanırlar.

Firebase, uzantıya ilişkin bu parametre değerlerini otomatik olarak doldursa da, Firebase, kurulum sırasında ilişkili ürünlerin kullanıcı için otomatik olarak temel hazırlığını yapmaz . Uzantıyı yükleyen kullanıcının, kurulumdan önce projesinde ilgili ve geçerli ürünü/ürünleri etkinleştirmesi gerekir. Örneğin, uzantınız Cloud Firestore'u içeriyorsa kullanıcının projesinde Cloud Firestore'u kurması gerekir. Kullanıcılarınızı bu gereksinimler hakkında PREINSTALL.md dosyasında bilgilendirmenizi öneririz.

Otomatik olarak doldurulan parametre referansı Tanım Parametre değeri (Firebase tarafından sağlanır)
Firebase projesinden varsayılan değerlere sahip parametreler
PROJECT_ID Uzantının yüklü olduğu Firebase projesinin benzersiz tanımlayıcısı

Genelleştirilmiş format:
project-id

Örnek değer:
project-123

DATABASE_URL Firebase projesinin varsayılan Gerçek Zamanlı Veritabanı örneği URL'si

Genelleştirilmiş format:
https:// project-id -default-rtdb.firebaseio.com
(ABD örnekleri)
veya
https:// project-id -default-rtdb. region-code .firebasedatabase.app
(ABD dışı örnekler)

Örnek değer:
https://project-123-default-rtdb.firebaseio.com

DATABASE_INSTANCE

Firebase projesinin varsayılan Gerçek Zamanlı Veritabanı örneği adı

Genellikle bu değer proje kimliğiyle aynıdır veya -default-rtdb ile biter.

Genelleştirilmiş format:
project-id

Örnek değer:
project-123

STORAGE_BUCKET Firebase projesinin varsayılan Cloud Storage paketi adı

Genelleştirilmiş format:
project-id .appspot.com

Örnek değer:
project-123.appspot.com

Uzantı kurulumundan varsayılan değere sahip parametre
EXT_INSTANCE_ID

Yüklü uzantı örneğinin benzersiz tanımlayıcısı

Bu değer, extension.yaml dosyasında belirtilen name alanından oluşturulur.

Yüklenen 1. örnek için genelleştirilmiş format (Firebase tarafından otomatik olarak atanır; kurulum sırasında kullanıcı tarafından değiştirilemez ):
name-from-extension.yaml

Örnek değer:
my-awesome-extension


2. yüklenen örnek ve üzeri için genelleştirilmiş format (Firebase tarafından otomatik olarak atanır; kurulum sırasında kullanıcı tarafından değiştirilebilir ):
name-from-extension.yaml - 4-digit-alphanumeric-hash

Örnek değer:
my-awesome-extension-6m31

Kullanıcı tarafından yapılandırılan parametreler

Kullanıcının bir uzantının yüklü her örneğini özelleştirmesini sağlamak için kullanıcıdan yükleme sırasında parametre değerlerini belirtmesini isteyebilirsiniz. Bu değerleri talep etmek için extension.yaml dosyanızın params bölümünde istemleri ayarlarsınız.

Burada örnek bir params bölümü ve ardından mevcut tüm parametre alanlarını açıklayan bir tablo yer almaktadır.

# extension.yaml
...

# Parameters (environment variables) for which the user specifies values during installation
params:
  - param: DB_PATH
    label: Realtime Database path
    description: >-
      What is the Realtime Database path where you will write new text
      for sentiment analysis?
    type: string
    validationRegex: ^\S+$
    validationErrorMessage: Realtime Database path cannot contain spaces.
    example: path/to/posts
    required: true

  - param: TEXT_KEY
    label: Key for text
    description: What is the name of the key that will contain text to be analyzed?
    type: string
    default: textToAnalyze
    required: true

extension.yaml dosyanızın params bölümünde, kullanıcı tarafından yapılandırılan bir parametre tanımlamak için aşağıdaki alanları kullanın:

Alan Tip Tanım
param
(gerekli)
sicim Parametrenin adı
label
(gerekli)
sicim

Parametrenin kısa açıklaması

Parametrenin değeri istendiğinde kullanıcıya görüntülenir

description
(isteğe bağlı)
sicim

Parametrenin ayrıntılı açıklaması

Parametrenin değeri istendiğinde kullanıcıya görüntülenir

İşaretlemeyi destekler

type
(isteğe bağlı)
sicim

Kullanıcının parametre değerini nasıl ayarlayacağına ilişkin giriş mekanizması (örneğin, metni doğrudan girin veya açılır listeden seçim yapın)

Geçerli değerler aşağıdakileri içerir:

  • string : serbest biçimli metin girişine izin verir ( validationRegex sınırlı olarak)
  • select : önceden tanımlanmış seçenekler listesinden bir girişin seçilmesine olanak sağlar. Bu değeri belirtirseniz options alanını da tanımlamanız gerekir.
  • multiSelect : önceden tanımlanmış seçenekler listesinden bir veya daha fazla girişin seçilmesine olanak sağlar. Bu değeri belirtirseniz options alanını da tanımlamanız gerekir.
  • selectResource : kullanıcının projesinden belirli bir Firebase kaynağı türünün (Cloud Storage grubu gibi) seçilmesine olanak tanır.

    Bu türden bir parametre belirlediğinizde, kullanıcılar kurulum kullanıcı arayüzünde daha kullanıcı dostu bir seçim widget'ına sahip olacaklardır; bu nedenle mümkün olduğunda selectResource parametrelerini kullanın.

    Bu değeri belirtirseniz, resourceType alanını da tanımlamanız gerekir.

  • secret : üçüncü taraf hizmetlere yönelik API anahtarları gibi hassas dizelerin depolanmasına olanak tanır. Bu değerler Cloud Secret Manager'da saklanacaktır.

    Cloud Secret Manager ücretli bir hizmettir ve kullanımı, uzantınızı yükleyen kullanıcılardan ücret alınmasına neden olabilir. secret parametre türünü kullanıyorsanız PREINSTALL dosyanızda uzantınızın Cloud Secret Manager'ı kullandığını belgelediğinizden emin olun.

Bu alan atlanırsa parametre varsayılan olarak string type ayarlanır.

options
(parametre type select veya multiSelect ise gereklidir)
liste

Kullanıcının seçebileceği değerlerin listesi

options alanına label ve value alanlarını ekleyin:

  • label (string) : seçilebilir seçeneğin kısa açıklaması
  • value (string) : seçilebilir seçeneğin gerçek değeri

options alanı için value alanı gereklidir.
label atlanırsa liste seçeneği varsayılan olarak value görüntüler.

resourceType
(parametre type selectResource ise gereklidir)
sicim

Kullanıcının seçmesi istenecek Firebase kaynağının türü. Şu anda yalnızca Cloud Storage paketleri kaynak seçicileri desteklemektedir:

Kaynak tipi Tip kimliği
Cloud Storage paketi storage.googleapis.com/Bucket

Bilinmeyen resourceType değerleri yok sayılacak ve kullanıcı arayüzü, parametreyi serbest biçimli bir string giriş alanı olarak oluşturacaktır.

example
(isteğe bağlı)
sicim

Parametre için örnek değer

validationRegex
(isteğe bağlı)
(yalnızca parametre type string olduğunda geçerlidir)
sicim

Parametrenin kullanıcı tarafından yapılandırılan değerinin doğrulanması için normal ifade dizesi

Regex, go kütüphanesi kullanılarak derlenir: RE2

Doğrulamayla ilgili ayrıntılar için aşağıdaki Doğrulama ve hata mesajları bölümüne bakın.

validationErrorMessage
(isteğe bağlı)
sicim

validationRegex başarısız olursa görüntülenecek hata mesajı

Hata mesajlarıyla ilgili ayrıntılar için aşağıdaki Doğrulama ve hata mesajları bölümüne bakın.

default
(isteğe bağlı)
sicim

Kullanıcı parametre değerini boş bırakırsa parametrenin varsayılan değeri

Varsa, default değer için otomatik olarak doldurulan bir parametre değeri belirtebilirsiniz (örneğin, Resimleri Yeniden Boyutlandır uzantısının IMG_BUCKET parametresine bakın).

required
(isteğe bağlı)
boolean

Kullanıcının parametre değeri istendiğinde boş bir dize gönderip gönderemeyeceğini tanımlar

required atlanırsa, bu değer varsayılan olarak true (yani gerekli bir parametre) olur.

immutable
(isteğe bağlı)
boolean

Kullanıcının kurulumdan sonra parametrenin değerini değiştirip değiştiremeyeceğini tanımlar (örneğin, uzantıyı yeniden yapılandırırlarsa )

immutable atlanırsa bu değer varsayılan olarak false olur.

Not: Uzantınızın dağıtılan işlevleri için bir "konum" parametresi tanımlarsanız, bu immutable alanı param nesnesine eklemelisiniz.

Kullanıcı tarafından yapılandırılan değerler için doğrulama ve hata mesajları

string type bir parametre ayarladığınızda, parametrenin validationRegex alanı aracılığıyla uygun normal ifade doğrulamasını tanımlamanız gerekir.

Ayrıca birçok uzantı için yaygın olarak istenen parametre değeri, bir veritabanı yolu veya Cloud Storage paketidir. Kurulum, yeniden yapılandırma veya güncelleme sırasında Uzantılar hizmetinin parametre değeri girişi sırasında aşağıdakileri doğrulamadığını unutmayın:

  • Belirtilen veritabanının veya Cloud Storage paketinin kullanıcının Firebase projesinde kurulup kurulmadığı
  • Belirtilen veritabanı yolunun kullanıcının veritabanında mevcut olup olmadığı

Ancak uzantı kaynaklarını gerçekten dağıtırken, başvurulan veritabanı veya Cloud Storage paketi projede henüz kurulmamışsa Firebase konsolu veya Firebase CLI bir hata mesajı görüntüler.

Uzantınızı yüklediklerinde uzantınızın başarılı bir şekilde yüklenip beklendiği gibi çalışması için PREINSTALL dosyasındaki kullanıcıları bu gereksinimler hakkında bilgilendirmenizi kesinlikle öneririz.

Sistem parametreleri

Sistem parametreleri bir uzantının kaynaklarının temel yapılandırmasını kontrol eder. Kaynak yapılandırmasını kontrol etmeleri amaçlandığından, işlev kodunuzdan ortam değişkenleri olarak bunlara erişilemez.

Normalde bu parametreler için extension.yaml dosyasında herhangi bir şey bildirmeniz gerekmez. Bunlar her uzantı örneği için otomatik olarak tanımlanır ve kullanıcılar, uzantınızı yüklediklerinde özel değerler belirleme olanağına sahiptir.

Ancak uzantınızın özel kaynak gereksinimleri varsa extension.yaml dosyasında kaynak başına düzeyde belirli değerler ayarlayabilirsiniz. Kaynak başına bu yapılandırma ayarları, kullanıcının uzantı örneği genelindeki ayarlarını geçersiz kılacaktır. Örneğin:

resources:
- name: high_memory_function
  type: firebaseextensions.v1beta.function
  description: >-
    This function needs at least 1GB of memory!
  properties:
    httpsTrigger: {}
    runtime: nodejs18
    availableMemoryMb: 1024
- name: normal_function
  type: firebaseextensions.v1beta.function
  description: >-
    This function has no special memory requirements. It will use the
    default value, or the value of `firebaseextension.v1beta.function/memory`
  properties:
    httpsTrigger: {}
    runtime: nodejs18

Mevcut sistem parametreleri şunlardır:

İsim Etiket (insan dostu) properties karşılık gelen alan Tanım
firebaseextensions.v1beta.function/location Konum location Cloud Functions hangi bölgeye dağıtılmalıdır?
firebaseextensions.v1beta.function/memory Fonksiyon hafızası memory Her fonksiyona kaç megabayt bellek ayrılmalıdır?
firebaseextensions.v1beta.function/timeoutSeconds İşlev zaman aşımı timeout Zaman aşımına uğramadan önce işlevler kaç saniye çalışmalıdır?
firebaseextensions.v1beta.function/vpcConnectorEgressSettings VPC Bağlayıcı Çıkışı vpcConnectorEgressSettings Bir VPC bağlayıcısı yapılandırıldığında giden trafiği kontrol eder
firebaseextensions.v1beta.function/vpcConnector VPC Bağlayıcısı vpcConnector Bulut İşlevlerini belirtilen VPC konektörüne bağlar.
firebaseextensions.v1beta.function/minInstances Minimum işlev örnekleri minInstances Bu işlevin aynı anda çalıştırılacağı minimum örnek sayısı
firebaseextensions.v1beta.function/maxInstances Maksimum işlev örnekleri maxInstances Bu işlevin aynı anda çalıştırılacağı maksimum örnek sayısı
firebaseextensions.v1beta.function/ingresSettings Giriş Ayarları ingressSettings Gelen trafiğin nereden kabul edildiğini kontrol eder
firebaseextensions.v1beta.function/labels Etiketler labels Uzantıdaki tüm kaynaklara uygulanacak etiketler