Los parámetros son el mecanismo a través del cual un usuario personaliza cada instancia instalada de una extensión. Los parámetros son como las variables de entorno de una extensión. Los valores de los parámetros pueden completarse automáticamente (proporcionados por Firebase después de la instalación) o configurarse por el usuario (especificados por el usuario durante la instalación).
Estos parámetros están disponibles para que pueda consultarlos en el código fuente de las funciones de su extensión, su archivo extension.yaml
y su archivo POSTINSTALL.md
. Aquí está la sintaxis sobre cómo hacer referencia a un parámetro llamado PARAMETER_NAME
:
Dentro del código fuente de sus funciones, use el módulo
params
(por ejemplo,params.defineInt(" PARAMETER_NAME ")
) oprocess.env. PARAMETER_NAME
.Dentro de
extension.yaml
yPOSTINSTALL.md
, use${param: PARAMETER_NAME }
.Después de la instalación, Firebase console muestra el contenido del archivo
POSTINSTALL.md
y completa las referencias de parámetros con los valores reales de la instancia instalada.
Parámetros completados automáticamente
Cada instancia instalada de una extensión tiene acceso automáticamente a varios parámetros predeterminados que se completan automáticamente proporcionados por Firebase (consulte la tabla a continuación). Estos valores de parámetros son los valores predeterminados para el proyecto de Firebase (como el depósito de almacenamiento predeterminado ) o son específicos de la extensión (como el ID de instancia de la extensión).
Todos los valores de parámetros completados automáticamente son inmutables. Se configuran en el momento de la creación del proyecto o la instalación de la extensión.
Aunque Firebase completa automáticamente estos valores de parámetros para la extensión, Firebase no aprovisiona automáticamente los productos asociados para el usuario durante la instalación . El usuario que instala la extensión debe habilitar los productos asociados y aplicables en su proyecto antes de la instalación. Por ejemplo, si su extensión involucra Cloud Firestore, el usuario debe configurar Cloud Firestore en su proyecto. Recomendamos notificar a sus usuarios sobre estos requisitos en el archivo PREINSTALL.md
.
Referencia para el parámetro autocompletado | Descripción | Valor del parámetro (proporcionado por Firebase) |
---|---|---|
Parámetros con valores predeterminados del proyecto Firebase | ||
PROJECT_ID | Identificador único para el proyecto de Firebase en el que está instalada la extensión. | Formato generalizado: Valor de ejemplo: |
DATABASE_URL | La URL de la instancia de Realtime Database predeterminada del proyecto Firebase | Formato generalizado: Valor de ejemplo: |
DATABASE_INSTANCE | El nombre de instancia de Realtime Database predeterminado del proyecto Firebase Normalmente, este valor es el mismo que el ID del proyecto o termina en | Formato generalizado: Valor de ejemplo: |
STORAGE_BUCKET | El nombre del depósito predeterminado de Cloud Storage del proyecto de Firebase | Formato generalizado: Valor de ejemplo: |
Parámetro con valor predeterminado de la instalación de la extensión. | ||
EXT_INSTANCE_ID | Identificador único para la instancia de extensión instalada Este valor se genera a partir del campo | Formato generalizado para la primera instancia instalada (asignado automáticamente por Firebase; el usuario no puede modificarlo durante la instalación): Valor de ejemplo: Formato generalizado para la segunda instancia instalada y superiores (asignado automáticamente por Firebase; el usuario puede modificarlo durante la instalación): Valor de ejemplo: |
Parámetros configurados por el usuario
Para permitir que un usuario personalice cada instancia instalada de una extensión, puede pedirle que especifique valores de parámetros durante la instalación. Para solicitar estos valores, configure las indicaciones en la sección params
de su archivo extension.yaml
.
Aquí hay una sección params
de ejemplo, seguida de una tabla que describe todos los campos de parámetros 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
En la sección params
de su archivo extension.yaml
, use los siguientes campos para definir un parámetro configurado por el usuario:
Campo | Tipo | Descripción | ||||
---|---|---|---|---|---|---|
param (requerido) | cadena | Nombre del parámetro | ||||
label (requerido) | cadena | Breve descripción del parámetro. Se muestra al usuario cuando se le solicita el valor del parámetro. | ||||
description (opcional) | cadena | Descripción detallada del parámetro. Se muestra al usuario cuando se le solicita el valor del parámetro. Admite rebajas | ||||
type (opcional) | cadena | Mecanismo de entrada sobre cómo el usuario establece el valor del parámetro (por ejemplo, ingresar texto directamente o seleccionar de la lista desplegable) Los valores válidos incluyen los siguientes:
Si se omite este campo, el parámetro predeterminado es el | ||||
options (obligatorio si type de parámetro es select o multiSelect ) | lista | Lista de valores entre los que el usuario puede seleccionar Incluya campos
El campo | ||||
resourceType (obligatorio si type de parámetro es selectResource ) | cadena | El tipo de recurso de Firebase que se solicitará al usuario que seleccione. Actualmente, solo los depósitos de Cloud Storage admiten selectores de recursos:
Los valores desconocidos | ||||
example (opcional) | cadena | Valor de ejemplo para el parámetro | ||||
validationRegex (opcional) (solo aplicable cuando el type de parámetro es string ) | cadena | Cadena de expresiones regulares para la validación del valor configurado por el usuario del parámetro Regex se compila usando la biblioteca go: RE2 Para obtener detalles sobre la validación, consulte Validación y mensajes de error a continuación. | ||||
validationErrorMessage (opcional) | cadena | Mensaje de error que se mostrará si falla Para obtener detalles sobre los mensajes de error, consulte Validación y mensajes de error a continuación. | ||||
default (opcional) | cadena | Valor predeterminado para el parámetro si el usuario deja el valor del parámetro en blanco Si corresponde, puede especificar un valor de parámetro que se completa automáticamente para el valor | ||||
required (opcional) | booleano | Define si el usuario puede enviar una cadena vacía cuando se le solicita el valor del parámetro. Si se omite | ||||
immutable (opcional) | booleano | Define si el usuario puede cambiar el valor del parámetro después de la instalación (por ejemplo, si reconfigura la extensión) Si se omite Nota: Si define un parámetro de "ubicación" para las funciones implementadas de su extensión , debe incluir este campo |
Validación y mensajes de error para valores configurados por el usuario.
Cuando configura un parámetro con el type
de string
, debe definir la validación de expresiones regulares adecuada a través del campo validationRegex
del parámetro.
Además, para muchas extensiones, un valor de parámetro solicitado comúnmente es una ruta de base de datos o un depósito de Cloud Storage. Tenga en cuenta que durante la instalación, reconfiguración o actualización, el servicio Extensiones no valida lo siguiente en el momento de ingresar el valor del parámetro:
- Si la base de datos especificada o el depósito de Cloud Storage están configurados dentro del proyecto de Firebase del usuario
- Si la ruta de la base de datos especificada existe dentro de la base de datos del usuario
Sin embargo, cuando la extensión realmente esté implementando sus recursos, Firebase console o Firebase CLI mostrarán un mensaje de error si la base de datos a la que se hace referencia o el depósito de Cloud Storage aún no están configurados en el proyecto.
Le recomendamos encarecidamente que notifique a los usuarios en el archivo PREINSTALL
sobre estos requisitos para que cuando instalen su extensión, se instale correctamente y funcione como se esperaba.
Parámetros del sistema
Los parámetros del sistema controlan la configuración básica de los recursos de una extensión. Dado que están destinados a controlar la configuración de recursos, no son accesibles como variables de entorno desde su código de función.
Normalmente no es necesario declarar nada para estos parámetros en extension.yaml
. Se definen automáticamente para cada instancia de extensión y los usuarios tienen la oportunidad de establecer valores personalizados cuando instalan su extensión.
Sin embargo, si su extensión tiene requisitos de recursos especiales, puede establecer valores específicos en un nivel por recurso en extension.yaml
. Estos ajustes de configuración por recurso anularán los ajustes de toda la instancia de extensión del usuario. Por ejemplo:
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
Los parámetros del sistema disponibles son:
Nombre | Etiqueta (amigable para los humanos) | Campo correspondiente en properties | Descripción |
---|---|---|---|
firebaseextensions.v1beta.function/ubicación | Ubicación | location | ¿En qué región se deberían implementar Cloud Functions? |
firebaseextensions.v1beta.function/memoria | Memoria de funciones | memory | ¿Cuántos megabytes de memoria se deben asignar a cada función? |
firebaseextensions.v1beta.function/timeoutSeconds | Tiempo de espera de la función | timeout | ¿Cuántos segundos deben ejecutarse las funciones antes de que se agote el tiempo de espera? |
firebaseextensions.v1beta.function/vpcConnectorEgressSettings | Salida del conector VPC | vpcConnectorEgressSettings | Controla el tráfico saliente cuando se configura un conector VPC |
firebaseextensions.v1beta.function/vpcConnector | Conector VPC | vpcConnector | Conecta Cloud Functions al conector VPC especificado. |
firebaseextensions.v1beta.function/minInstancias | Instancias de función mínima | minInstances | El número mínimo de instancias de esta función para ejecutar a la vez |
firebaseextensions.v1beta.function/maxInstances | Instancias de función máximas | maxInstances | El número máximo de instancias de esta función que se ejecutarán a la vez |
firebaseextensions.v1beta.function/ingressSettings | Configuración de ingreso | ingressSettings | Controla desde dónde se acepta el tráfico entrante |
firebaseextensions.v1beta.function/labels | Etiquetas | labels | Etiquetas para aplicar a todos los recursos de la extensión. |