Les paramètres sont le mécanisme grâce auquel un utilisateur personnalise chaque instance d'une extension. Les paramètres sont comme les variables d'environnement d'une extension. Les valeurs des paramètres peuvent être renseigné automatiquement (fourni par Firebase après installation) ou configurée par l'utilisateur (spécifiée par l'utilisateur pendant l'installation).
Vous pouvez vous référer à ces paramètres dans les
le code source des fonctions, votre fichier extension.yaml
et votre POSTINSTALL.md
. Voici la syntaxe permettant de référencer un paramètre appelé
PARAMETER_NAME
:
Dans le code source de vos fonctions, utilisez la fonction Module
params
(par exemple,params.defineInt("PARAMETER_NAME")
) ouprocess.env.PARAMETER_NAME
.Dans
extension.yaml
etPOSTINSTALL.md
, utilisez${param:PARAMETER_NAME}
Après l'installation, la console Firebase affiche le contenu du
POSTINSTALL.md
et renseigne toutes les références de paramètres avec la méthode actual pour l'instance installée.
Paramètres renseignés automatiquement
Chaque instance installée d'une extension a automatiquement accès à plusieurs les paramètres renseignés automatiquement par défaut par Firebase (consultez le tableau ci-dessous). Ces valeurs de paramètre correspondent aux valeurs par défaut du projet Firebase (comme le bucket de stockage par défaut) ou sont spécifiques à l'extension (comme l'ID d'instance de l'extension).
Toutes les valeurs de paramètres renseignées automatiquement sont immuables. Elles sont définies au moment de création de projet ou d'installation d'extensions.
Même si Firebase renseigne automatiquement ces valeurs de paramètre pour l'extension,
Firebase ne provisionne pas automatiquement les produits associés pour l'utilisateur
l'installation. L'utilisateur qui installe l'extension doit activer les fonctionnalités
et le(s) produit(s) applicable(s) à leur projet avant l'installation. Par exemple, si
votre extension implique Cloud Firestore, l'utilisateur doit
configuré Cloud Firestore dans son
projet. Nous vous recommandons d'informer vos utilisateurs de ces exigences dans le fichier PREINSTALL.md
.
Référence pour le paramètre renseigné automatiquement | Description | Valeur de paramètre (fournie par Firebase) |
---|---|---|
Paramètres avec valeurs par défaut du projet Firebase | ||
PROJECT_ID |
Identifiant unique du projet Firebase dans lequel l'extension est installé |
Format généralisé:
Exemple de valeur: |
DATABASE_URL |
URL de l'instance Realtime Database par défaut du projet Firebase |
Format généralisé:
Exemple de valeur: |
DATABASE_INSTANCE |
Nom de l'instance Realtime Database par défaut du projet Firebase Généralement, cette valeur est identique à l'ID du projet ou se termine par
|
Format généralisé:
Exemple de valeur: |
STORAGE_BUCKET |
Nom du bucket Cloud Storage par défaut du projet Firebase |
Format généralisé :
Exemple de valeur: |
Paramètre avec la valeur par défaut issue de l'installation de l'extension | ||
EXT_INSTANCE_ID |
Identifiant unique de l'instance de l'extension installée Cette valeur est générée à partir du
|
Format généralisé pour la première instance installée (attribution automatique
par Firebase ; ne peuvent pas être modifiées par l'utilisateur pendant l'installation):
Exemple de valeur: Format généralisé pour la 2e instance installée et les versions ultérieures
(attribué automatiquement par Firebase ; peut être modifié par l'utilisateur)
pendant l'installation):
Exemple de valeur: |
Paramètres configurés par l'utilisateur
Pour permettre à un utilisateur de personnaliser chaque instance installée d'une extension, vous pouvez lui demander de spécifier des valeurs de paramètre lors de l'installation. Pour demander ces valeurs, vous devez configurer les invites dans la section params
de votre fichier extension.yaml
.
Voici un exemple de section params
, suivi d'un tableau décrivant tous les éléments disponibles
de paramètres.
# 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
Dans la section params
de votre fichier extension.yaml
, utilisez les champs suivants :
pour définir un paramètre configuré par l'utilisateur:
Champ | Type | Description | ||||
---|---|---|---|---|---|---|
param (obligatoire) |
chaîne | Nom du paramètre | ||||
label (obligatoire) |
chaîne |
Brève description du paramètre est affiché lorsque l'utilisateur est invité à saisir l'identifiant valeur |
||||
description (facultatif) |
chaîne |
Description détaillée du paramètre est affiché lorsque l'utilisateur est invité à saisir l'identifiant valeur Compatible avec le format Markdown | ||||
type (facultatif) |
chaîne |
Mécanisme d'entrée pour la manière dont l'utilisateur définit la valeur du paramètre (par par exemple, saisissez du texte directement ou sélectionnez-le dans la liste déroulante) Les valeurs valides sont les suivantes:
Si ce champ est omis, la valeur par défaut du paramètre est |
||||
options (obligatoire si le paramètre type est défini)
est select ou multiSelect )
|
list |
Liste des valeurs que l'utilisateur peut sélectionner Incluez les champs
Le champ |
||||
resourceType (obligatoire si le paramètre type est défini)
est selectResource )
|
chaîne |
Type de ressource Firebase que l'utilisateur doit sélectionner. Actuellement, seuls les buckets Cloud Storage sont compatibles avec les sélecteurs de ressources:
Les valeurs |
||||
example (facultatif) |
chaîne |
Exemple de valeur pour le paramètre |
||||
validationRegex (facultatif) (applicable uniquement lorsque le paramètre type est
string )
|
chaîne |
Chaîne d'expression régulière pour la validation de la valeur du paramètre configurée par l'utilisateur Les expressions régulières sont compilées à l'aide de la bibliothèque Go: RE2 Pour en savoir plus sur la validation, consultez Validation et erreurs message ci-dessous. |
||||
validationErrorMessage (facultatif) |
chaîne |
Message d'erreur à afficher si la
Pour en savoir plus sur les messages d'erreur, consultez Validation et erreurs message ci-dessous. |
||||
default (facultatif) |
chaîne |
Valeur par défaut du paramètre si l'utilisateur quitte le paramètre valeur vide Le cas échéant, vous pouvez spécifier une
valeur de paramètre renseigné automatiquement
pour la valeur |
||||
required (facultatif) |
booléen |
Définit si l'utilisateur peut envoyer une chaîne vide lorsqu'il vous êtes invité à saisir la valeur du paramètre Si |
||||
immutable (facultatif) |
booléen |
Détermine si l'utilisateur peut modifier la valeur du paramètre après installation (par exemple, s'ils reconfigurer l'extension) Si
Remarque:Si vous définissez un
"lieu"
pour les fonctions déployées de votre extension,
vous devez inclure ce champ |
Validation et messages d'erreur pour les valeurs configurées par l'utilisateur
Lorsque vous configurez un paramètre avec le type
de string
, vous devez définir
la validation d'expression régulière appropriée via la méthode
validationRegex
.
De plus, pour de nombreuses extensions, une valeur de paramètre couramment demandée est une base de données chemin d'accès ou bucket Cloud Storage. Notez que lors de l'installation, de la reconfiguration ou de la mise à jour, le service Extensions ne valide pas les éléments suivants au moment de la saisie de la valeur du paramètre :
- Si la base de données spécifiée ou le bucket Cloud Storage est configuré dans le projet Firebase de l'utilisateur
- Indique si le chemin d'accès à la base de données spécifié existe dans la base de données de l'utilisateur
Toutefois, lorsque l'extension déploie réellement ses ressources, La console Firebase ou la CLI Firebase affichent un message d'erreur si la base de données référencée ou le bucket Cloud Storage n'est pas encore configuré dans le projet.
Nous vous recommandons vivement d'informer les utilisateurs de ces exigences dans le fichier PREINSTALL
afin qu'ils puissent installer votre extension et qu'elle fonctionne comme prévu.
Paramètres système
Les paramètres système contrôlent la configuration de base des ressources d'une extension. Puisqu'ils sont destinés à contrôler la configuration des ressources, elles ne sont pas accessibles en tant que variables d'environnement depuis le code de votre fonction.
Normalement, vous n'avez pas besoin de déclarer quoi que ce soit pour ces paramètres dans
extension.yaml
Elles sont automatiquement définies
pour chaque instance d'extension,
Les utilisateurs ont la possibilité de définir des valeurs personnalisées lorsqu'ils installent votre
.
Toutefois, si votre extension a des besoins spécifiques en ressources,
vous pouvez définir des valeurs spécifiques au niveau de chaque ressource dans extension.yaml
.
Ces paramètres de configuration par ressource remplacent l'extension de l'utilisateur
des paramètres à l'échelle de l'instance.
Exemple :
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
Les paramètres système disponibles sont les suivants:
Nom | Libellé (lisible par l'utilisateur) | Champ correspondant dans properties |
Description |
---|---|---|---|
firebaseextensions.v1beta.function/location | Emplacement | location |
Dans quelle région Cloud Functions doit-il être déployé ? |
firebaseextensions.v1beta.function/memory | Mémoire de la fonction | memory |
Combien de mégaoctets de mémoire doivent être alloués à chaque fonction ? |
firebaseextensions.v1beta.function/timeoutSeconds | Délai avant expiration de la fonction | timeout |
Combien de secondes les fonctions doivent-elles exécuter avant d'expirer ? |
firebaseextensions.v1beta.function/vpcConnectorEgressSettings | Sortie du connecteur VPC | vpcConnectorEgressSettings |
Contrôle le trafic sortant lorsqu'un connecteur VPC est configuré |
firebaseextensions.v1beta.function/vpcConnector | Connecteur VPC | vpcConnector |
Connecte des fonctions Cloud Functions au connecteur VPC spécifié. |
firebaseextensions.v1beta.function/minInstances | Nombre minimal d'instances de fonction | minInstances |
Nombre minimal d'instances de cette fonction à exécuter en même temps |
firebaseextensions.v1beta.function/maxInstances | Nombre maximum d'instances de fonction | maxInstances |
Nombre maximal d'instances de cette fonction à exécuter simultanément |
firebaseextensions.v1beta.function/ingressSettings | Paramètres d'entrée | ingressSettings |
Contrôle la provenance du trafic entrant |
firebaseextensions.v1beta.function/labels | Étiquettes | labels |
Étiquettes à appliquer à toutes les ressources de l'extension |