I parametri sono il meccanismo attraverso il quale un utente personalizza ogni 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).
Puoi fare riferimento a questi parametri nel codice sorgente delle funzioni dell'estensione, nel file extension.yaml
e nel file POSTINSTALL.md
. Ecco la sintassi per fare riferimento a un parametro chiamato
PARAMETER_NAME
:
All'interno del codice sorgente delle funzioni, utilizza il modulo
params
(ad esempio,params.defineInt("PARAMETER_NAME")
) oprocess.env.PARAMETER_NAME
.Tra
extension.yaml
ePOSTINSTALL.md
, utilizza${param:PARAMETER_NAME}
.Dopo l'installazione, la console Firebase mostra i contenuti del file
POSTINSTALL.md
e compila 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 precompilati predefiniti forniti da Firebase (consulta la tabella di seguito). Questi valori dei parametri sono i valori predefiniti per il progetto Firebase (come il bucket Storage 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 compila automaticamente questi valori dei parametri per l'estensione,
Firebase non esegue 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 riguarda Cloud Firestore, l'utente deve
configurare Cloud Firestore nel suo
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 del progetto Firebase | ||
PROJECT_ID |
Identificatore univoco del progetto Firebase in cui è installata l'estensione |
Formato generalizzato:
Valore di esempio: |
DATABASE_URL |
L'URL dell'istanza predefinita Realtime Database del progetto Firebase |
Formato generalizzato:
Valore di esempio: |
DATABASE_INSTANCE |
Il nome dell'istanza predefinita Realtime Database del progetto Firebase In genere, 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 dell'istanza dell'estensione installata Questo valore viene generato dal campo
|
Formato generalizzato per la prima istanza installata (assegnata automaticamente
da Firebase; non può essere modificata 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, configura le richieste nella sezione params
del file extension.yaml
.
Ecco un esempio di sezione params
, seguito 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 (obbligatorio) |
stringa | Nome del parametro | ||||
label (obbligatorio) |
stringa |
Breve descrizione del parametro Visualizzato all'utente quando gli viene richiesto il valore del parametro |
||||
description (facoltativo) |
stringa |
Descrizione dettagliata del parametro Visualizzato all'utente quando gli viene richiesto il valore del parametro Supporta Markdown | ||||
type (facoltativo) |
stringa |
Meccanismo di input per la modalità di impostazione del valore del parametro da parte dell'utente (ad esempio, inserire il testo direttamente o selezionare un valore dall'elenco a discesa) I valori validi includono:
Se questo campo viene omesso, il parametro viene impostato su |
||||
options (obbligatorio se il parametro type
è select o multiSelect )
|
list |
Elenco di valori tra cui l'utente può scegliere Includi i campi
Il campo |
||||
resourceType (obbligatorio se il parametro type
è selectResource )
|
stringa |
Il tipo di risorsa Firebase da richiedere all'utente di selezionare. Al momento, solo i bucket Cloud Storage supportano i selettori di risorse:
I valori |
||||
example (facoltativo) |
stringa |
Valore di esempio per il parametro |
||||
validationRegex (facoltativo) (applicabile solo quando il parametro type è
string )
|
stringa |
Stringa regex per la convalida del valore configurato dall'utente del parametro L'espressione regolare viene compilata utilizzando la libreria Go: RE2 Per informazioni dettagliate sulla convalida, consulta la sezione Messaggi di convalida e di errore di seguito. |
||||
validationErrorMessage (facoltativo) |
stringa |
Messaggio di errore da visualizzare se
Per informazioni dettagliate sui messaggi di errore, consulta la sezione Messaggi di convalida e di errore di seguito. |
||||
default (facoltativo) |
stringa |
Valore predefinito del parametro se l'utente lascia il valore del parametro vuoto Se applicabile, puoi specificare un valore del parametro compilato automaticamente per il valore |
||||
required (facoltativo) |
booleano |
Definisce se l'utente può inviare una stringa vuota quando gli viene richiesto il valore del parametro Se |
||||
immutable (facoltativo) |
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 di estensione di cui è stato eseguito il deployment,
devi includere questo campo |
Messaggi di convalida ed errore per i valori configurati dall'utente
Quando configuri un parametro con type
di string
, devi definire
una convalida regex appropriata tramite il campo
validationRegex
del parametro.
Inoltre, per molte estensioni, un valore del parametro richiesto di frequente è un percorso del database o un bucket Cloud Storage. Tieni presente che durante l'installazione, la riconfigurazione o l'aggiornamento, il servizio Extensions non convalida quanto segue al momento dell'inserimento del valore del parametro:
- Se il database o il bucket Cloud Storage specificato è configurato all'interno del progetto Firebase dell'utente
- Se il percorso del database specificato esiste nel database dell'utente
Tuttavia, quando l'estensione esegue il deployment delle risorse, la console Firebase o la CLI Firebase mostrano un messaggio di errore se il database o il bucket Cloud Storage a cui viene fatto riferimento non è ancora configurato nel progetto.
Ti consigliamo vivamente di informare gli utenti nel
file PREINSTALL
di 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'estensione. Poiché sono pensate per controllare la configurazione delle risorse, non sono accessibili come variabili di ambiente dal codice della funzione.
In genere, 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 speciali per le risorse,
puoi impostare valori specifici a livello di risorsa in extension.yaml
.
Queste impostazioni di configurazione per risorsa sostituiranno le impostazioni
a livello di istanza dell'estensione dell'utente.
Ad 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 (facile da usare) | Campo corrispondente in properties |
Descrizione |
---|---|---|---|
firebaseextensions.v1beta.function/location | Località | location |
In quale regione deve essere eseguito il deployment di Cloud Functions? |
firebaseextensions.v1beta.function/memory | Memoria della funzione | memory |
Quanti megabyte di memoria devono essere allocati a ogni funzione? |
firebaseextensions.v1beta.function/timeoutSeconds | Timeout funzione | timeout |
Per quanti secondi devono essere eseguite le funzioni prima del timeout? |
firebaseextensions.v1beta.function/vpcConnectorEgressSettings | Traffico in uscita 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 | Numero minimo di istanze di funzione | minInstances |
Il numero minimo di istanze di questa funzione da eseguire contemporaneamente |
firebaseextensions.v1beta.function/maxInstances | Numero massimo istanze di funzione | maxInstances |
Il numero massimo di istanze di questa funzione da eseguire contemporaneamente |
firebaseextensions.v1beta.function/ingressSettings | Impostazioni Ingress | 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 |