I parametri sono il meccanismo attraverso il quale un utente personalizza ciascuna istanza installata di un'estensione. I parametri sono come le variabili di ambiente per un'estensione. I valori dei parametri possono essere compilati automaticamente (forniti da Firebase dopo l'installazione) o configurati dall'utente (specificati dall'utente durante l'installazione).
È possibile fare riferimento a questi parametri nel codice sorgente delle funzioni dell'estensione, nel file extension.yaml
e nel file POSTINSTALL.md
. Ecco la sintassi su come fare riferimento a un parametro chiamato PARAMETER_NAME
:
All'interno del codice sorgente delle funzioni, utilizzare il modulo
params
(ad esempio,params.defineInt(" PARAMETER_NAME ")
) oprocess.env. PARAMETER_NAME
.All'interno di
extension.yaml
ePOSTINSTALL.md
, utilizza${param: PARAMETER_NAME }
.Dopo l'installazione, la console Firebase visualizza il contenuto del file
POSTINSTALL.md
e popola tutti i riferimenti ai parametri con i valori effettivi per l'istanza installata.
Parametri compilati automaticamente
Ogni istanza installata di un'estensione ha automaticamente accesso a diversi parametri predefiniti forniti da Firebase (fare riferimento alla tabella seguente). Questi valori dei parametri sono valori predefiniti per il progetto Firebase (come il bucket di archiviazione predefinito ) o sono specifici dell'estensione (come l'ID istanza dell'estensione).
Tutti i valori dei parametri compilati automaticamente sono immutabili. Vengono impostati al momento della creazione del progetto o dell'installazione dell'estensione.
Anche se Firebase inserisce automaticamente questi valori di parametro per l'estensione, Firebase non effettua il provisioning automatico dei prodotti associati per l'utente durante l'installazione . L'utente che installa l'estensione deve abilitare i prodotti associati e applicabili nel proprio progetto prima dell'installazione. Ad esempio, se la tua estensione coinvolge Cloud Firestore, l'utente deve configurare Cloud Firestore nel proprio progetto. Ti consigliamo di informare gli utenti di questi requisiti nel file PREINSTALL.md
.
Riferimento per il parametro compilato automaticamente | Descrizione | Valore del parametro (fornito da Firebase) |
---|---|---|
Parametri con valori predefiniti dal progetto Firebase | ||
PROJECT_ID | Identificatore univoco per il progetto Firebase in cui è installata l'estensione | Formato generalizzato: Valore di esempio: |
DATABASE_URL | L'URL predefinito dell'istanza Realtime Database del progetto Firebase | Formato generalizzato: Valore di esempio: |
DATABASE_INSTANCE | Il nome dell'istanza Realtime Database predefinita del progetto Firebase Di solito, questo valore è uguale all'ID progetto o termina con | Formato generalizzato: Valore di esempio: |
STORAGE_BUCKET | Il nome del bucket Cloud Storage predefinito del progetto Firebase | Formato generalizzato: Valore di esempio: |
Parametro con valore predefinito dall'installazione dell'estensione | ||
EXT_INSTANCE_ID | Identificatore univoco per l'istanza dell'estensione installata Questo valore viene generato dal campo | Formato generalizzato per la prima istanza installata (assegnato automaticamente da Firebase; non può essere modificato dall'utente durante l'installazione): Valore di esempio: Formato generalizzato per la seconda istanza installata e successive (assegnato automaticamente da Firebase; può essere modificato dall'utente durante l'installazione): Valore di esempio: |
Parametri configurati dall'utente
Per consentire a un utente di personalizzare ogni istanza installata di un'estensione, puoi chiedere all'utente di specificare i valori dei parametri durante l'installazione. Per richiedere questi valori, imposta i prompt nella sezione params
del tuo file extension.yaml
.
Ecco una sezione params
di esempio, seguita da una tabella che descrive tutti i campi dei parametri disponibili.
# 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
Nella sezione params
del file extension.yaml
, utilizza i seguenti campi per definire un parametro configurato dall'utente:
Campo | Tipo | Descrizione | ||||
---|---|---|---|---|---|---|
param (necessario) | corda | Nome del parametro | ||||
label (necessario) | corda | Breve descrizione del parametro Visualizzato all'utente quando gli viene richiesto il valore del parametro | ||||
description (opzionale) | corda | Descrizione dettagliata del parametro Visualizzato all'utente quando gli viene richiesto il valore del parametro Supporta il ribasso | ||||
type (opzionale) | corda | Meccanismo di input per il modo in cui l'utente imposta il valore del parametro (ad esempio, inserisci direttamente il testo o seleziona dall'elenco a discesa) I valori validi includono quanto segue:
Se questo campo viene omesso, il parametro assume per impostazione predefinita il | ||||
options (richiesto se type di parametro è select o multiSelect ) | elenco | Elenco di valori da cui l'utente può selezionare Includi i campi
Il campo | ||||
resourceType (obbligatorio se type di parametro è selectResource ) | corda | Il tipo di risorsa Firebase da richiedere all'utente di selezionare. Attualmente, solo i bucket Cloud Storage supportano i selettori di risorse:
I valori | ||||
example (opzionale) | corda | Valore di esempio per il parametro | ||||
validationRegex (opzionale) (applicabile solo quando il type di parametro è string ) | corda | Stringa regex per la convalida del valore configurato dall'utente del parametro Regex viene compilato utilizzando la libreria go: RE2 Per dettagli sulla convalida, fare riferimento a Convalida e messaggi di errore di seguito. | ||||
validationErrorMessage (opzionale) | corda | Messaggio di errore da visualizzare se Per dettagli sui messaggi di errore, fare riferimento a Convalida e messaggi di errore di seguito. | ||||
default (opzionale) | corda | Valore predefinito per il parametro se l'utente lascia vuoto il valore del parametro Se applicabile, è possibile specificare un valore di parametro compilato automaticamente per il valore | ||||
required (opzionale) | booleano | Definisce se l'utente può inviare una stringa vuota quando gli viene richiesto il valore del parametro Se | ||||
immutable (opzionale) | booleano | Definisce se l'utente può modificare il valore del parametro dopo l'installazione (ad esempio, se riconfigura l'estensione) Se Nota: se definisci un parametro "location" per le funzioni distribuite della tua estensione , dovresti includere questo campo |
Convalida e messaggi di errore per i valori configurati dall'utente
Quando imposti un parametro con il type
string
, devi definire la convalida regex appropriata tramite il campo validationRegex
del parametro.
Inoltre, per molte estensioni, un valore di parametro comunemente richiesto è un percorso del database o un bucket Cloud Storage. Tieni presente che durante l'installazione, la riconfigurazione o l'aggiornamento, il servizio Estensioni non convalida quanto segue al momento dell'immissione del valore del parametro:
- Indica se il database specificato o il bucket Cloud Storage è configurato all'interno del progetto Firebase dell'utente
- Se il percorso del database specificato esiste all'interno del database dell'utente
Tuttavia, quando l'estensione distribuisce effettivamente le proprie risorse, la console Firebase o la CLI Firebase visualizzeranno un messaggio di errore se il database di riferimento o il bucket Cloud Storage non è ancora configurato nel progetto.
Ti consigliamo vivamente di avvisare gli utenti nel file PREINSTALL
riguardo a questi requisiti in modo che quando installano la tua estensione, questa venga installata correttamente e funzioni come previsto.
Parametri di sistema
I parametri di sistema controllano la configurazione di base delle risorse di un interno. Poiché hanno lo scopo di controllare la configurazione delle risorse, non sono accessibili come variabili di ambiente dal codice della funzione.
Normalmente non è necessario dichiarare nulla per questi parametri in extension.yaml
. Vengono definiti automaticamente per ogni istanza di estensione e gli utenti hanno la possibilità di impostare valori personalizzati quando installano l'estensione.
Tuttavia, se la tua estensione ha requisiti di risorse speciali, puoi impostare valori specifici a livello di risorsa in extension.yaml
. Queste impostazioni di configurazione per risorsa sovrascriveranno le impostazioni a livello di istanza dell'estensione dell'utente. Per esempio:
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
I parametri di sistema disponibili sono:
Nome | Etichetta (a misura d'uomo) | Campo corrispondente nelle properties | Descrizione |
---|---|---|---|
firebaseextensions.v1beta.function/location | Posizione | location | In quale regione deve essere distribuito Cloud Functions? |
firebaseextensions.v1beta.function/memory | Memoria di funzioni | memory | Quanti megabyte di memoria dovrebbero essere allocati a ciascuna funzione? |
firebaseextensions.v1beta.function/timeoutSeconds | Timeout della funzione | timeout | Quanti secondi devono essere eseguite le funzioni prima del timeout? |
firebaseextensions.v1beta.function/vpcConnectorEgressSettings | Uscita del connettore VPC | vpcConnectorEgressSettings | Controlla il traffico in uscita quando è configurato un connettore VPC |
firebaseextensions.v1beta.function/vpcConnector | Connettore VPC | vpcConnector | Connette Cloud Functions al connettore VPC specificato. |
firebaseextensions.v1beta.function/minInstances | Istanze minime di funzioni | minInstances | Il numero minimo di istanze di questa funzione da eseguire contemporaneamente |
firebaseextensions.v1beta.function/maxInstances | Numero massimo di istanze di funzione | maxInstances | Il numero massimo di istanze di questa funzione da eseguire contemporaneamente |
firebaseextensions.v1beta.function/ingressSettings | Impostazioni di ingresso | ingressSettings | Controlla da dove viene accettato il traffico in entrata |
firebaseextensions.v1beta.function/labels | Etichette | labels | Etichette da applicare a tutte le risorse nell'estensione |