Parametreler, kullanıcının bir uzantının yüklenen her bir örneğini özelleştirmek için kullandığı mekanizmadır. Parametreler, uzantı için ortam değişkenleri gibidir. Parametre değerleri otomatik olarak doldurulabilir (yüklemeden sonra Firebase tarafından sağlanır) veya kullanıcı tarafından yapılandırılmış (yükleme sırasında kullanıcı tarafından belirtilir) olabilir.
Bu parametreleri uzantınızın işlev kaynak kodunda, extension.yaml
dosyanızda ve POSTINSTALL.md
dosyanızda referans olarak kullanabilirsiniz. PARAMETER_NAME
adlı bir parametreye referans vermek için gereken söz dizimini aşağıda bulabilirsiniz:
İşlevlerinizin kaynak kodunda
params
modülü (örneğin,params.defineInt("PARAMETER_NAME")
) veyaprocess.env.PARAMETER_NAME
'i kullanın.extension.yaml
vePOSTINSTALL.md
arasında${param:PARAMETER_NAME}
kullanın.Yüklemeden sonra Firebase konsolu,
POSTINSTALL.md
dosyasının içeriğini gösterir ve tüm parametre referanslarını, yüklü örneğin gerçek değerleriyle doldurur.
Otomatik olarak doldurulan parametreler
Yüklenen her uzantı örneği, Firebase tarafından sağlanan ve otomatik olarak doldurulan varsayılan parametrelere otomatik olarak erişebilir (Aşağıdaki tabloya bakın). Bu parametre değerleri, Firebase projesinin varsayılan değerleridir (ör. varsayılan Depolama alanı paketi) veya uzantıya özeldir (ör. uzantının örnek kimliği).
Otomatik olarak doldurulan tüm parametre değerleri değiştirilemez. Bu ayarlar, proje oluşturulurken veya uzantı yüklenirken belirlenir.
Firebase, uzantı için bu parametre değerlerini otomatik olarak doldursa da Firebase, yükleme sırasında kullanıcı için ilişkili ürünlerin temel hazırlığını otomatik olarak yapmaz. Uzantıyı yükleyen kullanıcı, yüklemeden önce projelerinde ilişkili ve geçerli ürünleri etkinleştirmelidir. Örneğin, uzantınız Cloud Firestore içeriyorsa kullanıcının projelerinde Cloud Firestore'yi ayarlaması gerekir. Kullanıcılarınızı PREINSTALL.md
dosyasında bu şartlar hakkında bilgilendirmenizi öneririz.
Otomatik olarak doldurulan parametre referansı | Açıklama | Parametre değeri (Firebase tarafından sağlanır) |
---|---|---|
Firebase projesindeki varsayılan değerlere sahip parametreler | ||
PROJECT_ID |
Uzantının yüklü olduğu Firebase projesinin benzersiz tanımlayıcısı |
Genelleştirilmiş biçim:
Örnek değer: |
DATABASE_URL |
Firebase projesinin varsayılan Realtime Database örneği URL'si |
Genelleştirilmiş biçim:
Örnek değer: |
DATABASE_INSTANCE |
Firebase projesinin varsayılan Realtime Database örneği adı Genellikle bu değer proje kimliğiyle aynıdır veya |
Genelleştirilmiş biçim:
Örnek değer: |
STORAGE_BUCKET |
Firebase projesinin varsayılan Cloud Storage paket adı |
Genelleştirilmiş biçim:
Örnek değer: |
Uzantı kurulumundan varsayılan değere sahip parametre | ||
EXT_INSTANCE_ID |
Yüklü uzantı örneği için benzersiz tanımlayıcı Bu değer, |
Yüklenen ilk örnek için genelleştirilmiş biçim (Firebase tarafından otomatik olarak atanır; yükleme sırasında kullanıcı tarafından değiştirilemez):
Örnek değer: 2. ve sonraki örnekler için genelleştirilmiş biçim (Firebase tarafından otomatik olarak atanır; yükleme 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, yüklü her uzantı örneğini özelleştirmesini sağlamak için kullanıcıdan yükleme sırasında parametre değerlerini belirtmesini isteyebilirsiniz. Bu değerleri istemek için extension.yaml
dosyanızın params
bölümünde istemleri ayarlarsınız.
Aşağıda, örnek bir params
bölümü ve ardından kullanılabilir 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ılmış bir parametre tanımlamak için aşağıdaki alanları kullanın:
Alan | Tür | Açıklama | ||||
---|---|---|---|---|---|---|
param (zorunlu) |
dize | Parametrenin adı | ||||
label (zorunlu) |
dize |
Parametrenin kısa açıklaması Parametrenin değeri istendiğinde kullanıcıya gösterilir |
||||
description (isteğe bağlı) |
dize |
Parametrenin ayrıntılı açıklaması Parametrenin değeri istendiğinde kullanıcıya gösterilir Markdown'u destekler | ||||
type (isteğe bağlı) |
dize |
Kullanıcının parametrenin değerini nasıl ayarlayacağıyla ilgili giriş mekanizması (ör. doğrudan metin girme veya açılır listeden seçim yapma) Geçerli değerler şunlardır:
Bu alan atlanırsa parametre varsayılan olarak |
||||
options ( type parametresi select veya multiSelect ise gereklidir)
|
list |
Kullanıcının seçebileceği değerlerin listesi
|
||||
resourceType ( type parametresi selectResource ise zorunludur)
|
dize |
Kullanıcıdan seçmesini isteyeceğiniz Firebase kaynağı türü. Şu anda kaynak seçicileri yalnızca Cloud Storage paket desteklemektedir:
Bilinmeyen |
||||
example (isteğe bağlı) |
dize |
Parametre için örnek değer |
||||
validationRegex (isteğe bağlı) (yalnızca type parametresi string olduğunda geçerlidir)
|
dize |
Parametrenin kullanıcı tarafından yapılandırılmış değerinin doğrulanması için normal ifade dizesi Normal ifade, go kitaplığı kullanılarak derlenir: RE2 Doğrulama hakkında ayrıntılı bilgi için aşağıdaki Doğrulama ve hata mesajları bölümüne bakın. |
||||
validationErrorMessage (isteğe bağlı) |
dize |
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ı) |
dize |
Kullanıcı parametrenin değerini boş bırakırsa parametrenin varsayılan değeri Uygun durumlarda, |
||||
required (isteğe bağlı) |
boolean |
Kullanıcıdan parametrenin değeri istendiğinde kullanıcının boş bir dize gönderip gönderemeyeceğini belirler
|
||||
immutable (isteğe bağlı) |
boolean |
Kullanıcının, yükleme sonrasında parametrenin değerini değiştirip değiştiremeyeceğini (örneğin, uzantıyı yeniden yapılandırdıysa) tanımlar.
Not: Uzantınızın dağıtılan işlevleri için "location" parametresi tanımlarsanız bu |
Kullanıcı tarafından yapılandırılan değerler için doğrulama ve hata mesajları
string
type
ile bir parametre oluşturduğunuzda, 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 talep edilen parametre değeri, veritabanı yolu veya Cloud Storage paketidir. Extensions hizmetinin, yükleme, yeniden yapılandırma veya güncelleme sırasında parametre değeri giriş 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 ayarlanıp ayarlanmadığı
- Belirtilen veritabanı yolunun kullanıcının veritabanında bulunup bulunmadığı
Ancak uzantı kaynaklarını dağıtırken, projede referans verilen veritabanı veya Cloud Storage paketi henüz ayarlanmamışsa Firebase konsolu ya da Firebase KSA bir hata mesajı gösterir.
Uzantılarınızın başarılı bir şekilde yüklenip beklendiği gibi çalışması için kullanıcıları PREINSTALL
dosyasında bu şartlar hakkında bilgilendirmenizi önemle tavsiye ederiz.
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 gerektiğinden işlev kodunuzdan ortam değişkeni olarak erişilemezler.
Normalde extension.yaml
içinde bu parametreler için herhangi bir şey belirtmeniz gerekmez.
Bu değerler her uzantı örneği için otomatik olarak tanımlanır ve kullanıcılar uzantınızı yüklerken özel değerler belirleyebilir.
Ancak uzantınızın özel kaynak gereksinimleri varsa extension.yaml
içinde kaynak düzeyinde belirli değerler ayarlayabilirsiniz.
Bu kaynak başına yapılandırma ayarları, kullanıcının uzantı örneği genelindeki ayarlarını geçersiz kılar.
Ö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
Kullanılabilen sistem parametreleri şunlardır:
Ad | Etiket (kullanıcı dostu) | properties 'teki ilgili alan |
Açıklama |
---|---|---|---|
firebaseextensions.v1beta.function/location | Konum | location |
Cloud Functions hangi bölgeye dağıtılmalıdır? |
firebaseextensions.v1beta.function/memory | İşlev belleği | memory |
Her işleve kaç megabayt bellek ayrılmalıdır? |
firebaseextensions.v1beta.function/timeoutSeconds | İşlev zaman aşımı | timeout |
İşlevler zaman aşımına uğramadan önce kaç saniye çalışmalıdır? |
firebaseextensions.v1beta.function/vpcConnectorEgressSettings | VPC Bağlayıcısı Çı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 |
Cloud Functions'ı belirtilen VPC bağlayıcısına bağlar. |
firebaseextensions.v1beta.function/minInstances | Minimum işlev örnekleri | minInstances |
Bu işlevin aynı anda çalıştırılması gereken minimum örnek sayısı |
firebaseextensions.v1beta.function/maxInstances | Maksimum işlev örneği sayısı | maxInstances |
Bu işlevin aynı anda çalıştırılabilecek maksimum örnek sayısı |
firebaseextensions.v1beta.function/ingressSettings | Giriş Ayarları | ingressSettings |
Gelen trafiğin nereden kabul edileceğini kontrol eder. |
firebaseextensions.v1beta.function/labels | Etiketler | labels |
Uzantıdaki tüm kaynaklara uygulanacak etiketler |