extensions.yaml referansı

Uzantınızın spesifikasyon dosyası (extension.yaml) uzantınızın meta veriler, uzantı ve API'ler tarafından oluşturulan kaynakları tanımlar ve ve kullanıcı tarafından yapılandırılan tüm parametreleri tanımlar. uzantı tarafından sağlanır.

Bu sayfadaki tablolarda, extension.yaml için kullanılabilen alanlar açıklanmaktadır dosyası olarak kaydedebilirsiniz.

Temel ve tanımlayıcı bilgiler

name: your-extension-name
version: 1.0.0         # Semantic versioning (semver)
specVersion: v1beta    # Always "v1beta"
license: Apache-2.0    # Always "Apache-2.0" (required to publish on extensions.dev)
billingRequired: true  # Always "true"

displayName: Your extension name
description: >-
  Description of the extension. (One or two
  sentences.)
icon: icon.png
tags: [tag, anothertag]

sourceUrl: https://github.com/your-org/your-repo   # GitHub repo URL
releaseNotesUrl: https://github.com/your-org/your-repo/blob/main/CHANGELOG.md

author:
  authorName: Your Company
  email: extensions@example.com
  url: https://example.com/
contributors:
  - authorName: Your Name
  - authorName: Another Contributor
    email: colleague@example.net
    url: https://github.com/their-org/
Temel alanlar
name
dize
(zorunlu)

Uzantının tanımlayıcısı.

Yalnızca küçük harf, sayı ve tire içerebilir; 40 karakter limit.

Not: Bu değer, uzantının Bu örnek kimliği (daha sonra bu kimlikle oluşturulan örnek dosya adlarını oluşturmak için kullanılır) uzantının hizmet hesabını ve uzantıya özgü kaynakları) kontrol edin.

version
dize
(zorunlu)

Uzantının sürümü.

Semver sürümü kullanılmalıdır (örneğin, 1.2.0).

specVersion
dize
(zorunlu)

Firebase Extensions spesifikasyonunun sürümü.

Geçerli değer: v1beta

license
dize
(isteğe bağlı)

Uzantının lisansı.

Uzantınız Apache-2.0 kullanılarak lisanslanmalıdır.

billingRequired
boole
(isteğe bağlı)

Uzantının kullandığı hizmetlerin ücretli katman gerektirip gerektirmediği Firebase faturalandırma hesabı.

Her zaman true seçeneğine ayarla.

displayName
dize
(isteğe bağlı)

Uzantının kolayca görünen adı (3-5 kelime).

40 karakterle sınırlıdır.

description
dize
(isteğe bağlı)
Uzantınızın gerçekleştirdiği görevin kısa açıklaması (~1 cümle).
icon
dize
(isteğe bağlı)

Uzantınızın simgesi olarak kullanılacak dosya extensions.dev ve Firebase konsolunda gösterilir.

Bu dosya, 512x512 ila 1024x1024 piksel arasında kare bir PNG dosyası olmalıdır. Dosyayı extension.yaml ile aynı dizine yerleştirin; siz alt dizin belirtemez.

Sizin için bir simge tasarlarken aşağıdaki kuralları göz önünde bulundurun: uzantı:

  • Size uygun arka plan ve poster renklerini seçin belirtir.
  • Yalnızca 2 renk kullanarak simge renklerinizi basit tutun. Birden çok renk simgenizi görsel açıdan boğucu hale getirebilir.
  • Aynı nedenle, simgenizde gradyan kullanmayın. Renk geçişleri küçük boyutlarda ayırt edilmesi zordur ve simge karmaşıktır.
  • Uzantınızın özelliklerini ileten basit, benzersiz işlevi görür.
  • Şirketiniz birden fazla uzantı oluşturuyorsa logonuzu tıklayın. Kullanıcılar, mobil cihaz arkadaşlarınızın uzantılar.
  • Posterin görsel ve kalın olmasına dikkat edin. Hassas veya gösterişli kullanmayın küçük boyutlarda iyi sonuç vermeyecek resimler oluşturabilirsiniz.
  • Uzantınızın işlevini açıklayan kelimeler eklemeyin. Metin (şimdiki değeri) ve küçük boyutlarda okunamaz hale gelir.
tags
dize listesi
(isteğe bağlı)
Kullanıcıların uzantınızı keşfetmesine yardımcı olan etiketler. Aşağıdaki etiketler, Extensions Hub'daki kategorilerle eşlenir: marketing, messaging, payments, search, shipping, social, utilities, ai
sourceUrl
dize
(isteğe bağlı)
Uzantı dizinine erişilebileceği herkese açık URL.
releaseNotesUrl
dize
(isteğe bağlı)
Uzantının sürüm notlarına erişilebileceği herkese açık URL.
author
bir yazar nesnesi
(isteğe bağlı)

Uzantının asıl yazarı ve ilgili kişisi.

author:
  authorName: Your Company
  email: extensions@example.com
  url: https://example.com/
Yazar alanları
authorName
dize
(zorunlu)

Yazarın adı.

Bir kişi, şirket, kuruluş vb. olabilir.

email
dize
(isteğe bağlı)
Yazarın e-posta adresi.
url
dize
(isteğe bağlı)
Yazar hakkındaki bilgilere erişilebildiği herkese açık URL.
contributors
yazar nesneleri listesi
(isteğe bağlı)

Uzantıya katkıda bulunan diğer yazarlar.

contributors:
  - authorName: Your Name
  - authorName: Another Contributor
    email: colleague@example.net
    url: https://github.com/their-org/
Yazar alanları
authorName
dize
(zorunlu)

Yazarın adı.

Bir kişi, şirket, kuruluş vb. olabilir.

email
dize
(isteğe bağlı)
Yazarın e-posta adresi.
url
dize
(isteğe bağlı)
Yazar hakkındaki bilgilere erişilebildiği herkese açık URL.

Firebase ve Google Cloud API'leri

Bu alanlar, uzantının kullandığı Firebase ve Google API'lerini belirtir. Kullanıcılar uzantıyı yüklediklerinde, bu API'leri otomatik olarak takip etmesi gerekir.

apis:
  - apiName: apiname.googleapis.com
    reason: Explanation of why the extension uses this API
  - apiName: anotherapiname.googleapis.com
    reason: Explanation of why the extension uses this API
API alanları
apiName
dize
(zorunlu)

Google API'nin adı

Her birinde listelenen Hizmet adı alanına karşılık gelmelidir API'ye genel bakış sayfası (örnek) Google Cloud API Kitaplığı

reason
dize
(zorunlu)
Uzantının neden bu API'yi kullanması gerektiğine dair kısa açıklama

IAM rolleri

Bu alanlar, uzantının gerektirdiği Cloud IAM rollerini belirtir. Hizmet uzantı için sağlanan hesaba bu roller verilir.

Yalnızca şunlardan birini belirtebilirsiniz: desteklenen roller hakkında daha fazla bilgi edinin.

roles:
  - role: product.role
    reason: Explanation of why the extension needs this level of access
  - role: anotherproduct.role
    resource: projects/${project_id}/resource_type/*
    reason: Explanation of why the extension needs this level of access
Rol alanları
role
dize
(zorunlu)

Uzantının çalışması için gereken IAM rolünün adı

Aşağıdakilerden biri olmalıdır: desteklenen roller

reason
dize
(zorunlu)
Uzantının neden tarafından verilen erişime ihtiyacı olduğuna dair kısa açıklama bu rolün
resource
dize
(isteğe bağlı)

Rolün kapsamını bu kaynakla sınırlandırın.

Atlanırsa varsayılan olarak projects/${project_id} değerine ayarlanır. Bkz. Azaltma .

Harici hizmetler

Bu alanlar, uzantının kullandığı Firebase ve Google dışı hizmetleri belirtir (genellikle REST API'ler). Firebase Extensions platformu, bu hizmetler için otomatik olarak yetkilendirme veya yetkilendirme yöntemleri kullanır.

externalServices:
  - name: Example API
    pricingUri: https://developers.example.com/pricing
  - name: Another Example API
    pricingUri: https://developers.example.com/pricing
Harici hizmet alanları
name
dize
(zorunlu)
Uzantının çalışması için gereken harici hizmetin adı
pricingUri
dize
(zorunlu)
Hizmete ilişkin fiyatlandırma bilgilerinin URI'si

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

Bu alanlar, uzantının kullanıcılara sunduğu parametreleri tanımlar tıklayın.

params:
  - param: PARAM_ID
    label: Short description of the parameter
    description: >-
      What do you want to set PARAM_ID to?
      This is a longer description of the parameter, often phrased as a prompt
      to the user.
  - param: ANOTHER_PARAM_ID
    label: Short description of the parameter
    description: >
      What do you want to set ANOTHER_PARAM_ID to?
      This is a longer description of the parameter.
    example: example-input
    validationRegex: "^[a-zA-Z][a-zA-Z-]*[a-zA-Z]?$"
    validationErrorMessage:
      Must be a hyphen-delimited string of alphabetic characters
    default: default-value
    required: false
    immutable: true
Parametre alanları
param
dize
(zorunlu)
Parametrenin adı. Parametreye referans vermek için bu adı kullanmanız gerekir. koddaki değere bakın.
label
dize
(zorunlu)
Parametrenin kısa açıklaması. Kullanıcıya şu işlem sırasında gösterilir: parametrenin değeri sorulur.
description
dize
(isteğe bağlı)

Parametrenin ayrıntılı açıklaması. Şu durumda kullanıcıya gösterilir: parametrenin değerini girmeleri istenir.

Markdown'ı destekler.

example
dize
(isteğe bağlı)
Parametre için örnek değer.
default
dize
(isteğe bağlı)
Kullanıcı parametrenin değerinden ayrılırsa varsayılan parametre değeri boş.
validationRegex
dize
(isteğe bağlı)
Parametrenin kullanıcı tarafından yapılandırılan doğrulamasının doğrulanması için normal ifade değer. Google RE2 söz dizimi.
validationErrorMessage
dize
(isteğe bağlı)
Normal ifade doğrulaması başarısız olursa görüntülenecek hata mesajı.
required
boole
(isteğe bağlı)
Kullanıcının boş dize gönderip gönderemeyeceğini tanımlar parametrenin değeri sorulur. Varsayılan olarak true değerine ayarlanır.
immutable
boole
(isteğe bağlı)

Kullanıcının parametrenin değerini (uzantıyı yeniden yapılandırdıklarında) gibi. Varsayılan değer: false

Not: Bir "konum" tanımlarsanız parametresinden işlevleri için bu alanı true olarak ayarlayın.

type
dize
(isteğe bağlı)
Parametre türü. Özel parametre türlerinde ek kullanıcı arayüzü sunumları için harika bir yol olabilir. Aşağıdaki bölümleri inceleyin.

Seçilebilir ve çoklu seçilebilir parametreler

Seçilebilir ve çoklu seçilebilir parametreler, kullanıcılardan önceden tanımlanmış seçeneklerdir.

params:
  - param: PARAM_ID
    label: Short description of the parameter
    description: >-
      Do you want to enable the option?
    type: select
    options:
      - label: Yes
        value: true
      - label: No
        value: false
  - param: ANOTHER_PARAM_ID
    label: Short description of the parameter
    description: >-
      Which options do you want to enable?
    type: multiselect
    options:
      - value: red
      - value: green
      - value: blue
Çoktan seçmeli parametre alanları
type
dize

select veya multiselect

Parametrenin bir değer (select) olabileceğini belirtir veya bir kümeden seçilmiş olan birkaç değer (multiselect) önceden tanımlanmış seçimler

options
seçenek listesi
(zorunlu)

Kullanıcının belirleyebileceği seçenekler

Seçenek alanları
value
dize
(zorunlu)
Kullanıcının seçebileceği değerlerden biri. Bu, elde ettiğiniz değerdir değerini okumanızı öneririz.
label
dize
(isteğe bağlı)
Seçilebilir seçeneğin kısa açıklaması. Atlanırsa varsayılanlar value numaralı telefona.

Seçilebilir kaynak parametreleri

Seçilebilir kaynak parametreleri, kullanıcılardan bir kaynak (veritabanı) seçmesini ister depolama paketi vb.) ayırmalarını isteyebilir.

params:
  - param: PARAM_ID
    label: Short description of the parameter
    description: >-
      Which resource do you want to use?
    type: selectresource
    resourceType: product.googleapis.com/ResourceType
Kaynak parametresi alanları
type
dize

selectresource

Parametrenin bir proje kaynağını temsil ettiğini belirtir

resourceType
dize
(zorunlu)

Kullanıcının seçmesini istenecek kaynağın türü.

Geçerli değerler:

  • storage.googleapis.com/Bucket
  • firestore.googleapis.com/Database
  • firebasedatabase.googleapis.com/DatabaseInstance

Ancak şu anda yalnızca Cloud Storage paketlerinde seçili kullanıcı arayüzü mevcuttur (diğer kaynak türleri, serbest biçimli metin giriş alanları olarak sunulur).

Gizli anahtar parametreleri

Kullanıcı tarafından sağlanan gizli anahtar değerleri (ör. API anahtarları) farklı şekilde ele alınır:

  • Gizli anahtar değerleri, Cloud Secret Manager kullanılarak depolanır. Yalnızca yetkili müşteriler (bir uzantının yüklü örneği gibi) bu değerlere erişebilir.
  • Kullanıcılardan bu değerleri girmeleri istendiğinde, girişleri gösterilmez.
params:
  - param: PARAM_ID
    label: Short description of the parameter
    description: >-
      What is the secret value?
    type: secret
Gizli parametre alanları
type
dize

secret

Parametrenin bir gizli anahtar değeri olduğunu belirtir

Cloud Functions işlevi kaynakları

Bu alanlar, bir uzantıya dahil olan Cloud Functions işlevlerini bildirir. Kaynak beyan söz dizimi 1. nesil ile 2. nesil arasında biraz farklı görünüyor bir uzantıda bir arada bulunabilen işlevleri ifade eder.

1. Nesil Cloud Functions

resources:
  - name: functionName
    type: firebaseextensions.v1beta.function
    description: >-
      Description of what the function does. (One or two
      sentences.)
    properties:
      runtime: runtime-version
      eventTrigger:
        eventType: google.product.event
        resource: projects/_/resource/specifier
Kaynak alanları
name
dize
(zorunlu)

Dışa aktarılan işlevin kullanıcı dostu adı.

entryPoint özelliğini belirtmezseniz (bkz. bu değer, işlevlerin kaynak kodu.

Dağıtılan işlevinin son adı şurada yer alır: şu biçimdedir: ext-extension-instance-id-name.

type
dize
(zorunlu)
1. nesil işlev kaynağı için: firebaseextensions.v1beta.function
description
dize
(zorunlu)

İşlevin uzantısına sahip olur.

properties
(zorunlu)

1. nesil Cloud Functions özellikleri. En önemli özellikleri aşağıda listelenmiştir, ancak tam listeyi Bulut İşlevler referansı.

Mülkler
location
(isteğe bağlı)

İşlevin dağıtılacağı konum. Varsayılan değer: us-central1

entryPoint
(isteğe bağlı)
İşlevlerin kaynak kodundaki dışa aktarılan işlevin adı bir arama kutusu bulunur. Varsayılan olarak name, yukarıda.
sourceDirectory
(isteğe bağlı)

package.json içeren dizin kök. İşlevlerinizin kaynak kodu, bu dosya içinde olmalıdır. dizin. Varsayılan olarak functions değerine ayarlanır

Not: main alanı package.json, işlevlerin kaynak koduna (index.js gibi) sahip olmalıdır.

timeout
(isteğe bağlı)

İşlevin maksimum yürütme süresi.

  • Varsayılan: 60s
  • Maksimum değer: 540s
availableMemoryMb
(isteğe bağlı)

İşlev için kullanılabilir MB cinsinden bellek miktarı.

  • Varsayılan: 256
  • Geçerli değerler: 128, 256, 512, 1024 ve 2048
runtime
(önerilen)

İşlevin çalışma zamanı ortamı.

httpsTrigger
veya
eventTrigger
veya
scheduleTrigger
veya
taskQueueTrigger
(bu işlev tetikleyicisi türlerinden biri gereklidir)
Bkz. Yazma Cloud Functions for an uzantı her tetikleyici türü hakkında bilgi verin.

2. Nesil Cloud Functions

resources:
  - name: functionName
    type: firebaseextensions.v1beta.v2function
    description: >-
      Description of what the function does. (One or two
      sentences.)
    properties:
      buildConfig:
        runtime: nodejs16
      serviceConfig:
        availableMemory: 512M
      eventTrigger:
        eventType: google.firebase.firebasealerts.alerts.v1.published
        triggerRegion: global
        eventFilters:
          - attribute: alerttype
            value: crashlytics.newFatalIssue

Kaynak alanları
name
dize
(zorunlu)

Dışa aktarılan işlevin kullanıcı dostu adı.

entryPoint özelliğini belirtmezseniz (bkz. bu değer, işlevlerin kaynak kodu.

Dağıtılan işlevinin son adı şurada yer alır: şu biçimdedir: ext-extension-instance-id-name.

type
dize
(zorunlu)
2. nesil işlev kaynağı için: firebaseextensions.v1beta.v2function
description
dize
(zorunlu)

İşlevin uzantısına sahip olur.

properties
(zorunlu)

2. nesil Cloud Functions özellikleri. En önemli özellikleri aşağıda listelenmiştir, ancak tam listeyi Bulut İşlevler referansı.

Mülkler
location
(isteğe bağlı)

İşlevin dağıtılacağı konum. Varsayılan değer: us-central1

sourceDirectory
(isteğe bağlı)

package.json içeren dizin kök. İşlevlerinizin kaynak kodu, bu dosya içinde olmalıdır. dizin. Varsayılan olarak functions değerine ayarlanır

Not: main alanı package.json, işlevlerin kaynak koduna (index.js gibi) sahip olmalıdır.

Ayrıca, kendi özelliklerine sahip üç nesne türü alanı vardır:

buildConfig özellikleri
buildConfig.runtime
(önerilen)

İşlevin çalışma zamanı ortamı.

buildConfig.entryPoint
(isteğe bağlı)
İşlevler kaynak kodunuzdaki dışa aktarılan işlevin adı bir arama kutusu bulunur. Varsayılan olarak name, yukarıda.
serviceConfig özellikleri
serviceConfig.timeoutSeconds
(isteğe bağlı)

İşlevin maksimum yürütme süresi.

  • Varsayılan: 60
  • Maksimum değer: 540
serviceConfig.availableMemory
(isteğe bağlı)
Bir işlev için kullanılabilen bellek miktarı. Varsayılan değer: 256M Desteklenen birimler: k, M, G, Mi, Gi. Herhangi bir birim sağlanmazsa değer bayt olarak yorumlanır.
eventTrigger özellikleri
eventTrigger.eventType
(zorunlu)
Dinlenecek etkinlik türü. Görüntüleyin Yazma Bulutu Uzantının işlevleri ve kullanılabilen etkinlik türleri her bir ürüne göre değişiyor.
eventTrigger.eventFilters
(isteğe bağlı)
Dinlenecek etkinlikleri daha da sınırlayan filtreler. Örneğin, yalnızca belirli bir kaynakla eşleşen etkinlikleri dinleyebilirsin desen. Görüntüleyin Yazma Bulutu Uzantının işlevleri için her bir uzantıya filtre uygulama etkinlik türü.
eventTrigger.channel
(isteğe bağlı)
Tetikleyiciyle ilişkilendirilen kanalın adı projects/{project}/locations/{location}/channels/{channel} biçimindedir. Bu özelliği çıkarırsanız işlev, etkinliklerin varsayılan kanalındaki etkinliklerdir.
eventTrigger.triggerRegion
(isteğe bağlı)
Tetikleyici, yalnızca bu bölgeden gelen etkinlikleri alır. Fonksiyonla aynı bölge, farklı bir bölge veya çok bölgeli veya küresel olabilir. Sağlanmazsa varsayılan olarak işlevle aynı bölgeye sahiptir.

Yaşam döngüsü etkinlikleri

Yaşam döngüsü etkinlikleri, bir kullanıcı bir web sitesini kurduğunda çalışacak ve veya uzantınızın bir örneğini yapılandırın. Uzantınızın yaşam döngüsü olaylarını yönetme bölümüne göz atın.

lifecycleEvents:
  onInstall:
    function: myTaskFunction
    processingMessage: Describes the task being completed
  onUpdate:
    function: myOtherTaskFunction
    processingMessage: Describes the task being completed
  onConfigure:
    function: myOtherTaskFunction
    processingMessage: Describes the task being completed
Yaşam döngüsü etkinliği alanları
onInstall
(isteğe bağlı)

Kullanıcı uzantısına sahip olur.

İşlev spesifikasyonu
function
dize
(zorunlu)

Şu işlemleri gerçekleştirecek görev sırası tarafından tetiklenen işlevin adı: etkinliği tıklayın.

Bu işlev, resources içinde tanımlanmalıdır bölümünde taskQueue tanımlanmalıdır.

processingMessage
dize
(zorunlu)
Görev etkinken Firebase konsolunda gösterilecek mesaj takip edebilirsiniz.
onUpdate
(isteğe bağlı)

Bir kullanıcı uzantısına sahip olur.

İşlev spesifikasyonu
function
dize
(zorunlu)

Şu işlemleri gerçekleştirecek görev sırası tarafından tetiklenen işlevin adı: etkinliği tıklayın.

Bu işlev, resources içinde tanımlanmalıdır bölümünde taskQueue tanımlanmalıdır.

processingMessage
dize
(zorunlu)
Görev etkinken Firebase konsolunda gösterilecek mesaj takip edebilirsiniz.
onConfigure
(isteğe bağlı)

Bir kullanıcı uzantısına sahip olur.

İşlev spesifikasyonu
function
dize
(zorunlu)

Şu işlemleri gerçekleştirecek görev sırası tarafından tetiklenen işlevin adı: etkinliği tıklayın.

Bu işlev, resources içinde tanımlanmalıdır bölümünde taskQueue tanımlanmalıdır.

processingMessage
dize
(zorunlu)
Görev etkinken Firebase konsolunda gösterilecek mesaj takip edebilirsiniz.

Özel etkinlikler (Eventarc)

Özel etkinlikler, uzantınızın kullanıcıların kendi mantığını kullanmanız gerekir. Şuradan Eventarc'ı ziyaret edin: Uzantılara kullanıcı kancaları ekleyin.

events:
  - type: publisher-id.extension-name.version.event-name
    description: Description of the event
  - type: publisher-id.extension-name.version.another-event-name
    description: Description of the other event
Özel etkinlik alanları
type
dize
(zorunlu)
Etkinliğin tür tanımlayıcısı. 3-4 sayıdan tanımlayıcıyı oluşturun noktayla ayrılmış alanlar: yayıncı kimliği, uzantı adı ve etkinlik adı alanların doldurulması zorunludur; sürüm alanının doldurulması önerilir. Benzersiz bir ve yayınladığınız her etkinlik türü için açıklayıcı etkinlik adı ekleyin.
description
dize
(zorunlu)
Etkinliğin açıklaması.