Parametry to mechanizm, za pomocą którego użytkownik dostosowuje każdą zainstalowaną instancję rozszerzenia. Parametry są jak zmienne środowiskowe dla funkcji . Wartościami parametrów mogą być wypełniane automatycznie (dostarczone przez Firebase po instalacja) lub skonfigurowane przez użytkownika (określone przez użytkownika podczas instalacji).
Parametry te są dostępne do użycia w kodzie źródłowym funkcji rozszerzenia, pliku extension.yaml
i pliku POSTINSTALL.md
. Oto składnia wskazująca, jak odwołać się do parametru o nazwie
PARAMETER_NAME
:
W kodzie źródłowym funkcji użyj funkcji
params
(np.params.defineInt("PARAMETER_NAME")
) lubprocess.env.PARAMETER_NAME
.W aplikacjach
extension.yaml
iPOSTINSTALL.md
używaj${param:PARAMETER_NAME}
Po instalacji w konsoli Firebase wyświetli się zawartość pliku
POSTINSTALL.md
i wypełnia wszystkie odwołania do parametrów parametrem rzeczywiste wartości zainstalowanej instancji.
Parametry wypełniane automatycznie
Każda zainstalowana instancja rozszerzenia automatycznie ma dostęp do kilku domyślne parametry wypełnione automatycznie przez Firebase (patrz tabela poniżej). Te wartości parametrów są domyślnymi wartościami dla Firebase projektu (np. domyślny zasobnik na dane) lub są związane z konkretnymi rozszerzeniami (np. identyfikatora instancji rozszerzenia).
Żadnego automatycznie wypełnionego wartości parametrów nie można zmienić. Są ustawiane w dniu tworzenia projektu lub instalacji rozszerzeń.
Chociaż Firebase automatycznie wypełnia te wartości parametrów w przypadku rozszerzenia, nie udostępnia automatycznie powiązanych usług użytkownikowi podczas instalacji. Użytkownik instalujący rozszerzenie musi włączyć powiązane
i odpowiednich produktów w projekcie przed instalacją. Jeśli na przykład rozszerzenie wykorzystuje Cloud Firestore, użytkownik musi skonfigurować Cloud Firestore w swoim projekcie. Zalecamy powiadomienie użytkowników o tych wymaganiach w
PREINSTALL.md
.
Odniesienie do parametru uzupełnianego automatycznie | Opis | Wartość parametru (dostarczona przez Firebase) |
---|---|---|
Parametry z wartościami domyślnymi z projektu Firebase | ||
PROJECT_ID |
Unikalny identyfikator projektu Firebase, w którym jest rozszerzenie zainstalowano |
Format uogólniony:
Przykładowa wartość: |
DATABASE_URL |
Adres URL domyślnej Realtime Database instancji projektu Firebase |
Format uogólniony:
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 uogólniony:
Przykładowa wartość: |
Parametr z wartością domyślną z instalacji rozszerzenia | ||
EXT_INSTANCE_ID |
Unikalny identyfikator instancji zainstalowanego rozszerzenia Ta wartość jest generowana na podstawie parametru
|
Uogólniony format pierwszej zainstalowanej instancji (przypisany automatycznie
przez Firebase; nie mogą zostać zmienione przez użytkownika podczas instalacji):
Przykładowa wartość: Uogólniony format dla drugiej zainstalowanej instancji lub nowszej
(przypisane automatycznie przez Firebase; można modyfikować przez użytkownika
podczas instalacji):
Przykładowa wartość: |
Parametry skonfigurowane przez użytkownika
Aby umożliwić użytkownikowi dostosowanie każdej zainstalowanej instancji rozszerzenia, możesz:
poproś użytkownika o podanie wartości parametrów podczas instalacji. Aby wysłać prośbę o te płatności:
możesz skonfigurować prompty w sekcji params
na platformie extension.yaml
.
Oto przykładowa sekcja params
oraz tabela z opisem wszystkich dostępnych opcji
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świetlane użytkownikowi, kiedy pojawi się prośba o podanie parametru wartość |
||||
description (opcjonalnie) |
ciąg znaków |
Szczegółowy opis parametru Wyświetlane użytkownikowi, kiedy pojawi się prośba o podanie parametru wartość Obsługuje format Markdown | ||||
type (opcjonalnie) |
ciąg znaków |
Mechanizm wprowadzania wartości parametru przez użytkownika (na np. wpisz tekst bezpośrednio lub wybierz go z listy) Prawidłowe wartości to m.in.:
Jeśli pominiesz to pole, parametr przyjmuje domyślnie wartość |
||||
options (wymagany, jeśli parametr type
to select lub multiSelect )
|
list |
Lista wartości, które użytkownik może wybrać Uwzględnij
Pole |
||||
resourceType (wymagany, jeśli parametr type
to selectResource )
|
ciąg znaków |
Typ zasobu Firebase, z którego użytkownik ma zobaczyć prośbę o wybranie. Obecnie tylko zasobniki (Cloud Storage) obsługują selektory zasobów:
Nieznane wartości parametru |
||||
example (opcjonalnie) |
ciąg znaków |
Przykładowa wartość parametru |
||||
validationRegex (opcjonalnie) (dotyczy tylko wtedy, 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 za pomocą biblioteki go: RE2 Szczegółowe informacje o weryfikacji znajdziesz tutaj: Weryfikacja i błąd wiadomości poniżej. |
||||
validationErrorMessage (opcjonalnie) |
ciąg znaków |
Komunikat o błędzie do wyświetlenia, jeśli
Szczegółowe informacje o komunikatach o błędach znajdziesz w sekcji Weryfikacja i komunikaty o błędach. |
||||
default (opcjonalnie) |
ciąg znaków |
Domyślna wartość parametru, gdy użytkownik opuści parametr pusta wartość W razie potrzeby możesz określić
wartość parametru uzupeł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 wyświetlony monit o podanie wartości parametru. Jeśli pominiesz właściwość |
||||
immutable (opcjonalnie) |
wartość logiczna |
Określa, czy użytkownik może zmienić wartość parametru po instalacji (jeśli na przykład zmień konfigurację rozszerzenie). Jeśli pominiesz właściwość
Uwaga: jeśli zdefiniujesz tag
„lokalizacja”
dla wdrożonych funkcji rozszerzenia,
umieść to pole |
Sprawdzanie poprawności i komunikaty o błędach dotyczące wartości skonfigurowanych przez użytkownika
Po skonfigurowaniu parametru z parametrem type
o wartości string
musisz zdefiniować
odpowiednią weryfikację wyrażenia regularnego za pomocą funkcji
validationRegex
.
Poza tym w przypadku wielu rozszerzeń często żądaną wartością parametru jest baza danych lub zasobnik Cloud Storage. Pamiętaj, że podczas instalacji, ponownej konfiguracji lub aktualizacja, usługa Extensions nie sprawdza poprawności tych elementów w czas wpisu wartości parametru:
- Określa, czy określona baza danych lub zasobnik Cloud Storage skonfigurowano w projekt Firebase użytkownika
- Wskazuje, czy podana ścieżka bazy danych istnieje w bazie danych użytkownika
Jednak gdy rozszerzenie rzeczywiście wdraża swoje zasoby, Konsola Firebase lub interfejs wiersza poleceń Firebase wyświetli komunikat o błędzie, jeśli wprowadzona baza danych lub zasobnik Cloud Storage nie zostały jeszcze skonfigurowane w projekcie.
Zdecydowanie zalecamy powiadomienie o tym użytkowników na
PREINSTALL
plik
o tych wymaganiach. Dzięki temu po zainstalowaniu rozszerzenia
instaluje się i działa zgodnie z oczekiwaniami.
Parametry systemu
Parametry systemowe kontrolują podstawową konfigurację zasobów rozszerzenia. Służą one do kontrolowania konfiguracji zasobów, nie są one dostępne jako zmienne środowiskowe w kodzie funkcji.
Zwykle nie musisz deklarować niczego w przypadku tych parametrów w sekcji extension.yaml
.
Są one automatycznie definiowane dla każdej instancji rozszerzenia,
a użytkownicy mogą ustawić
wartości niestandardowe, gdy instalują
.
Jeśli jednak rozszerzenie ma specjalne wymagania dotyczące zasobów,
możesz ustawić określone wartości na poziomie poszczególnych zasobów w extension.yaml
.
Te ustawienia konfiguracji poszczególnych zasobów zastąpią rozszerzenie użytkownika
ustawieniach dla 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 (przyjazna dla ludzi) | Odpowiadające jej pole w dokumencie properties |
Opis |
---|---|---|---|
firebaseextensions.v1beta.function/location | Lokalizacja | location |
W którym regionie należy wdrożyć funkcje Cloud Functions? |
firebaseextensions.v1beta.function/memory | Pamięć funkcji | memory |
Ile megabajtów pamięci powinno być przydzielone do każdej funkcji? |
firebaseextensions.v1beta.function/timeoutSeconds | Limit czasu funkcji | timeout |
Ile sekund powinny działać funkcje przed przekroczeniem limitu czasu? |
firebaseextensions.v1beta.function/vpcConnectorEgressSettings | Ruch wychodzący oprogramowania sprzęgającego VPC | vpcConnectorEgressSettings |
Kontroluje ruch wychodzący po skonfigurowaniu oprogramowania sprzęgającego VPC |
firebaseextensions.v1beta.function/vpcConnector | Oprogramowanie sprzęgające VPC | vpcConnector |
Łączy funkcje Cloud Functions z określonym oprogramowaniem sprzęgającym VPC. |
firebaseextensions.v1beta.function/minInstances | Minimalna liczba instancji funkcji | minInstances |
Minimalna liczba instancji tej funkcji jednocześnie |
firebaseextensions.v1beta.function/maxInstances | Maksymalna liczba instancji funkcji | maxInstances |
Maksymalna liczba instancji tej funkcji, które można uruchomić jednocześnie |
firebaseextensions.v1beta.function/ingressSettings | Ustawienia ruchu przychodzącego | ingressSettings |
Ustawienia źródeł akceptowania ruchu przychodzącego |
firebaseextensions.v1beta.function/labels | Etykiety | labels |
Etykiety, które mają być stosowane do wszystkich zasobów w rozszerzeniu |