extension.yaml için referans

Uzantınızın belirtim dosyası ( extension.yaml ) uzantınızın meta verilerini içerir, uzantı tarafından oluşturulan kaynakları, API'leri ve uzantının gerektirdiği erişimi bildirir ve uzantı tarafından sağlanan kullanıcı tarafından yapılandırılan parametreleri tanımlar.

Bu sayfadaki tablolar extension.yaml dosyası için mevcut alanları açıklamaktadır.

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
sicim
(gerekli)

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

Yalnızca küçük harfler, sayılar ve kısa çizgiler içerebilir; 40 karakter sınırı.

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

version
sicim
(gerekli)

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

Semver versiyonlamasına uyulmalıdır (örneğin, 1.2.0).

specVersion
sicim
(gerekli)

Firebase Uzantıları spesifikasyonunun sürümü.

Mevcut değer: v1beta

license
sicim
(isteğe bağlı)

Uzantı için lisans.

Uzantınızın Apache-2.0 kullanılarak lisanslanması gerekir.

billingRequired
boolean
(isteğe bağlı)

Uzantı tarafından kullanılan hizmetlerin ücretli katmanlı bir Firebase faturalandırma hesabı gerektirip gerektirmediği.

Her zaman true olarak ayarlayın.

displayName
sicim
(isteğe bağlı)

Uzantı için kolay görünen ad (3-5 kelime).

40 karakter sınırı.

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

extensions.dev ve Firebase konsolunda uzantınızın simgesi olarak kullanılacak dosya.

Bu dosya 512x512 ile 1024x1024 piksel arasında kare PNG olmalıdır. Dosyayı extension.yaml ile aynı dizine koyun; bir alt dizin belirtemezsiniz.

Uzantınız için bir simge tasarlarken aşağıdaki yönergeleri aklınızda bulundurun:

  • Markanıza uygun arka plan ve görsel renklerini seçin.
  • Yalnızca 2 renk kullanarak simge renklerinizi basit tutun. Birden fazla renk, simgenizi görsel olarak ezici hale getirebilir.
  • Aynı sebepten dolayı simgenizde degradeler kullanmayın. Degradelerin küçük boyutlarda ayırt edilmesi zordur ve simgeyi görsel olarak karmaşık hale getirir.
  • Uzantınızın işlevselliğini anlatan basit, benzersiz görüntüler kullanın.
  • Şirketiniz birden fazla uzantı oluşturuyorsa simge olarak logonuzu kullanmayın. Kullanıcılar uzantılarınızı ayırt etmekte zorluk çekecektir.
  • Resmi grafik ve kalın yapın. Daha küçük boyutlarda iyi görüntülenmeyen hassas veya ayrıntılı resimler kullanmayın.
  • Uzantınızın ne yaptığını açıklayan kelimeler eklemeyin. Metin genellikle daha küçük boyutlarda okunamaz.
tags
dizelerin listesi
(isteğe bağlı)
Kullanıcıların uzantınızı keşfetmesine yardımcı olacak etiketler. Şu etiketler Extensions Hub'daki kategorilerle eşleşir: marketing , messaging , payments , search , shipping , social , utilities , ai
sourceUrl
sicim
(isteğe bağlı)
Uzantı dizinine erişilebileceği genel URL.
releaseNotesUrl
sicim
(isteğe bağlı)
Uzantının sürüm notlarına erişilebileceği genel URL.
author
bir yazar nesnesi
(isteğe bağlı)

Uzantının birincil yazarı ve iletişim noktası.

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

Yazarın adı.

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

email
sicim
(isteğe bağlı)
Yazarın e-posta adresi.
url
sicim
(isteğe bağlı)
Yazar hakkındaki bilgilere erişilebilecek genel URL.
contributors
yazar nesnelerinin 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
sicim
(gerekli)

Yazarın adı.

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

email
sicim
(isteğe bağlı)
Yazarın e-posta adresi.
url
sicim
(isteğe bağlı)
Yazar hakkındaki bilgilere erişilebilecek genel 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üklediğinde bu API'leri projelerinde otomatik olarak etkinleştirmeyi seçebilirler.

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
sicim
(gerekli)

Google API'sinin adı

Google Cloud API Kitaplığı'ndaki her API'nin genel bakış sayfasında ( örnek ) listelenen Hizmet adı alanına karşılık gelmelidir

reason
sicim
(gerekli)
Uzantının neden bu API'yi kullanması gerektiğinin kısa açıklaması

IAM rolleri

Bu alanlar, uzantının gerektirdiği Cloud IAM rollerini belirtir. Uzantı için sağlanan hizmet hesabına bu roller verilir.

Desteklenen rollerden yalnızca birini belirtebilirsiniz.

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
sicim
(gerekli)

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

Desteklenen rollerden biri olmalıdır

reason
sicim
(gerekli)
Uzantının neden bu rol tarafından verilen erişime ihtiyaç duyduğunun kısa açıklaması
resource
sicim
(isteğe bağlı)

Rolün kapsamını bu kaynakla sınırlayın.

Atlanırsa, varsayılan olarak projects/${project_id} olur. Bkz. Rollerin kapsamını azaltma .

Dış Hizmetler

Bu alanlar, uzantının kullandığı Firebase dışı ve Google dışı hizmetleri (genellikle REST API'leri) belirtir. Firebase Extensions platformu, bu hizmetleri otomatik olarak etkinleştirmeye veya yetkilendirmeyi gerçekleştirmeye yönelik herhangi bir araç sağlamaz.

externalServices:
  - name: Example API
    pricingUri: https://developers.example.com/pricing
  - name: Another Example API
    pricingUri: https://developers.example.com/pricing
Dış hizmet alanları
name
sicim
(gerekli)
Uzantının çalışması için gereken harici hizmetin adı
pricingUri
sicim
(gerekli)
Hizmetin fiyatlandırma bilgilerine yönelik URI

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

Bu alanlar, uzantının kullanıcıların yapılandırmasına sunduğu parametreleri tanımlar.

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
sicim
(gerekli)
Parametrenin adı. Bu adı koddaki parametre değerine başvurmak için kullanırsınız.
label
sicim
(gerekli)
Parametrenin kısa açıklaması. Parametrenin değeri istendiğinde kullanıcıya görüntülenir.
description
sicim
(isteğe bağlı)

Parametrenin ayrıntılı açıklaması. Parametrenin değeri istendiğinde kullanıcıya görüntülenir.

Markdown'ı destekler.

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

Kullanıcının kurulumdan sonra parametrenin değerini değiştirip değiştiremeyeceğini (örneğin, uzantıyı yeniden yapılandırıp yapılandırmayacağını) tanımlar. Varsayılan olarak false .

Not: Uzantınızın dağıtılan işlevleri için bir "konum" parametresi tanımlarsanız bu alanı true olarak ayarlayın.

type
sicim
(isteğe bağlı)
Parametre türü. Özel parametre türlerinin ek gereksinimleri veya farklı kullanıcı arayüzü sunumları olabilir. Aşağıdaki bölümlere bakın.

Seçilebilir ve çoklu seçilebilir parametreler

Seçilebilir ve çoklu seçilebilir parametreler, kullanıcıları önceden tanımlanmış seçenekler listesinden seçim yapmaya yönlendirir.

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
sicim

select veya multiselect

Parametrenin önceden tanımlanmış bir dizi seçenek arasından seçilen bir değer ( select ) veya birkaç değer ( multiselect ) olabileceğini belirtir

options
seçenekler listesi
(gerekli)

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

Seçenek alanları
value
sicim
(gerekli)
Kullanıcının seçebileceği değerlerden biri. Bu, koddaki parametre değerini okuduğunuzda elde ettiğiniz değerdir.
label
sicim
(isteğe bağlı)
Seçilebilir seçeneğin kısa açıklaması. Atlanırsa, varsayılan value olur.

Seçilebilir kaynak parametreleri

Seçilebilir kaynak parametreleri, kullanıcılardan projelerinden bir kaynak (veritabanı örneği, depolama grubu vb.) seçmelerini ister.

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
sicim

selectresource

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

resourceType
sicim
(gerekli)

Kullanıcının seçmesi istenecek kaynak 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 paketleri bir seçim kullanıcı arayüzüne sahiptir (diğer kaynak türleri serbest biçimli metin giriş alanları olarak sunulur).

Gizli parametreler

Kullanıcı tarafından sağlanan gizli değerler (API anahtarları gibi) farklı şekilde işlenir:

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

secret

Parametrenin gizli bir değer olduğunu belirtir

Bulut İşlevi kaynakları

Bu alanlar, bir uzantıya dahil edilen Bulut İşlevlerini bildirir. Kaynak bildirimi sözdizimi, bir uzantıda bir arada bulunabilen 1. nesil ve 2. nesil işlevler arasında biraz farklı görünür.

1. Nesil Bulut İşlevleri

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
sicim
(gerekli)

Dışa aktarılan işlev için kullanıcı dostu ad.

entryPoint özelliğini belirtmezseniz (aşağıya bakın), bu değer, işlevin kaynak kodundaki işlevin adıyla eşleşmelidir.

Dağıtılan işlevin son adı aşağıdaki biçimde olacaktır: ext- extension-instance-id - name .

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

İşlevin uzantı için hangi görevi gerçekleştirdiğinin kısa açıklaması.

properties
(gerekli)

1. nesil Bulut İşlevleri özellikleri. En önemli özellikler aşağıda listelenmiştir ancak tam listeyi Bulut İşlevleri referansında bulabilirsiniz.

Özellikler
location
(isteğe bağlı)

İşlevin dağıtılacağı konum. Varsayılanlar us-central1

entryPoint
(isteğe bağlı)
Uzantının araması gereken, işlevlerinizin kaynak kodunda dışa aktarılan işlevin adı. Yukarıdaki name değerine varsayılandır.
sourceDirectory
(isteğe bağlı)

Kökünde package.json dosyanızı içeren dizin. İşlevlerinizin kaynak kodunun dosyası bu dizinde olmalıdır. functions varsayılanları

Not: package.json dosyasının main alanı, işlevlerinizin kaynak koduna ilişkin dosyayı belirtir ( index.js gibi).

timeout
(isteğe bağlı)

Fonksiyonun maksimum yürütme süresi.

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

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

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

İşlev için çalışma zamanı ortamı.

httpsTrigger
veya
eventTrigger
veya
scheduleTrigger
veya
taskQueueTrigger
(bu işlev tetikleyici türlerinden biri gereklidir)
Her tetikleyici türüne ilişkin belirli bilgiler için bir uzantı için Yazma Bulut İşlevleri'ne bakın.

2. Nesil Bulut İşlevleri

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
sicim
(gerekli)

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

entryPoint özelliğini belirtmezseniz (aşağıya bakın), bu değer, işlevin kaynak kodundaki işlevin adıyla eşleşmelidir.

Dağıtılan işlevin son adı aşağıdaki biçimde olacaktır: ext- extension-instance-id - name .

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

İşlevin uzantı için hangi görevi gerçekleştirdiğinin kısa açıklaması.

properties
(gerekli)

2. nesil Cloud Functions özellikleri. En önemli özellikler aşağıda listelenmiştir ancak tam listeyi Bulut İşlevleri referansında bulabilirsiniz.

Özellikler
location
(isteğe bağlı)

İşlevin dağıtılacağı konum. Varsayılanlar us-central1

sourceDirectory
(isteğe bağlı)

Kökünde package.json dosyanızı içeren dizin. İşlevlerinizin kaynak kodunun dosyası bu dizinde olmalıdır. functions varsayılanları

Not: package.json dosyasının main alanı, işlevlerinizin kaynak koduna ilişkin dosyayı belirtir ( index.js gibi).

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

buildConfig özellikleri
buildConfig.runtime
(tavsiye edilen)

İşlev için çalışma zamanı ortamı.

buildConfig.entryPoint
(isteğe bağlı)
Uzantının araması gereken, işlevlerinizin kaynak kodunda dışa aktarılan işlevin adı. Yukarıdaki name değerine varsayılandır.
serviceConfig özellikleri
serviceConfig.timeoutSeconds
(isteğe bağlı)

Fonksiyonun 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ılabilir bellek miktarı. Varsayılan 256M . Desteklenen birimler k , M , G , Mi , Gi . Hiçbir birim sağlanmazsa değer bayt olarak yorumlanır.
eventTrigger özellikleri
eventTrigger.eventType
(gerekli)
Dinlenecek etkinlik türü. Her ürün için mevcut olay türlerine yönelik bir uzantı için Yazma Bulut İşlevleri'ne bakın.
eventTrigger.eventFilters
(isteğe bağlı)
Dinlenecek etkinlikleri daha da sınırlayan filtreler. Örneğin, yalnızca belirli bir kaynak modeliyle eşleşen etkinlikleri dinleyebilirsiniz. Her olay türünün filtrelenmesine ilişkin bilgi için bir uzantı için Yazma Bulut İşlevleri'ne bakın.
eventTrigger.channel
(isteğe bağlı)
Tetikleyiciyle ilişkili kanalın projects/{project}/locations/{location}/channels/{channel} biçimindeki adı. Bu özelliği atlarsanız işlev, projenin varsayılan kanalındaki olayları dinleyecektir.
eventTrigger.triggerRegion
(isteğe bağlı)
Tetikleyici yalnızca bu bölgeden kaynaklanan etkinlikleri alacaktır. İşlevle aynı bölge, farklı bir bölge veya çoklu bölge ya da küresel bölge olabilir. Sağlanmazsa, varsayılan olarak işlevle aynı bölgeye ayarlanır.

Yaşam döngüsü etkinlikleri

Yaşam döngüsü etkinlikleri, bir kullanıcı uzantınızın bir örneğini yüklediğinde, güncellediğinde veya yapılandırdığında çalışacak işlevleri belirtmenize olanak tanır. Uzantınızın yaşam döngüsü olaylarını yönetme konusuna bakı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ü olay alanları
onInstall
(isteğe bağlı)

Kullanıcı uzantıyı yüklediğinde çalışan işlevi belirtir.

Fonksiyon spesifikasyonu
function
sicim
(gerekli)

Olayı işleyecek görev kuyruğuyla tetiklenen işlevin adı.

Bu işlev resources bölümünde bildirilmeli ve görev kuyruğu tanımlandı.

processingMessage
sicim
(gerekli)
Görev devam ederken Firebase konsolunda görüntülenecek mesaj.
onUpdate
(isteğe bağlı)

Bir kullanıcı uzantıyı güncellediğinde çalışan bir işlevi belirtir.

Fonksiyon spesifikasyonu
function
sicim
(gerekli)

Olayı işleyecek görev kuyruğuyla tetiklenen işlevin adı.

Bu işlev resources bölümünde bildirilmeli ve görev kuyruğu tanımlandı.

processingMessage
sicim
(gerekli)
Görev devam ederken Firebase konsolunda görüntülenecek mesaj.
onConfigure
(isteğe bağlı)

Kullanıcı uzantıyı yeniden yapılandırdığında çalışan işlevi belirtir.

Fonksiyon spesifikasyonu
function
sicim
(gerekli)

Olayı işleyecek görev kuyruğuyla tetiklenen işlevin adı.

Bu işlev resources bölümünde bildirilmeli ve görev kuyruğu tanımlandı.

processingMessage
sicim
(gerekli)
Görev devam ederken Firebase konsolunda görüntülenecek mesaj.

Özel etkinlikler (Eventarc)

Özel etkinlikler, kullanıcıların uzantınıza kendi mantıklarını eklemelerine olanak sağlamak için uzantınızın yayınladığı etkinliklerdir. Bir uzantıya kullanıcı kancaları ekleme bölümündeki Eventarc bölümüne bakın.

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
sicim
(gerekli)
Olayın tür tanımlayıcısı. Tanımlayıcıyı 3-4 noktayla ayrılmış alandan oluşturun: yayıncı kimliği, uzantı adı ve etkinlik adı alanları gereklidir; sürüm alanı önerilir. Yayınladığınız her etkinlik türü için benzersiz ve açıklayıcı bir etkinlik adı seçin.
description
sicim
(gerekli)
Etkinliğin açıklaması.