Les paramètres sont le mécanisme par lequel un utilisateur personnalise chaque instance installée d'une extension. Les paramètres sont semblables aux variables d'environnement d'une extension. Les valeurs des paramètres peuvent être renseignées automatiquement (fournies par Firebase après l'installation) ou configurées par l'utilisateur (spécifiées par l'utilisateur lors de l'installation).
Vous pouvez référencer ces paramètres dans le code source des fonctions de votre extension
, dans votre fichier extension.yaml et dans votre fichier POSTINSTALL.md. Voici la syntaxe permettant de référencer un paramètre appelé
PARAMETER_NAME :
Dans le code source de vos fonctions, utilisez le
paramsmodule (par exemple,params.defineInt("PARAMETER_NAME")) ouprocess.env.PARAMETER_NAME.Dans
extension.yamletPOSTINSTALL.md, utilisez${param:PARAMETER_NAME}.Après l'installation, la Firebase console affiche le contenu du
POSTINSTALL.mdfichier et renseigne toutes les références de paramètres avec les valeurs réelles de l'instance installée.
Paramètres renseignés automatiquement
Chaque instance installée d'une extension a automatiquement accès à plusieurs paramètres renseignés automatiquement par défaut et fournis par Firebase (voir le tableau ci-dessous). Ces valeurs de paramètres sont soit les valeurs par défaut du projet Firebase (comme le bucket Storage par défaut), soit 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 la création du projet ou de l'installation de l'extension.
Même si Firebase renseigne automatiquement ces valeurs de paramètres pour l'extension,
Firebase ne provisionne pas automatiquement les produits associés pour l'utilisateur lors de l'
installation. L'utilisateur qui installe l'extension doit activer le ou les produits associés
et applicables dans son projet avant l'installation. Par exemple, si
votre extension implique Cloud Firestore, l'utilisateur doit
configurer Cloud Firestore dans son
projet. Nous vous recommandons d'informer vos utilisateurs de ces exigences dans
le PREINSTALL.md
fichier.
| Référence du paramètre renseigné automatiquement | Description | Valeur du paramètre (fournie par Firebase) |
|---|---|---|
| Paramètres avec des valeurs par défaut provenant du projet Firebase | ||
PROJECT_ID |
Identifiant unique du projet Firebase dans lequel l'extension est installée |
Format généralisé :
Exemple de valeur: |
DATABASE_URL |
URL de l'instance par défaut Realtime Database du projet Firebase |
Format généralisé :
Exemple de valeur : |
DATABASE_INSTANCE |
Nom de l'instance par défaut Realtime Database du projet Firebase En règle générale, 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 une valeur par défaut provenant de l'installation de l'extension | ||
EXT_INSTANCE_ID |
Identifiant unique de l'instance d'extension installée Cette valeur est générée à partir du
|
Format généralisé pour la première instance installée (attribuée automatiquement
par Firebase ; ne peut pas être modifiée par l'utilisateur lors de l'installation) :
Exemple de valeur: Format généralisé pour la deuxième instance installée et les suivantes
(attribué automatiquement par Firebase ; peut être modifié par l'utilisateur
lors de l'installation) :
Exemple de valeur : |
Paramètres définis 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ètres lors de l'installation. Pour demander ces
valeurs, vous configurez les invites dans la section params de votre extension.yaml
fichier.
Voici un exemple de section params, suivi d'un tableau décrivant tous les champs de paramètres disponibles.
# 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 défini par l'utilisateur :
| Champ | Type | Description | ||||
|---|---|---|---|---|---|---|
param(required) |
chaîne | Nom du paramètre | ||||
label(required) |
chaîne |
Brève description du paramètre Affichée à l'utilisateur lorsqu'il est invité à saisir la valeur du paramètre |
||||
description(optional) |
chaîne |
Description détaillée du paramètre Affichée à l'utilisateur lorsqu'il est invité à saisir la valeur du paramètre Compatible avec Markdown | ||||
type(optional) |
chaîne |
Mécanisme de saisie permettant à l'utilisateur de définir la valeur du paramètre (par exemple, saisir du texte directement ou sélectionner une valeur dans une liste déroulante) Les valeurs valides sont les suivantes :
Si ce champ est omis, le paramètre est défini par défaut sur |
||||
options(required if parameter type
is select or multiSelect)
|
list |
Liste des valeurs parmi lesquelles l'utilisateur peut choisir Incluez les champs
Le champ |
||||
resourceType(required if parameter type
is selectResource)
|
chaîne |
Type de ressource Firebase à inviter l'utilisateur à sélectionner. Actuellement, seuls les buckets Cloud Storage sont compatibles avec les sélecteurs de ressources :
Les valeurs |
||||
example(optional) |
chaîne |
Exemple de valeur pour le paramètre |
||||
validationRegex(optional) (only applicable when the parameter type is
string)
|
chaîne |
Chaîne d'expression régulière pour la validation de la valeur configurée par l'utilisateur du paramètre L'expression régulière est compilée à l'aide de la bibliothèque Go : RE2 Pour en savoir plus sur la validation, consultez la section Validation et messages d'erreur ci-dessous. |
||||
validationErrorMessage(optional) |
chaîne |
Message d'erreur à afficher si le
Pour en savoir plus sur les messages d'erreur, consultez la section Validation et messages d'erreur ci-dessous. |
||||
default(optional) |
chaîne |
Valeur par défaut du paramètre si l'utilisateur laisse la valeur du paramètre vide Le cas échéant, vous pouvez spécifier une
valeur de paramètre renseignée automatiquement
pour la |
||||
required(optional) |
booléen |
Définit si l'utilisateur peut envoyer une chaîne vide lorsqu'il est invité à saisir la valeur du paramètre Si |
||||
immutable(optional) |
booléen |
Définit si l'utilisateur peut modifier la valeur du paramètre après l'installation (par exemple, s'il reconfigure l'extension) Si
Remarque : Si vous définissez un
"location"
paramètre pour les fonctions déployées de votre extension,
vous devez inclure ce champ |
Validation et messages d'erreur pour les valeurs définies par l'utilisateur
Lorsque vous configurez un paramètre avec le type de string, vous devez définir
une validation d'expression régulière appropriée via le champ
validationRegex du paramètre.
De plus, pour de nombreuses extensions, une valeur de paramètre couramment demandée est un chemin d'accès à une base de données ou un bucket Cloud Storage. Sachez que lors de l'installation, de la reconfiguration ou de la mise à jour, le Extensions service ne valide pas les éléments suivants au moment de la saisie de la valeur du paramètre :
- Si la base de données ou le bucket Cloud Storage spécifié est configuré dans le projet Firebase de l'utilisateur
- 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 Firebase console ou la Firebase CLI affiche un message d'erreur si la base de données ou le Cloud Storage bucket référencé n'est pas encore configuré dans le projet.
Nous vous recommandons vivement d'informer les utilisateurs de ces exigences dans le
PREINSTALL fichier
afin que, lorsqu'ils installent votre extension, elle
s'installe et fonctionne comme prévu.
Paramètres système
Les paramètres système contrôlent la configuration de base des ressources d'une extension. Comme ils sont destinés à contrôler la configuration des ressources, ils ne sont pas accessibles en tant que variables d'environnement à partir du code de votre fonction.
En règle générale, vous n'avez pas besoin de déclarer quoi que ce soit pour ces paramètres dans
extension.yaml.
Ils sont automatiquement définis pour chaque instance d'extension,
et les utilisateurs ont la possibilité de définir des valeurs personnalisées lorsqu'ils installent votre
extension.
Toutefois, si votre extension a des exigences particulières en matière de ressources,
vous pouvez définir des valeurs spécifiques au niveau de chaque ressource dans extension.yaml.
Ces paramètres de configuration par ressource remplaceront les paramètres de l'utilisateur à l'échelle de l'instance d'extension.
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é (convivial) | 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 s'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 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 simultanément |
| firebaseextensions.v1beta.function/maxInstances | Nombre maximal 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 l'origine du trafic entrant |
| firebaseextensions.v1beta.function/labels | Libellés | labels |
Libellés à appliquer à toutes les ressources de l'extension |