Parametry to mechanizm, za pomocą którego użytkownik dostosowuje każdą zainstalowaną instancję rozszerzenia. Parametry są jak zmienne środowiskowe 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).
Te parametry są dostępne do użycia w kodzie źródłowym funkcji rozszerzenia, pliku extension.yaml i pliku POSTINSTALL.md. Oto składnia odwoływania się 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 plikach
extension.yamliPOSTINSTALL.mdużyj${param:PARAMETER_NAME}.Po instalacji konsola Firebase wyświetla zawartość pliku
POSTINSTALL.mdi wypełnia wszystkie odwołania do parametrów rzeczywistymi wartościami zainstalowanej instancji.
Parametry wypełniane automatycznie
Każda zainstalowana instancja rozszerzenia ma automatycznie dostęp do kilku domyślnych parametrów wypełnianych automatycznie przez Firebase (patrz tabela poniżej). Wartości tych parametrów to domyślne wartości projektu Firebase (np. domyślny zasobnik Cloud Storage) lub wartości specyficzne dla rozszerzenia (np. identyfikator instancji rozszerzenia).
Wszystkie wartości parametrów wypełnianych automatycznie są niezmienne. Są one ustawiane w momencie tworzenia projektu lub instalacji rozszerzenia.
Mimo że Firebase automatycznie wypełnia te wartości parametrów dla rozszerzenia,
Firebase nie udostępnia automatycznie powiązanych usług dla użytkownika podczas
instalacji. 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 swoim
projekcie. Zalecamy poinformowanie użytkowników o tych wymaganiach w
pliku PREINSTALL.md.
| Odwołanie do parametru wypełnianego automatycznie | Opis | Wartość parametru (dostarczana przez Firebase) |
|---|---|---|
| Parametry z wartościami domyślnymi z projektu w Firebase | ||
PROJECT_ID |
Unikalny identyfikator projektu w Firebase, w którym jest zainstalowane rozszerzenie |
Format ogólny:
Przykładowa wartość: |
DATABASE_URL |
Adres URL domyślnej Realtime Database instancji projektu Firebase |
Format ogólny:
Przykładowa wartość: |
DATABASE_INSTANCE |
Nazwa domyślnej Realtime Database instancji projektu Firebase Zwykle ta wartość jest taka sama jak identyfikator projektu lub kończy się w
|
Format ogólny:
Przykładowa wartość: |
STORAGE_BUCKET |
Nazwa domyślnego 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
|
Format ogólny dla 1. zainstalowanej instancji (przypisywany automatycznie
przez Firebase; nie można go modyfikować przez użytkownika podczas instalacji):
Przykładowa wartość: Format ogólny dla 2. i kolejnych zainstalowanych instancji
(przypisywany automatycznie przez Firebase; można go modyfikować przez użytkownika
podczas instalacji):
Przykładowa wartość: |
Parametry konfigurowane przez użytkownika
Aby umożliwić użytkownikowi dostosowanie każdej zainstalowanej instancji rozszerzenia, możesz poprosić go o podanie wartości parametrów podczas instalacji. Aby poprosić o te wartości, skonfiguruj prośby w sekcji params pliku extension.yaml.
Oto przykład sekcji params oraz tabela opisująca wszystkie dostępne pola 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 konfigurowany 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świetlany użytkownikowi, gdy jest on proszony o podanie wartości parametru |
||||
description(opcjonalne) |
ciąg znaków |
Szczegółowy opis parametru Wyświetlany użytkownikowi, gdy jest on proszony o podanie wartości parametru Obsługuje Markdown | ||||
type(opcjonalne) |
ciąg znaków |
Mechanizm wprowadzania, za pomocą którego użytkownik ustawia wartość parametru (for example, enter text directly or select from dropdown list) Prawidłowe wartości:
Jeśli to pole zostanie pominięte, parametr domyślnie przyjmie wartość |
||||
options(wymagane, jeśli parametr type
ma wartość select lub multiSelect)
|
list |
Lista wartości, z których użytkownik może wybrać W polu
Pole |
||||
resourceType(wymagane, jeśli parametr type
ma wartość selectResource)
|
ciąg znaków |
Typ zasobu Firebase, który ma wybrać użytkownik. Obecnie selektory zasobów obsługują tylko zasobniki Cloud Storage:
Nieznane |
||||
example(opcjonalne) |
ciąg znaków |
Przykładowa wartość parametru |
||||
validationRegex(opcjonalne) (dotyczy tylko sytuacji, gdy parametr type ma
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 Więcej informacji o weryfikacji znajdziesz w sekcji Weryfikacja i komunikaty o błędach poniżej. |
||||
validationErrorMessage(opcjonalne) |
ciąg znaków |
Komunikat o błędzie, który ma się wyświetlać, jeśli
Więcej informacji o komunikatach o błędach znajdziesz w sekcji Weryfikacja i komunikaty o błędach poniżej. |
||||
default(opcjonalne) |
ciąg znaków |
Domyślna wartość parametru, jeśli użytkownik pozostawi pole wartości parametru puste W razie potrzeby możesz określić wartość parametru wypełnianego automatycznie jako wartość |
||||
required(opcjonalne) |
Wartość logiczna |
Określa, czy użytkownik może przesłać pusty ciąg znaków, gdy jest proszony o podanie wartości parametru Jeśli |
||||
immutable(opcjonalne) |
Wartość logiczna |
Określa, czy użytkownik może zmienić wartość parametru po instalacji (np. jeśli ponownie skonfiguruje rozszerzenie) Jeśli
Uwaga: jeśli zdefiniujesz parametr „location” dla wdrożonych funkcji rozszerzenia, musisz uwzględnić to pole |
Weryfikacja i komunikaty o błędach dotyczące wartości konfigurowanych przez użytkownika
Gdy konfigurujesz parametr z type równym string, musisz zdefiniować
odpowiednią weryfikację za pomocą wyrażenia regularnego w polu parametru
validationRegex.
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 Extensionsnie weryfikuje tych elementów w momencie wprowadzania wartości parametru:
- czy określona baza danych lub Cloud Storage zasobnik jest skonfigurowany w projekcie w Firebase użytkownika,
- czy określona ścieżka do bazy danych istnieje w bazie danych użytkownika.
Gdy jednak rozszerzenie faktycznie wdraża swoje zasoby, konsola Firebase lub interfejs wiersza poleceń Firebase wyświetli komunikat o błędzie, jeśli baza danych lub zasobnik Cloud Storage, do którego się odwołuje, nie jest jeszcze skonfigurowany w projekcie.
Zdecydowanie zalecamy poinformowanie użytkowników o tych wymaganiach w pliku
PREINSTALL, aby podczas instalacji rozszerzenia zostało ono
zainstalowane i działało zgodnie z oczekiwaniami.
Parametry systemowe
Parametry systemowe kontrolują podstawową konfigurację zasobów rozszerzenia. Ponieważ mają one kontrolować konfigurację zasobów, nie są dostępne jako zmienne środowiskowe w kodzie funkcji.
Zwykle nie musisz deklarować niczego w przypadku tych parametrów w pliku extension.yaml.
Są one automatycznie definiowane dla każdej instancji rozszerzenia, a użytkownicy mają możliwość ustawienia wartości niestandardowych podczas instalacji rozszerzenia.
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 pliku extension.yaml.
Te ustawienia konfiguracji poszczególnych zasobów zastąpią ustawienia użytkownika dotyczące całej instancji rozszerzenia.
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 człowieka) | Odpowiednie pole w properties |
Opis |
|---|---|---|---|
| firebaseextensions.v1beta.function/location | Lokalizacja | location |
W jakim regionie mają zostać wdrożone funkcje w 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 |
Po ilu sekundach funkcje mają przekroczyć limit czasu? |
| firebaseextensions.v1beta.function/vpcConnectorEgressSettings | Ruch wychodzący oprogramowania sprzęgającego 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 funkcje w 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ć uruchomione jednocześnie |
| firebaseextensions.v1beta.function/ingressSettings | Ustawienia ruchu przychodzącego | ingressSettings |
Określa, skąd ma być akceptowany ruch przychodzący |
| firebaseextensions.v1beta.function/labels | Etykiety | labels |
Etykiety, które mają być stosowane do wszystkich zasobów w rozszerzeniu |