Parametreler, kullanıcının bir uzantının her yüklü örneğini özelleştirdiği mekanizmadır. Parametreler, uzantıların ortam değişkenleri gibidir. Parametrelerin değerleri otomatik olarak doldurulabilir (yüklemeden sonra Firebase tarafından sağlanır) veya kullanıcı tarafından yapılandırılabilir (yükleme sırasında kullanıcı tarafından belirtilir).
Bu parametreler, uzantınızın işlev kaynak kodunda, extension.yaml dosyanızda ve POSTINSTALL.md dosyanızda referans olarak kullanılabilir. PARAMETER_NAME adlı bir parametreye referans vermek için kullanılan söz dizimi aşağıda verilmiştir:
İşlevlerinizin kaynak kodunda
paramsmodülünü (ör.params.defineInt("PARAMETER_NAME")) veyaprocess.env.PARAMETER_NAMEmodülünü kullanın.extension.yamlvePOSTINSTALL.mdiçinde${param:PARAMETER_NAME}kullanın.Yükleme işleminden sonra Firebase konsolu,
POSTINSTALL.mddosyasının içeriğini gösterir ve tüm parametre referanslarını, yüklenen ö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 çeşitli varsayılan parametrelere otomatik olarak erişebilir (aşağıdaki tabloya bakın). Bu parametre değerleri, Firebase projesinin varsayılan değerleridir (varsayılan Storage paketi gibi) veya uzantıya özeldir (uzantının örnek kimliği gibi).
Otomatik olarak doldurulan tüm parametre değerleri sabittir. Bu değerler, proje oluşturma veya uzantı yükleme sırasında ayarlanır.
Firebase, uzantı için bu parametre değerlerini otomatik olarak doldursa da yükleme sırasında ilişkili ürünleri kullanıcı için otomatik olarak sağlamaz. Uzantıyı yükleyen kullanıcı, yükleme işleminden önce projesinde ilişkili ve geçerli ürünleri etkinleştirmelidir. Örneğin, uzantınız Cloud Firestore içeriyorsa kullanıcının projesinde Cloud Firestore kurulumu yapması gerekir. Kullanıcılarınızı bu şartlar hakkında PREINSTALL.md dosyasında bilgilendirmenizi öneririz.
| Otomatik olarak doldurulan parametre için referans | Açıklama | 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ş biçim:
Örnek değer: |
DATABASE_URL |
Firebase projesinin varsayılan Realtime Database örneğinin URL'si |
Genelleştirilmiş biçim:
Örnek değer: |
DATABASE_INSTANCE |
Firebase projesinin varsayılan Realtime Database örnek 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 paketi adı |
Genelleştirilmiş biçim:
Örnek değer: |
| Uzantı yüklemesinden varsayılan değere sahip parametre | ||
EXT_INSTANCE_ID |
Yüklü uzantı örneğinin benzersiz tanımlayıcısı 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 yüklenen ö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ıların bir uzantının yüklü her örneğini özelleştirmesine olanak tanımak için yükleme sırasında kullanıcıdan 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 mevcut tüm parametre alanlarını açıklayan bir tablo verilmiştir.
# 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
Kullanıcı tarafından yapılandırılan bir parametre tanımlamak için extension.yaml dosyanızın params bölümünde aşağıdaki alanları kullanın:
| Alan | Tür | Açıklama | ||||
|---|---|---|---|---|---|---|
param(zorunlu) |
dize | Parametrenin adı | ||||
label(zorunlu) |
dize |
Parametrenin kısa açıklaması Kullanıcıdan parametrenin değeri istendiğinde gösterilir. |
||||
description(isteğe bağlı) |
dize |
Parametrenin ayrıntılı açıklaması Kullanıcıdan parametrenin değeri istendiğinde gösterilir. Markdown'ı destekler | ||||
type(isteğe bağlı) |
dize |
Kullanıcının parametre değerini ayarlama şekliyle ilgili giriş mekanizması (örneğin, 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 zorunludur)
|
list |
Kullanıcının seçebileceği değerlerin listesi
|
||||
resourceType( type parametresi selectResource ise
gerekli)
|
dize |
Kullanıcıdan 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ı) |
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ılan 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ı hakkında ayrıntılı bilgi 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 Varsa |
||||
required(isteğe bağlı) |
boole |
Kullanıcıdan parametrenin değeri istendiğinde boş bir dize gönderip gönderemeyeceğini tanımlar.
|
||||
immutable(isteğe bağlı) |
boole |
Kullanıcının, yüklemeden sonra parametrenin değerini değiştirip değiştiremeyeceğini (örneğin, uzantıyı yeniden yapılandırırsa) tanımlar.
Not: Uzantınızın dağıtılan işlevleri için bir "location" parametresi tanımlarsanız bu |
Kullanıcı tarafından yapılandırılan değerler için doğrulama ve hata mesajları
string türünde type içeren bir parametre oluşturduğunuzda parametrenin validationRegex alanı üzerinden uygun normal ifade doğrulamasını tanımlamanız gerekir.
Ayrıca birçok uzantı için sıkça istenen 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şi yaparken 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 mevcut olup olmadığı
Ancak uzantı kaynaklarını dağıtırken, referans verilen veritabanı veya Cloud Storage paketi projede henüz ayarlanmamışsa Firebase konsolu veya Firebase CLI bir hata mesajı gösterir.
Uzantınızın başarıyla yüklenmesi ve 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 etmek için kullanıldıklarından, işlev kodunuzun içinden ortam değişkenleri olarak erişilemezler.
Normalde extension.yaml içinde bu parametreler için herhangi bir beyanda bulunmanız gerekmez.
Her uzantı örneği için otomatik olarak tanımlanırlar ve kullanıcılar uzantınızı yüklerken özel değerler belirleyebilir.
Ancak uzantınızın özel kaynak gereksinimleri varsa extension.yaml dosyasında kaynak düzeyinde belirli değerler ayarlayabilirsiniz.
Kaynak bazında yapılan bu 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ılabilir sistem parametreleri şunlardır:
| Ad | Etiket (kullanıcı dostu) | properties içindeki karşılık gelen 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 bir 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 |
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 örneği sayısı | minInstances |
Bu işlevin aynı anda çalıştırılacak minimum örnek sayısı |
| firebaseextensions.v1beta.function/maxInstances | Maksimum işlev örneği sayısı | maxInstances |
Bu işlevin aynı anda çalıştırılacak 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 |