Mithilfe von Parametern können Nutzer jede installierte Instanz einer Erweiterung anpassen. 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.
Sie können auf diese Parameter im Quellcode der Funktionen, in der extension.yaml
-Datei und in der POSTINSTALL.md
-Datei Ihrer Erweiterung verweisen. So verweisen Sie auf einen Parameter namens PARAMETER_NAME
:
Verwenden Sie im Quellcode Ihrer Funktion das
params
-Modul (z. B.params.defineInt("PARAMETER_NAME")
) oderprocess.env.PARAMETER_NAME
.Verwende innerhalb von
extension.yaml
undPOSTINSTALL.md
${param:PARAMETER_NAME}
.Nach der Installation wird in der Firebase-Konsole der Inhalt der Datei
POSTINSTALL.md
angezeigt und alle Parameterverweise werden mit den tatsächlichen Werten für die installierte Instanz ausgefüllt.
Automatisch ausgefüllte Parameter
Jede installierte Instanz einer Erweiterung hat automatisch Zugriff auf mehrere standardmäßige, automatisch ausgefüllte Parameter von Firebase (siehe Tabelle unten). Diese Parameterwerte sind entweder die Standardwerte für das Firebase-Projekt (z. B. der Standardspeicher-Bucket) oder erweiterungsspezifisch (z. B. die Instanz-ID der Erweiterung).
Alle automatisch ausgefüllten Parameterwerte sind unveränderlich. Sie werden beim Erstellen des Projekts oder bei der Installation der Erweiterung festgelegt.
Auch wenn Firebase diese Parameterwerte für die Erweiterung automatisch einfügt, werden die zugehörigen Produkte während der Installation nicht automatisch für den Nutzer bereitgestellt. Der Nutzer, der die Erweiterung installiert, muss die zugehörigen und anwendbaren Produkte in seinem Projekt vor der Installation aktivieren. Wenn Ihre Erweiterung beispielsweise Cloud Firestore enthält, muss der Nutzer Cloud Firestore in seinem Projekt einrichten. Wir empfehlen Ihnen, 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-Realtime Database-Instanz-URL des Firebase-Projekts |
Generelles Format:
Beispielwert: |
DATABASE_INSTANCE |
Der Standardname Realtime Database der Instanz des Firebase-Projekts Normalerweise 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 Installation der Erweiterung | ||
EXT_INSTANCE_ID |
Eindeutige Kennung für die installierte Erweiterungs-Instanz Dieser Wert wird aus dem in der Datei |
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: Verallgemeinertes Format für die zweite und weitere installierte Instanz (wird automatisch von Firebase zugewiesen; kann vom Nutzer während der Installation geändert werden):
Beispielwert: |
Vom Nutzer konfigurierte Parameter
Wenn Sie einem Nutzer die Möglichkeit geben möchten, jede installierte Instanz einer Erweiterung anzupassen, können Sie ihn bitten, während der Installation Parameterwerte anzugeben. Wenn Sie diese Werte anfordern möchten, richten Sie die Prompts im Abschnitt params
der Datei extension.yaml
ein.
Hier sehen Sie ein Beispiel für einen params
-Abschnitt, gefolgt von einer Tabelle mit allen verfügbaren Parameterfeldern.
# 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 nach dem Wert des Parameters gefragt wird. |
||||
description (optional) |
String |
Ausführliche Beschreibung des Parameters Wird dem Nutzer angezeigt, wenn er nach dem Wert des Parameters gefragt wird. Unterstützt Markdown | ||||
type (optional) |
String |
Eingabemechanismus, mit dem der Nutzer den Wert des Parameters festlegt (z. B. direkte Texteingabe oder Auswahl aus einer Drop-down-Liste) Gültige Werte sind:
Wenn Sie dieses Feld weglassen, wird standardmäßig |
||||
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 selectResource ist)
|
String |
Der Typ der Firebase-Ressource, die der Nutzer auswählen soll. Derzeit werden nur Cloud Storage-Buckets mit Ressourcenelektoren unterstützt:
Unbekannte |
||||
example (optional) |
String |
Beispielwert für den Parameter |
||||
validationRegex (optional) (gilt nur, wenn der Parameter type string ist)
|
String |
Regulärer Ausdruck für die Validierung des vom Nutzer konfigurierten Werts des Parameters Regex wird mit der Go-Bibliothek RE2 kompiliert. Weitere Informationen zur Überprüfung finden Sie unten unter Bestätigung und Fehlermeldungen. |
||||
validationErrorMessage (optional) |
String |
Fehlermeldung, die angezeigt wird, wenn Weitere Informationen zu Fehlermeldungen finden Sie unten unter Bestätigung 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 |
Gibt an, ob der Nutzer einen leeren String einreichen kann, wenn er nach dem Wert des Parameters gefragt wird. Wenn |
||||
immutable (optional) |
boolean |
Gibt an, ob der Nutzer den Wert des Parameters nach der Installation ändern kann (z. B. wenn er die Erweiterung neu konfiguriert). Wenn
Hinweis:Wenn Sie für die bereitgestellten Funktionen Ihrer Erweiterung einen Parameter „location“ definieren, sollten Sie dieses |
Validierung und Fehlermeldungen für vom Nutzer konfigurierte Werte
Wenn Sie einen Parameter mit der type
von string
einrichten, müssen Sie über das Feld validationRegex
des Parameters eine geeignete reguläre Ausdrucksvalidierung definieren.
Bei vielen Erweiterungen ist ein häufig angeforderter Parameterwert ein Datenbankpfad oder ein Cloud Storage-Bucket. Beachten Sie, dass der Extensions-Dienst bei der Installation, Neukonfiguration oder Aktualisierung die folgenden Werte nicht beim Eingeben des Parameterwerts validiert:
- Ob die angegebene Datenbank oder der angegebene 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 Console oder in 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 PREINSTALL
-Datei über diese Anforderungen zu informieren, damit die Erweiterung bei der Installation erfolgreich installiert wird und wie erwartet funktioniert.
Systemparameter
Systemparameter steuern die grundlegende Konfiguration der Ressourcen einer Erweiterung. Da sie die Ressourcenkonfiguration steuern sollen, sind sie nicht als Umgebungsvariablen im Funktionscode zugänglich.
Normalerweise müssen Sie für diese Parameter in extension.yaml
nichts deklarieren.
Sie werden automatisch für jede Erweiterungs-Instanz definiert. Nutzer können beim Installieren Ihrer Erweiterung benutzerdefinierte Werte festlegen.
Wenn Ihre Erweiterung jedoch spezielle Ressourcenanforderungen hat, können Sie in extension.yaml
bestimmte Werte pro Ressource festlegen.
Diese konfigurationsspezifischen Einstellungen für Ressourcen überschreiben die sitzungsweiten 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 für Menschen) | Entsprechendes Feld in properties |
Beschreibung |
---|---|---|---|
firebaseextensions.v1beta.function/location | Standort | location |
In welcher Region sollten Cloud Functions bereitgestellt werden? |
firebaseextensions.v1beta.function/memory | Funktionsspeicher | memory |
Wie viel Arbeitsspeicher in Megabyte sollte jeder Funktion zugewiesen werden? |
firebaseextensions.v1beta.function/timeoutSeconds | Zeitlimit für Funktion | timeout |
Wie lange sollen Funktionen laufen, bevor eine Zeitüberschreitung eintritt? |
firebaseextensions.v1beta.function/vpcConnectorEgressSettings | Ausgehender 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 |
Hier wird festgelegt, von wo aus eingehender Traffic akzeptiert wird. |
firebaseextensions.v1beta.function/labels | Labels | labels |
Labels, die auf alle Ressourcen in der Erweiterung angewendet werden sollen |