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 ")
) veyaprocess.env. PARAMETER_NAME
.extension.yaml
vePOSTINSTALL.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: Örnek değer: |
DATABASE_URL | Firebase projesinin varsayılan Gerçek Zamanlı Veritabanı örneği URL'si | Genelleştirilmiş format: Örnek değer: |
DATABASE_INSTANCE | Firebase projesinin varsayılan Gerçek Zamanlı Veritabanı örneği adı Genellikle bu değer proje kimliğiyle aynıdır veya | Genelleştirilmiş format: Örnek değer: |
STORAGE_BUCKET | Firebase projesinin varsayılan Cloud Storage paketi adı | Genelleştirilmiş format: Örnek değer: |
Uzantı kurulumundan varsayılan değere sahip parametre | ||
EXT_INSTANCE_ID | Yüklü uzantı örneğinin benzersiz tanımlayıcısı Bu değer, | 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 ): Örnek değer: 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 ): Örnek değer: |
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:
Bu alan atlanırsa parametre varsayılan olarak | ||||
options (parametre type select veya multiSelect ise gereklidir) | liste | Kullanıcının seçebileceği değerlerin listesi
| ||||
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:
Bilinmeyen | ||||
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 | 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, | ||||
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 | ||||
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 ) Not: Uzantınızın dağıtılan işlevleri için bir "konum" parametresi tanımlarsanız, bu |
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 |