Parametry to mechanizm, za pomocą którego użytkownik dostosowuje każdą zainstalowaną instancję rozszerzenia. Parametry są podobne do zmiennych środowiskowych w przypadku rozszerzenia. Wartości parametrów mogą być wypełniane automatycznie (dostarczane przez Firebase po instalacji) lub konfigurowane przez użytkownika (określane przez użytkownika podczas instalacji).
Możesz się do nich odwoływać w kodzie źródłowym funkcji rozszerzenia, w pliku extension.yaml
i w pliku POSTINSTALL.md
. Oto składnia odwołania do parametru o nazwie PARAMETER_NAME
:
W kodzie źródłowym funkcji użyj modułu
params
(np.params.defineInt("PARAMETER_NAME")
) lubprocess.env.PARAMETER_NAME
.W przypadku wartości
extension.yaml
iPOSTINSTALL.md
użyj${param:PARAMETER_NAME}
.Po instalacji w konsoli Firebase wyświetlana jest zawartość pliku
POSTINSTALL.md
, a odwołania do parametrów są wypełniane rzeczywistymi wartościami zainstalowanej instancji.
Parametry wypełniane automatycznie
Każde zainstalowane wystąpienie rozszerzenia ma automatycznie dostęp do kilku domyślnych, automatycznie wypełnianych parametrów udostępnianych przez Firebase (patrz tabela poniżej). Wartości tych parametrów to domyślne wartości projektu Firebase (np. domyślny zasobnik Storage) lub wartości specyficzne dla rozszerzenia (np. identyfikator instancji rozszerzenia).
Wszystkie wartości parametrów wypełniane automatycznie są niezmienne. Są one ustawiane w momencie tworzenia projektu lub instalowania rozszerzenia.
Chociaż Firebase automatycznie wypełnia wartości tych parametrów w przypadku rozszerzenia, podczas instalacji nie udostępnia automatycznie użytkownikowi powiązanych usług. Użytkownik instalujący rozszerzenie musi przed instalacją włączyć w projekcie powiązane i odpowiednie usługi. Jeśli na przykład rozszerzenie korzysta z Cloud Firestore, użytkownik musi skonfigurować Cloud Firestore w projekcie. Zalecamy poinformowanie użytkowników o tych wymaganiach w PREINSTALL.md
pliku.
Dokumentacja automatycznie wypełnianych parametrów | Opis | Wartość parametru (dostarczona przez Firebase) |
---|---|---|
Parametry z wartościami domyślnymi z projektu Firebase | ||
PROJECT_ID |
Unikalny identyfikator projektu Firebase, w którym zainstalowane jest rozszerzenie. |
Format uogólniony:
Przykładowa wartość: |
DATABASE_URL |
Domyślny adres URL instancji Realtime Database projektu Firebase. |
Format ogólny:
Przykładowa wartość: |
DATABASE_INSTANCE |
Domyślna nazwa instancji Realtime Database projektu Firebase Zwykle ta wartość jest taka sama jak identyfikator projektu lub kończy się na |
Format uogólniony:
Przykładowa wartość: |
STORAGE_BUCKET |
Domyślna nazwa zasobnika Cloud Storage projektu Firebase |
Format ogólny:
Przykładowa wartość: |
Parametr z wartością domyślną z instalacji rozszerzenia | ||
EXT_INSTANCE_ID |
Unikalny identyfikator zainstalowanej instancji rozszerzenia Ta wartość jest generowana na podstawie pola |
Ogólny format pierwszej zainstalowanej instancji (przypisywany automatycznie przez Firebase; nie można go modyfikować podczas instalacji):
Przykładowa wartość: Uogólniony format dla drugiej i kolejnych zainstalowanych instancji (przypisywany automatycznie przez Firebase; może być modyfikowany przez użytkownika podczas instalacji):
Przykładowa wartość: |
Parametry skonfigurowane przez użytkownika
Aby umożliwić użytkownikowi dostosowywanie każdej zainstalowanej instancji rozszerzenia, możesz poprosić go o podanie wartości parametrów podczas instalacji. Aby poprosić o te wartości, skonfiguruj prompty w sekcji params
pliku extension.yaml
.
Oto przykładowa params
sekcja, a pod nią tabela z opisem wszystkich dostępnych pól parametrów.
# 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
W sekcji params
pliku extension.yaml
użyj tych pól, aby zdefiniować parametr skonfigurowany przez użytkownika:
Pole | Typ | Opis | ||||
---|---|---|---|---|---|---|
param (wymagane) |
ciąg znaków | Nazwa parametru | ||||
label (wymagane) |
ciąg znaków |
Krótki opis parametru. Wyświetlana użytkownikowi, gdy jest on proszony o podanie wartości parametru. |
||||
description (opcjonalnie) |
ciąg znaków |
Szczegółowy opis parametru Wyświetlana użytkownikowi, gdy jest on proszony o podanie wartości parametru. Obsługa Markdown | ||||
type (opcjonalnie) |
ciąg znaków |
Mechanizm wprowadzania wartości parametru przez użytkownika (np. wpisywanie tekstu bezpośrednio lub wybieranie z listy) Prawidłowe wartości:
Jeśli pominiesz to pole, domyślna wartość parametru to |
||||
options (wymagany, jeśli parametr type
ma wartość select lub multiSelect )
|
list |
Lista wartości, z których użytkownik może wybrać jedną Uwzględnij pola
Pole |
||||
resourceType (wymagany, jeśli parametr type
ma wartość selectResource )
|
ciąg znaków |
Typ zasobu Firebase, który ma być wyświetlany użytkownikowi do wyboru. Obecnie selektory zasobów obsługują tylko te zasobniki Cloud Storage:
Nieznane wartości |
||||
example (opcjonalnie) |
ciąg znaków |
Przykładowa wartość parametru |
||||
validationRegex (opcjonalnie) (dotyczy tylko sytuacji, gdy parametr type ma wartość string )
|
ciąg znaków |
Ciąg wyrażenia regularnego do weryfikacji wartości parametru skonfigurowanej przez użytkownika. Wyrażenie regularne jest kompilowane przy użyciu biblioteki Go: RE2 Więcej informacji o weryfikacji znajdziesz w sekcji Weryfikacja i komunikaty o błędach poniżej. |
||||
validationErrorMessage (opcjonalnie) |
ciąg znaków |
Komunikat o błędzie, który ma się wyświetlać, jeśli funkcja Szczegółowe informacje o komunikatach o błędach znajdziesz w sekcji Weryfikacja i komunikaty o błędach poniżej. |
||||
default (opcjonalnie) |
ciąg znaków |
Wartość domyślna parametru, jeśli użytkownik pozostawi wartość parametru pustą. W odpowiednich przypadkach możesz określić wartość parametru wypełnianego automatycznie dla wartości |
||||
required (opcjonalnie) |
Wartość logiczna |
Określa, czy użytkownik może przesłać pusty ciąg znaków, gdy zostanie poproszony o podanie wartości parametru. Jeśli parametr |
||||
immutable (opcjonalnie) |
Wartość logiczna |
Określa, czy użytkownik może zmienić wartość parametru po instalacji (np. jeśli ponownie skonfiguruje rozszerzenie). Jeśli parametr
Uwaga: jeśli zdefiniujesz parametr „location” dla wdrożonych funkcji rozszerzenia, w obiekcie param musisz uwzględnić to pole |
Weryfikacja i komunikaty o błędach w przypadku wartości skonfigurowanych przez użytkownika
Gdy skonfigurujesz parametr z wartością type
równą string
, musisz zdefiniować odpowiednią weryfikację wyrażenia regularnego w polu validationRegex
parametru.
W przypadku wielu rozszerzeń często żądaną wartością parametru jest ścieżka do bazy danych lub zasobnik Cloud Storage. Pamiętaj, że podczas instalacji, ponownej konfiguracji lub aktualizacji usługa Extensions nie weryfikuje tych elementów w momencie wprowadzania wartości parametru:
- czy określona baza danych lub zasobnik Cloud Storage jest skonfigurowany w projekcie Firebase użytkownika;
- Określa, czy podana ścieżka bazy danych istnieje w bazie danych użytkownika.
Gdy jednak rozszerzenie faktycznie wdraża swoje zasoby, w Firebase konsoli lub Firebase interfejsie CLI wyświetli się komunikat o błędzie, jeśli w projekcie nie skonfigurowano jeszcze bazy danych lub Cloud Storage zasobnika, do których odwołuje się rozszerzenie.
Zdecydowanie zalecamy powiadomienie użytkowników w PREINSTALL
pliku o tych wymaganiach, aby po zainstalowaniu rozszerzenia działało ono prawidłowo.
Parametry systemu
Parametry systemowe kontrolują podstawową konfigurację zasobów rozszerzenia. Służą one do kontrolowania konfiguracji zasobów, dlatego nie są dostępne jako zmienne środowiskowe w kodzie funkcji.
Zwykle nie musisz niczego deklarować w przypadku tych parametrów w extension.yaml
.
Są one automatycznie definiowane dla każdej instancji rozszerzenia, a użytkownicy mogą ustawiać wartości niestandardowe podczas instalowania rozszerzenia.
Jeśli jednak rozszerzenie ma specjalne wymagania dotyczące zasobów, możesz ustawić konkretne wartości na poziomie poszczególnych zasobów w extension.yaml
.
Te ustawienia konfiguracji poszczególnych zasobów zastąpią ustawienia rozszerzenia użytkownika w całej instancji.
Przykład:
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
Dostępne parametry systemowe:
Nazwa | Etykieta (czytelna dla ludzi) | Odpowiednie pole w properties |
Opis |
---|---|---|---|
firebaseextensions.v1beta.function/location | Lokalizacja | location |
W którym regionie należy wdrożyć Cloud Functions? |
firebaseextensions.v1beta.function/memory | Pamięć funkcji | memory |
Ile megabajtów pamięci należy przydzielić każdej funkcji? |
firebaseextensions.v1beta.function/timeoutSeconds | Limit czasu funkcji | timeout |
Ile sekund powinny działać funkcje, zanim upłynie limit czasu? |
firebaseextensions.v1beta.function/vpcConnectorEgressSettings | Ruch wychodzący przez oprogramowanie sprzęgające VPC | vpcConnectorEgressSettings |
Kontroluje ruch wychodzący, gdy skonfigurowane jest oprogramowanie sprzęgające VPC |
firebaseextensions.v1beta.function/vpcConnector | Oprogramowanie sprzęgające VPC | vpcConnector |
Łączy Cloud Functions z określonym oprogramowaniem sprzęgającym VPC. |
firebaseextensions.v1beta.function/minInstances | Minimalna liczba instancji funkcji | minInstances |
Minimalna liczba instancji tej funkcji, które mają być uruchomione jednocześnie |
firebaseextensions.v1beta.function/maxInstances | Maksymalna liczba instancji funkcji | maxInstances |
Maksymalna liczba instancji tej funkcji, które mają być uruchamiane jednocześnie. |
firebaseextensions.v1beta.function/ingressSettings | Ustawienia ruchu przychodzącego | ingressSettings |
Określa, skąd jest akceptowany ruch przychodzący. |
firebaseextensions.v1beta.function/labels | Etykiety | labels |
Etykiety, które mają być stosowane do wszystkich zasobów w rozszerzeniu. |