Parameter sind der Mechanismus, mit dem ein Nutzer jede installierte Instanz einer Erweiterung anpasst. Parameter sind wie die Umgebungsvariablen für eine Erweiterung. Die Werte für Parameter können entweder automatisch ausgefüllt (von Firebase nach der Installation bereitgestellt) oder vom Nutzer konfiguriert (vom Nutzer während der Installation angegeben) werden.
Diese Parameter können Sie im Quellcode der Funktionen Ihrer Erweiterung, in der Datei extension.yaml und in der Datei POSTINSTALL.md referenzieren. So verweisen Sie auf einen Parameter namens PARAMETER_NAME:
Verwenden Sie im Quellcode Ihrer Funktionen das
params-Modul (z. B.params.defineInt("PARAMETER_NAME")) oderprocess.env.PARAMETER_NAME.Verwenden Sie in
extension.yamlundPOSTINSTALL.md${param:PARAMETER_NAME}.Nach der Installation wird in der Firebase-Konsole der Inhalt der Datei
POSTINSTALL.mdangezeigt und alle Parameterverweise werden mit den tatsächlichen Werten für die installierte Instanz ausgefüllt.
Automatisch eingefügte Parameter
Jede installierte Instanz einer Erweiterung hat automatisch Zugriff auf mehrere von Firebase bereitgestellte Standardparameter, die automatisch ausgefüllt werden (siehe Tabelle unten). Diese Parameterwerte sind entweder die Standardwerte für das Firebase-Projekt (z. B. der Standard-Storage-Bucket) oder sie sind erweiterungsspezifisch (z. B. die Instanz-ID der Erweiterung).
Alle automatisch eingefügten Parameterwerte sind unveränderlich. Sie werden beim Erstellen des Projekts oder beim Installieren der Erweiterung festgelegt.
Obwohl Firebase diese Parameterwerte für die Erweiterung automatisch einfügt, werden die zugehörigen Produkte für den Nutzer während der Installation nicht automatisch bereitgestellt. Der Nutzer, der die Erweiterung installiert, muss die zugehörigen und anwendbaren Produkte vor der Installation in seinem Projekt aktivieren. Wenn Ihre Erweiterung beispielsweise Cloud Firestore umfasst, muss der Nutzer Cloud Firestore in seinem Projekt einrichten. Wir empfehlen, Ihre Nutzer in der Datei PREINSTALL.md über diese Anforderungen zu informieren.
| Referenz für automatisch ausgefüllte Parameter | Beschreibung | Parameterwert (von Firebase bereitgestellt) |
|---|---|---|
| Parameter mit Standardwerten aus dem Firebase-Projekt | ||
PROJECT_ID |
Eindeutige Kennung für das Firebase-Projekt, in dem die Erweiterung installiert ist |
Allgemeines Format:
Beispielwert: |
DATABASE_URL |
Die Standard-URL der Realtime Database-Instanz des Firebase-Projekts |
Allgemeines Format:
Beispielwert: |
DATABASE_INSTANCE |
Der Standardname der Realtime Database-Instanz des Firebase-Projekts In der Regel entspricht dieser Wert der Projekt-ID oder endet auf |
Allgemeines Format:
Beispielwert: |
STORAGE_BUCKET |
Der Standardname des Cloud Storage-Buckets des Firebase-Projekts |
Allgemeines Format:
Beispielwert: |
| Parameter mit Standardwert aus der Erweiterungsinstallation | ||
EXT_INSTANCE_ID |
Eindeutige Kennung für die installierte Erweiterungsinstanz Dieser Wert wird aus dem Feld |
Allgemeines Format für die erste installierte Instanz (wird automatisch von Firebase zugewiesen und kann während der Installation nicht vom Nutzer geändert werden):
Beispielwert: Allgemeines Format für die zweite und alle weiteren installierten Instanzen (wird automatisch von Firebase zugewiesen; kann während der Installation vom Nutzer geändert werden):
Beispielwert: |
Vom Nutzer konfigurierte Parameter
Damit Nutzer jede installierte Instanz einer Erweiterung anpassen können, können Sie sie bitten, während der Installation Parameterwerte anzugeben. Wenn Sie diese Werte anfordern möchten, richten Sie die Aufforderungen im Abschnitt params Ihrer extension.yaml-Datei ein.
Hier ist ein Beispiel für einen params-Abschnitt, gefolgt von einer Tabelle, in der alle verfügbaren Parameterfelder beschrieben werden.
# 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
Verwenden Sie im Abschnitt params der Datei extension.yaml die folgenden Felder, um einen benutzerdefinierten Parameter zu definieren:
| Feld | Typ | Beschreibung | ||||
|---|---|---|---|---|---|---|
param(erforderlich) |
String | Name des Parameters | ||||
label(erforderlich) |
String |
Kurze Beschreibung des Parameters Wird dem Nutzer angezeigt, wenn er zur Eingabe des Parameterwerts aufgefordert wird. |
||||
description(optional) |
String |
Detaillierte Beschreibung des Parameters Wird dem Nutzer angezeigt, wenn er zur Eingabe des Parameterwerts aufgefordert wird. Unterstützt Markdown | ||||
type(optional) |
String |
Eingabemechanismus, mit dem der Nutzer den Wert des Parameters festlegt (z. B. Text direkt eingeben oder aus einer Drop-down-Liste auswählen) Gültige Werte sind:
Wenn dieses Feld weggelassen wird, wird der Parameter standardmäßig auf |
||||
options(erforderlich, wenn der Parameter type select oder multiSelect ist)
|
list |
Liste der Werte, aus denen der Nutzer auswählen kann Fügen Sie die Felder
Das Feld |
||||
resourceType(erforderlich, wenn der Parameter type den Wert selectResource hat)
|
String |
Der Typ der Firebase-Ressource, die der Nutzer auswählen soll. Derzeit unterstützen nur Cloud Storage-Buckets Ressourcenauswahlen:
Unbekannte |
||||
example(optional) |
String |
Beispielwert für den Parameter |
||||
validationRegex(optional) (gilt nur, wenn der Parameter type den Wert string hat)
|
String |
Regex-String zur Validierung des vom Nutzer konfigurierten Werts des Parameters Der reguläre Ausdruck wird mit der Go-Bibliothek RE2 kompiliert. Weitere Informationen zur Validierung finden Sie unten im Abschnitt Validierung und Fehlermeldungen. |
||||
validationErrorMessage(optional) |
String |
Fehlermeldung, die angezeigt wird, wenn die Weitere Informationen zu Fehlermeldungen finden Sie unten im Abschnitt Validierung und Fehlermeldungen. |
||||
default(optional) |
String |
Standardwert für den Parameter, wenn der Nutzer den Wert des Parameters leer lässt Falls zutreffend, können Sie für den Wert |
||||
required(optional) |
boolean |
Definiert, ob der Nutzer einen leeren String senden kann, wenn er zur Eingabe des Parameterwerts aufgefordert wird Wenn |
||||
immutable(optional) |
boolean |
Definiert, ob der Nutzer den Wert des Parameters nach der Installation ändern kann (z. B. wenn er die Erweiterung neu konfiguriert) Wenn
Hinweis: Wenn Sie einen „location“-Parameter für die bereitgestellten Funktionen Ihrer Erweiterung definieren, sollten Sie dieses |
Validierung und Fehlermeldungen für vom Nutzer konfigurierte Werte
Wenn Sie einen Parameter mit dem type string einrichten, müssen Sie über das Feld validationRegex des Parameters eine entsprechende Regex-Validierung definieren.
Außerdem ist für viele Erweiterungen ein häufig angeforderter Parameterwert ein Datenbankpfad oder ein Cloud Storage-Bucket. Beachten Sie, dass der Dienst Extensions bei der Installation, Neukonfiguration oder Aktualisierung die folgenden Werte zum Zeitpunkt der Eingabe des Parameterwerts nicht validiert:
- Ob die angegebene Datenbank oder der Cloud Storage-Bucket im Firebase-Projekt des Nutzers eingerichtet ist
- Ob der angegebene Datenbankpfad in der Datenbank des Nutzers vorhanden ist
Wenn die Erweiterung jedoch ihre Ressourcen bereitstellt, wird in der Firebase-Konsole oder der Firebase-Befehlszeile eine Fehlermeldung angezeigt, wenn die referenzierte Datenbank oder der Cloud Storage-Bucket noch nicht im Projekt eingerichtet ist.
Wir empfehlen dringend, Nutzer in der Datei PREINSTALL über diese Anforderungen zu informieren, damit die Erweiterung erfolgreich installiert wird und wie erwartet funktioniert.
Systemparameter
Systemparameter steuern die grundlegende Konfiguration der Ressourcen einer Erweiterung. Da sie zur Steuerung der Ressourcenkonfiguration dienen, sind sie nicht als Umgebungsvariablen in Ihrem Funktionscode zugänglich.
Normalerweise müssen Sie für diese Parameter in extension.yaml nichts deklarieren.
Sie werden automatisch für jede Erweiterungsinstanz definiert und Nutzer können bei der Installation der Erweiterung benutzerdefinierte Werte festlegen.
Wenn Ihre Erweiterung jedoch spezielle Ressourcenanforderungen hat, können Sie in extension.yaml bestimmte Werte auf Ressourcenebene festlegen.
Diese ressourcenspezifischen Konfigurationseinstellungen überschreiben die instanzweiten Einstellungen der Erweiterung des Nutzers.
Beispiel:
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
Folgende Systemparameter sind verfügbar:
| Name | Label (lesbar) | Zugehöriges Feld in properties |
Beschreibung |
|---|---|---|---|
| firebaseextensions.v1beta.function/location | Standort | location |
In welcher Region soll Cloud Functions bereitgestellt werden? |
| firebaseextensions.v1beta.function/memory | Gemerkte Informationen zu Funktionen | memory |
Wie viele Megabyte Arbeitsspeicher sollen jeder Funktion zugewiesen werden? |
| firebaseextensions.v1beta.function/timeoutSeconds | Zeitlimit für Funktion | timeout |
Wie viele Sekunden sollen Funktionen ausgeführt werden, bevor das Zeitlimit überschritten wird? |
| firebaseextensions.v1beta.function/vpcConnectorEgressSettings | Ausgehender Traffic über VPC-Connector | vpcConnectorEgressSettings |
Steuert ausgehenden Traffic, wenn ein VPC-Connector konfiguriert ist |
| firebaseextensions.v1beta.function/vpcConnector | VPC-Connector | vpcConnector |
Verbindet Cloud Functions mit dem angegebenen VPC-Connector. |
| firebaseextensions.v1beta.function/minInstances | Mindestanzahl von Funktionsinstanzen | minInstances |
Die Mindestanzahl von Instanzen dieser Funktion, die gleichzeitig ausgeführt werden sollen |
| firebaseextensions.v1beta.function/maxInstances | Maximale Anzahl von Funktionsinstanzen | maxInstances |
Die maximale Anzahl von Instanzen dieser Funktion, die gleichzeitig ausgeführt werden können |
| firebaseextensions.v1beta.function/ingressSettings | Einstellungen für eingehenden Traffic | ingressSettings |
Steuert, von wo eingehender Traffic akzeptiert wird |
| firebaseextensions.v1beta.function/labels | Labels | labels |
Labels, die auf alle Ressourcen in der Erweiterung angewendet werden sollen |