Les paramètres sont le mécanisme par lequel un utilisateur personnalise chaque instance installée d'une extension. Les paramètres sont comme les 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).
Ces paramètres sont disponibles pour référence dans le code source des fonctions de votre extension, votre fichier extension.yaml
et votre fichier POSTINSTALL.md
. Voici la syntaxe pour référencer un paramètre appelé PARAMETER_NAME
:
Dans le code source de vos fonctions, utilisez le 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 fichier
POSTINSTALL.md
et remplit toutes les références de paramètre 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 fournis par Firebase (reportez-vous au tableau ci-dessous). Ces valeurs de paramètres sont soit les valeurs par défaut du projet Firebase (comme le compartiment de stockage par défaut ), soit elles sont spécifiques à l'extension (comme l'ID d'instance de l'extension).
Toutes les valeurs de paramètres renseignées automatiquement sont immuables. Ils sont définis au moment de la création du projet ou de l'installation de l'extension.
Même si Firebase remplit automatiquement ces valeurs de paramètre 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 fichier PREINSTALL.md
.
Référence pour le paramètre rempli automatiquement | Description | Valeur du paramètre (fournie par Firebase) |
---|---|---|
Paramètres avec des valeurs par défaut 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 d'instance de base de données en temps réel par défaut du projet Firebase | Format généralisé : Exemple de valeur : |
DATABASE_INSTANCE | Le nom d'instance par défaut de la base de données en temps réel 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 de l'installation de l'extension | ||
EXT_INSTANCE_ID | Identificateur unique de l'instance d'extension installée Cette valeur est générée à partir du champ | Format généralisé pour la 1ère instance installée (attribué automatiquement par Firebase ; ne peut pas être modifié par l'utilisateur lors de l'installation) : Exemple de valeur : Format généralisé pour la 2e instance installée et au-dessus (attribué automatiquement par Firebase ; peut être modifié par l'utilisateur lors de 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 demander à l'utilisateur de spécifier des valeurs de paramètre lors de l'installation. Pour demander ces valeurs, vous configurez 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 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 configuré par l'utilisateur :
Champ | Taper | Description | ||||
---|---|---|---|---|---|---|
param (requis) | chaîne | Nom du paramètre | ||||
label (requis) | chaîne | Brève description du paramètre S'affiche pour l'utilisateur lorsqu'il est invité à entrer la valeur du paramètre | ||||
description (facultatif) | chaîne | Description détaillée du paramètre S'affiche pour l'utilisateur lorsqu'il est invité à entrer la valeur du paramètre Prend en charge la démarque | ||||
type (facultatif) | chaîne | Mécanisme de saisie de la manière dont l'utilisateur définit la valeur du paramètre (par exemple, saisir du texte directement ou sélectionner dans la liste déroulante) Les valeurs valides incluent les éléments suivants :
Si ce champ est omis, le paramètre prend par défaut le | ||||
options (requis si type de paramètre est select ou multiSelect ) | liste | Liste de valeurs parmi lesquelles l'utilisateur peut sélectionner Inclure les champs
Le champ | ||||
resourceType (obligatoire si type de paramètre est selectResource ) | chaîne | Le type de ressource Firebase à inviter l'utilisateur à sélectionner. Actuellement, seuls les buckets Cloud Storage acceptent les sélecteurs de ressources :
Les valeurs | ||||
example (facultatif) | chaîne | Exemple de valeur pour le paramètre | ||||
validationRegex (facultatif) (uniquement applicable lorsque le type de paramètre est string ) | chaîne | Chaîne Regex pour la validation de la valeur configurée par l'utilisateur du paramètre Regex est compilé à l'aide de la bibliothèque go : RE2 Pour plus d'informations sur la validation, reportez-vous à la section Validation et message d'erreur ci-dessous. | ||||
validationErrorMessage (facultatif) | chaîne | Message d'erreur à afficher si la Pour plus de détails sur la messagerie d'erreur, reportez-vous à la section Validation et messagerie d'erreur ci-dessous. | ||||
default (facultatif) | 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 valeur | ||||
required (facultatif) | booléen | Définit si l'utilisateur peut soumettre une chaîne vide lorsqu'il est invité à entrer la valeur du paramètre Si | ||||
immutable (facultatif) | 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 paramètre "location" pour les fonctions déployées de votre extension , vous devez inclure ce champ |
Validation et message 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 regex appropriée via le champ validationRegex
du paramètre.
En outre, pour de nombreuses extensions, une valeur de paramètre couramment demandée est un chemin d'accès à la base de données ou un bucket Cloud Storage. Sachez 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 ou le bucket Cloud Storage spécifié est configuré dans le projet Firebase de l'utilisateur
- Si le chemin de base de données spécifié existe dans la base de données de l'utilisateur
Cependant, lorsque l'extension déploie réellement ses ressources, la console Firebase ou la CLI Firebase affiche 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 dans le fichier PREINSTALL
de ces exigences afin que lorsqu'ils installent votre extension, celle-ci s'installe correctement 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. Puisqu'ils sont destinés à contrôler la configuration des ressources, ils ne sont pas accessibles en tant que variables d'environnement à partir de votre code de fonction.
Vous n'avez normalement 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 besoins particuliers 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 remplaceront les paramètres à l'échelle de l'instance de l'extension de l'utilisateur. Par exemple:
resources:
- name: high_memory_function
type: firebaseextensions.v1beta.function
description: >-
This function needs at least 1GB of memory!
properties:
httpsTrigger: {}
runtime: nodejs18
memory: 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 :
Nom | Label (human friendly) | 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 fonction | memory | Combien de mégaoctets de mémoire doivent être alloués à chaque fonction ? |
firebaseextensions.v1beta.function/timeoutSeconds | Délai d'expiration de la fonction | timeout | Combien de secondes les fonctions doivent-elles s'exécuter avant l'expiration ? |
firebaseextensions.v1beta.function/vpcConnectorEgressSettings | Sortie de 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 | Instances de fonction minimales | minInstances | Le nombre minimum d'instances de cette fonction à exécuter simultanément |
firebaseextensions.v1beta.function/maxInstances | Nombre maximal d'instances de fonction | maxInstances | Le nombre maximum d'instances de cette fonction à exécuter simultanément |
firebaseextensions.v1beta.function/ingressSettings | Paramètres d'entrée | ingressSettings | Contrôle d'où le trafic entrant est accepté |
firebaseextensions.v1beta.function/labels | Étiquettes | labels | Libellés à appliquer à toutes les ressources de l'extension |
Les paramètres sont le mécanisme par lequel un utilisateur personnalise chaque instance installée d'une extension. Les paramètres sont comme les 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).
Ces paramètres sont disponibles pour référence dans le code source des fonctions de votre extension, votre fichier extension.yaml
et votre fichier POSTINSTALL.md
. Voici la syntaxe pour référencer un paramètre appelé PARAMETER_NAME
:
Dans le code source de vos fonctions, utilisez le 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 fichier
POSTINSTALL.md
et remplit toutes les références de paramètre 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 fournis par Firebase (reportez-vous au tableau ci-dessous). Ces valeurs de paramètres sont soit les valeurs par défaut du projet Firebase (comme le compartiment de stockage par défaut ), soit elles sont spécifiques à l'extension (comme l'ID d'instance de l'extension).
Toutes les valeurs de paramètres renseignées automatiquement sont immuables. Ils sont définis au moment de la création du projet ou de l'installation de l'extension.
Même si Firebase remplit automatiquement ces valeurs de paramètre 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 fichier PREINSTALL.md
.
Référence pour le paramètre rempli automatiquement | Description | Valeur du paramètre (fournie par Firebase) |
---|---|---|
Paramètres avec des valeurs par défaut 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 d'instance de base de données en temps réel par défaut du projet Firebase | Format généralisé : Exemple de valeur : |
DATABASE_INSTANCE | Le nom d'instance par défaut de la base de données en temps réel 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 de l'installation de l'extension | ||
EXT_INSTANCE_ID | Identificateur unique de l'instance d'extension installée Cette valeur est générée à partir du champ | Format généralisé pour la 1ère instance installée (attribué automatiquement par Firebase ; ne peut pas être modifié par l'utilisateur lors de l'installation) : Exemple de valeur : Format généralisé pour la 2e instance installée et au-dessus (attribué automatiquement par Firebase ; peut être modifié par l'utilisateur lors de 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 demander à l'utilisateur de spécifier des valeurs de paramètre lors de l'installation. Pour demander ces valeurs, vous configurez 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 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 configuré par l'utilisateur :
Champ | Taper | Description | ||||
---|---|---|---|---|---|---|
param (requis) | chaîne | Nom du paramètre | ||||
label (requis) | chaîne | Brève description du paramètre S'affiche pour l'utilisateur lorsqu'il est invité à entrer la valeur du paramètre | ||||
description (facultatif) | chaîne | Description détaillée du paramètre S'affiche pour l'utilisateur lorsqu'il est invité à entrer la valeur du paramètre Prend en charge la démarque | ||||
type (facultatif) | chaîne | Mécanisme de saisie de la manière dont l'utilisateur définit la valeur du paramètre (par exemple, saisir du texte directement ou sélectionner dans la liste déroulante) Les valeurs valides incluent les éléments suivants :
Si ce champ est omis, le paramètre prend par défaut le | ||||
options (requis si type de paramètre est select ou multiSelect ) | liste | Liste de valeurs parmi lesquelles l'utilisateur peut sélectionner Inclure les champs
Le champ | ||||
resourceType (obligatoire si type de paramètre est selectResource ) | chaîne | Le type de ressource Firebase à inviter l'utilisateur à sélectionner. Actuellement, seuls les buckets Cloud Storage acceptent les sélecteurs de ressources :
Les valeurs | ||||
example (facultatif) | chaîne | Exemple de valeur pour le paramètre | ||||
validationRegex (facultatif) (uniquement applicable lorsque le type de paramètre est string ) | chaîne | Chaîne Regex pour la validation de la valeur configurée par l'utilisateur du paramètre Regex est compilé à l'aide de la bibliothèque go : RE2 Pour plus d'informations sur la validation, reportez-vous à la section Validation et message d'erreur ci-dessous. | ||||
validationErrorMessage (facultatif) | chaîne | Message d'erreur à afficher si la Pour plus de détails sur la messagerie d'erreur, reportez-vous à la section Validation et messagerie d'erreur ci-dessous. | ||||
default (facultatif) | 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 valeur | ||||
required (facultatif) | booléen | Définit si l'utilisateur peut soumettre une chaîne vide lorsqu'il est invité à entrer la valeur du paramètre Si | ||||
immutable (facultatif) | 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 paramètre "location" pour les fonctions déployées de votre extension , vous devez inclure ce champ |
Validation et message 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 regex appropriée via le champ validationRegex
du paramètre.
En outre, pour de nombreuses extensions, une valeur de paramètre couramment demandée est un chemin d'accès à la base de données ou un bucket Cloud Storage. Sachez 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 ou le bucket Cloud Storage spécifié est configuré dans le projet Firebase de l'utilisateur
- Si le chemin de base de données spécifié existe dans la base de données de l'utilisateur
Cependant, lorsque l'extension déploie réellement ses ressources, la console Firebase ou la CLI Firebase affiche 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 dans le fichier PREINSTALL
de ces exigences afin que lorsqu'ils installent votre extension, celle-ci s'installe correctement 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. Puisqu'ils sont destinés à contrôler la configuration des ressources, ils ne sont pas accessibles en tant que variables d'environnement à partir de votre code de fonction.
Vous n'avez normalement 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 besoins particuliers 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 remplaceront les paramètres à l'échelle de l'instance de l'extension de l'utilisateur. Par exemple:
resources:
- name: high_memory_function
type: firebaseextensions.v1beta.function
description: >-
This function needs at least 1GB of memory!
properties:
httpsTrigger: {}
runtime: nodejs18
memory: 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 :
Nom | Label (human friendly) | 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 fonction | memory | Combien de mégaoctets de mémoire doivent être alloués à chaque fonction ? |
firebaseextensions.v1beta.function/timeoutSeconds | Délai d'expiration de la fonction | timeout | Combien de secondes les fonctions doivent-elles s'exécuter avant l'expiration ? |
firebaseextensions.v1beta.function/vpcConnectorEgressSettings | Sortie de 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 | Instances de fonction minimales | minInstances | Le nombre minimum d'instances de cette fonction à exécuter simultanément |
firebaseextensions.v1beta.function/maxInstances | Nombre maximal d'instances de fonction | maxInstances | Le nombre maximum d'instances de cette fonction à exécuter simultanément |
firebaseextensions.v1beta.function/ingressSettings | Paramètres d'entrée | ingressSettings | Contrôle d'où le trafic entrant est accepté |
firebaseextensions.v1beta.function/labels | Étiquettes | labels | Libellés à appliquer à toutes les ressources de l'extension |