Параметры — это механизм, с помощью которого пользователь настраивает каждый установленный экземпляр расширения. Параметры похожи на переменные среды расширения. Значения параметров могут заполняться автоматически (предоставляются Firebase после установки) или настраиваться пользователем (указанные пользователем во время установки).
Эти параметры доступны для ссылки в исходном коде функций вашего расширения, файле extension.yaml
и файле POSTINSTALL.md
. Вот синтаксис ссылки на параметр PARAMETER_NAME
:
В исходном коде функций используйте модуль
params
(например,params.defineInt(" PARAMETER_NAME ")
) илиprocess.envprocess.env. PARAMETER_NAME
.В файлах
extension.yaml
иPOSTINSTALL.md
используйте${param: PARAMETER_NAME }
.После установки консоль Firebase отображает содержимое файла
POSTINSTALL.md
и заполняет все ссылки на параметры фактическими значениями для установленного экземпляра.
Автоматически заполняемые параметры
Каждый установленный экземпляр расширения автоматически имеет доступ к нескольким автоматически заполняемым параметрам по умолчанию, предоставляемым Firebase (см. таблицу ниже). Эти значения параметров являются либо значениями по умолчанию для проекта Firebase (например, сегмент хранилища по умолчанию ), либо зависят от расширения (например, идентификатор экземпляра расширения).
Все автоматически заполняемые значения параметров являются неизменяемыми. Они задаются во время создания проекта или установки расширения.
Несмотря на то, что Firebase автоматически заполняет значения этих параметров для расширения, Firebase не предоставляет пользователю связанные продукты автоматически во время установки . Пользователь, устанавливающий расширение, должен включить связанные и применимые продукты в своем проекте перед установкой. Например, если ваше расширение включает Cloud Firestore , пользователь должен настроить Cloud Firestore в своем проекте. Мы рекомендуем уведомить ваших пользователей об этих требованиях в файле PREINSTALL.md
.
Ссылка на автоматически заполняемый параметр | Описание | Значение параметра (предоставлено Firebase) |
---|---|---|
Параметры со значениями по умолчанию из проекта Firebase | ||
PROJECT_ID | Уникальный идентификатор проекта Firebase, в котором установлено расширение. | Общий формат: Пример значения: |
DATABASE_URL | URL-адрес экземпляра Realtime Database проекта Firebase по умолчанию . | Общий формат: Пример значения: |
DATABASE_INSTANCE | Имя экземпляра Realtime Database по умолчанию для проекта Firebase. Обычно это значение совпадает с идентификатором проекта или заканчивается на | Общий формат: Пример значения: |
STORAGE_BUCKET | Имя сегмента Cloud Storage по умолчанию для проекта Firebase. | Общий формат:
|
Параметр со значением по умолчанию из установки расширения. | ||
EXT_INSTANCE_ID | Уникальный идентификатор установленного экземпляра расширения. Это значение генерируется из поля | Общий формат для первого установленного экземпляра (автоматически назначается Firebase; не может быть изменен пользователем во время установки): Пример значения: Общий формат для второго установленного экземпляра и выше (автоматически назначается Firebase; может быть изменен пользователем во время установки): Пример значения: |
Параметры, настраиваемые пользователем
Чтобы позволить пользователю настраивать каждый установленный экземпляр расширения, вы можете попросить пользователя указать значения параметров во время установки. Чтобы запросить эти значения, вы настраиваете запросы в разделе params
вашего файла extension.yaml
.
Ниже приведен пример раздела params
, за которым следует таблица, описывающая все доступные поля параметров.
# 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
В разделе params
вашего файла extension.yaml
используйте следующие поля для определения настраиваемого пользователем параметра:
Поле | Тип | Описание | ||||
---|---|---|---|---|---|---|
param (необходимый) | нить | Имя параметра | ||||
label (необходимый) | нить | Краткое описание параметра Отображается пользователю, когда ему предлагается ввести значение параметра. | ||||
description (необязательный) | нить | Подробное описание параметра Отображается пользователю, когда ему предлагается ввести значение параметра. Поддерживает уценку | ||||
type (необязательный) | нить | Механизм ввода того, как пользователь устанавливает значение параметра (например, ввод текста напрямую или выбор из раскрывающегося списка). Допустимые значения включают следующее:
Если это поле опущено, параметр по умолчанию имеет | ||||
options (обязательно, если type параметра — select или multiSelect ) | список | Список значений, из которых пользователь может выбирать Включите поля
Поле пример синтаксиса options: - label: value: - label: value: - label: value: | ||||
resourceType (обязательно, если type параметра — selectResource ) | нить | Тип ресурса Firebase, который пользователю будет предложено выбрать. В настоящее время только сегменты Cloud Storage поддерживают селекторы ресурсов:
Неизвестные значения | ||||
example (необязательный) | нить | Пример значения параметра | ||||
validationRegex (необязательный) (применимо только в том случае, если type параметра — string ) | нить | Строка регулярного выражения для проверки значения параметра, настроенного пользователем. Regex компилируется с использованием библиотеки go: RE2. Подробную информацию о проверке см. в разделе «Проверка и сообщение об ошибках» ниже. | ||||
validationErrorMessage (необязательный) | нить | Сообщение об ошибке, отображаемое в случае сбоя Подробную информацию об обмене сообщениями об ошибках см. в разделе «Проверка и обмен сообщениями об ошибках» ниже. | ||||
default (необязательный) | нить | Значение по умолчанию для параметра, если пользователь оставляет значение параметра пустым. Если применимо, вы можете указать автоматически заполняемое значение параметра для значения | ||||
required (необязательный) | логическое значение | Определяет, может ли пользователь отправить пустую строку, когда ему будет предложено ввести значение параметра. Если | ||||
immutable (необязательный) | логическое значение | Определяет, может ли пользователь изменить значение параметра после установки (например, если он перенастроит расширение). Если Примечание. Если вы определяете параметр «местоположение» для развернутых функций вашего расширения , вам следует включить это |
Проверка и сообщение об ошибках для значений, настроенных пользователем.
Когда вы настраиваете параметр с type
string
, вам необходимо определить соответствующую проверку регулярного выражения через поле validationRegex
параметра.
Кроме того, для многих расширений часто запрашиваемым значением параметра является путь к базе данных или сегмент Cloud Storage . Имейте в виду, что во время установки, перенастройки или обновления служба Extensions не проверяет следующее во время ввода значения параметра:
- Настроена ли указанная база данных или сегмент Cloud Storage в проекте Firebase пользователя.
- Существует ли указанный путь к базе данных в базе данных пользователя.
Однако когда расширение фактически развертывает свои ресурсы, консоль Firebase или интерфейс командной строки Firebase отобразит сообщение об ошибке, если указанная база данных или сегмент Cloud Storage еще не настроены в проекте.
Мы настоятельно рекомендуем вам уведомить пользователей об этих требованиях в файле PREINSTALL
, чтобы при установке вашего расширения оно успешно установилось и работало должным образом.
Параметры системы
Системные параметры управляют базовой конфигурацией ресурсов расширения. Поскольку они предназначены для управления конфигурацией ресурсов, они недоступны как переменные среды из кода функции.
Обычно вам не нужно ничего объявлять для этих параметров в extension.yaml
. Они автоматически определяются для каждого экземпляра расширения, и пользователи имеют возможность устанавливать собственные значения при установке вашего расширения.
Однако если у вашего расширения есть особые требования к ресурсам, вы можете установить конкретные значения на уровне каждого ресурса в extension.yaml
. Эти параметры конфигурации для каждого ресурса переопределяют настройки расширения пользователя для всего экземпляра. Например:
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
Доступные системные параметры:
Имя | Этикетка (безопасная для человека) | Соответствующее поле в properties | Описание |
---|---|---|---|
firebaseextensions.v1beta.function/location | Расположение | location | В каком регионе следует развернуть облачные функции? |
firebaseextensions.v1beta.function/memory | Функциональная память | memory | Сколько мегабайт памяти следует выделить каждой функции? |
firebaseextensions.v1beta.function/timeoutSeconds | Тайм-аут функции | timeout | Сколько секунд должны выполняться функции до истечения времени ожидания? |
firebaseextensions.v1beta.function/vpcConnectorEgressSettings | Выходной разъем VPC | vpcConnectorEgressSettings | Управляет исходящим трафиком, когда настроен соединитель VPC. |
firebaseextensions.v1beta.function/vpcConnector | Разъем VPC | vpcConnector | Подключает облачные функции к указанному соединителю VPC. |
firebaseextensions.v1beta.function/minInstances | Минимальное количество экземпляров функции | minInstances | Минимальное количество экземпляров этой функции для одновременного запуска. |
firebaseextensions.v1beta.function/maxInstances | Максимальное количество экземпляров функции | maxInstances | Максимальное количество экземпляров этой функции для одновременного запуска. |
firebaseextensions.v1beta.function/ingressSettings | Настройки входа | ingressSettings | Контролирует, откуда принимается входящий трафик |
firebaseextensions.v1beta.function/labels | Этикетки | labels | Ярлыки для применения ко всем ресурсам в расширении. |
Параметры — это механизм, с помощью которого пользователь настраивает каждый установленный экземпляр расширения. Параметры похожи на переменные среды расширения. Значения параметров могут заполняться автоматически (предоставляются Firebase после установки) или настраиваться пользователем (указанные пользователем во время установки).
Эти параметры доступны для ссылки в исходном коде функций вашего расширения, файле extension.yaml
и файле POSTINSTALL.md
. Вот синтаксис ссылки на параметр PARAMETER_NAME
:
В исходном коде функций используйте модуль
params
(например,params.defineInt(" PARAMETER_NAME ")
) илиprocess.envprocess.env. PARAMETER_NAME
.В файлах
extension.yaml
иPOSTINSTALL.md
используйте${param: PARAMETER_NAME }
.После установки консоль Firebase отображает содержимое файла
POSTINSTALL.md
и заполняет все ссылки на параметры фактическими значениями для установленного экземпляра.
Автоматически заполняемые параметры
Каждый установленный экземпляр расширения автоматически имеет доступ к нескольким автоматически заполняемым параметрам по умолчанию, предоставляемым Firebase (см. таблицу ниже). Эти значения параметров являются либо значениями по умолчанию для проекта Firebase (например, сегмент хранилища по умолчанию ), либо зависят от расширения (например, идентификатор экземпляра расширения).
Все автоматически заполняемые значения параметров являются неизменяемыми. Они задаются во время создания проекта или установки расширения.
Несмотря на то, что Firebase автоматически заполняет значения этих параметров для расширения, Firebase не предоставляет пользователю связанные продукты автоматически во время установки . Пользователь, устанавливающий расширение, должен включить связанные и применимые продукты в своем проекте перед установкой. Например, если ваше расширение включает Cloud Firestore , пользователь должен настроить Cloud Firestore в своем проекте. Мы рекомендуем уведомить ваших пользователей об этих требованиях в файле PREINSTALL.md
.
Ссылка на автоматически заполняемый параметр | Описание | Значение параметра (предоставлено Firebase) |
---|---|---|
Параметры со значениями по умолчанию из проекта Firebase | ||
PROJECT_ID | Уникальный идентификатор проекта Firebase, в котором установлено расширение. | Общий формат: Пример значения: |
DATABASE_URL | URL-адрес экземпляра Realtime Database проекта Firebase по умолчанию . | Общий формат: Пример значения: |
DATABASE_INSTANCE | Имя экземпляра Realtime Database по умолчанию для проекта Firebase. Обычно это значение совпадает с идентификатором проекта или заканчивается на | Общий формат: Пример значения: |
STORAGE_BUCKET | Имя сегмента Cloud Storage по умолчанию для проекта Firebase. | Общий формат:
|
Параметр со значением по умолчанию из установки расширения. | ||
EXT_INSTANCE_ID | Уникальный идентификатор установленного экземпляра расширения. Это значение генерируется из поля | Общий формат для первого установленного экземпляра (автоматически назначается Firebase; не может быть изменен пользователем во время установки): Пример значения: Общий формат для второго установленного экземпляра и выше (автоматически назначается Firebase; может быть изменен пользователем во время установки): Пример значения: |
Параметры, настраиваемые пользователем
Чтобы позволить пользователю настраивать каждый установленный экземпляр расширения, вы можете попросить пользователя указать значения параметров во время установки. Чтобы запросить эти значения, вы настраиваете запросы в разделе params
вашего файла extension.yaml
.
Ниже приведен пример раздела params
, за которым следует таблица, описывающая все доступные поля параметров.
# 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
В разделе params
вашего файла extension.yaml
используйте следующие поля для определения настраиваемого пользователем параметра:
Поле | Тип | Описание | ||||
---|---|---|---|---|---|---|
param (необходимый) | нить | Имя параметра | ||||
label (необходимый) | нить | Краткое описание параметра Отображается пользователю, когда ему предлагается ввести значение параметра. | ||||
description (необязательный) | нить | Подробное описание параметра Отображается пользователю, когда ему предлагается ввести значение параметра. Поддерживает уценку | ||||
type (необязательный) | нить | Механизм ввода того, как пользователь устанавливает значение параметра (например, ввод текста напрямую или выбор из раскрывающегося списка). Допустимые значения включают следующее:
Если это поле опущено, параметр по умолчанию имеет | ||||
options (обязательно, если type параметра — select или multiSelect ) | список | Список значений, из которых пользователь может выбирать Включите поля
Поле пример синтаксиса options: - label: value: - label: value: - label: value: | ||||
resourceType (обязательно, если type параметра — selectResource ) | нить | Тип ресурса Firebase, который пользователю будет предложено выбрать. В настоящее время только сегменты Cloud Storage поддерживают селекторы ресурсов:
Неизвестные значения | ||||
example (необязательный) | нить | Пример значения параметра | ||||
validationRegex (необязательный) (применимо только в том случае, если type параметра — string ) | нить | Строка регулярного выражения для проверки значения параметра, настроенного пользователем. Regex компилируется с использованием библиотеки go: RE2. Подробную информацию о проверке см. в разделе «Проверка и сообщение об ошибках» ниже. | ||||
validationErrorMessage (необязательный) | нить | Сообщение об ошибке, отображаемое в случае сбоя Подробную информацию об обмене сообщениями об ошибках см. в разделе «Проверка и обмен сообщениями об ошибках» ниже. | ||||
default (необязательный) | нить | Значение по умолчанию для параметра, если пользователь оставляет значение параметра пустым. Если применимо, вы можете указать автоматически заполняемое значение параметра для значения | ||||
required (необязательный) | логическое значение | Определяет, может ли пользователь отправить пустую строку, когда ему будет предложено ввести значение параметра. Если | ||||
immutable (необязательный) | логическое значение | Определяет, может ли пользователь изменить значение параметра после установки (например, если он перенастроит расширение). Если Примечание. Если вы определяете параметр «местоположение» для развернутых функций вашего расширения , вам следует включить это |
Проверка и сообщение об ошибках для значений, настроенных пользователем.
Когда вы настраиваете параметр с type
string
, вам необходимо определить соответствующую проверку регулярного выражения через поле validationRegex
параметра.
Кроме того, для многих расширений часто запрашиваемым значением параметра является путь к базе данных или сегмент Cloud Storage . Имейте в виду, что во время установки, перенастройки или обновления служба Extensions не проверяет следующее во время ввода значения параметра:
- Настроена ли указанная база данных или сегмент Cloud Storage в проекте Firebase пользователя.
- Существует ли указанный путь к базе данных в базе данных пользователя.
Однако когда расширение фактически развертывает свои ресурсы, консоль Firebase или интерфейс командной строки Firebase отобразит сообщение об ошибке, если указанная база данных или сегмент Cloud Storage еще не настроены в проекте.
Мы настоятельно рекомендуем вам уведомить пользователей об этих требованиях в файле PREINSTALL
, чтобы при установке вашего расширения оно успешно установилось и работало должным образом.
Параметры системы
Системные параметры управляют базовой конфигурацией ресурсов расширения. Поскольку они предназначены для управления конфигурацией ресурсов, они недоступны как переменные среды из кода функции.
Обычно вам не нужно ничего объявлять для этих параметров в extension.yaml
. Они автоматически определяются для каждого экземпляра расширения, и пользователи имеют возможность устанавливать собственные значения при установке вашего расширения.
Однако если у вашего расширения есть особые требования к ресурсам, вы можете установить конкретные значения на уровне каждого ресурса в extension.yaml
. Эти параметры конфигурации для каждого ресурса переопределяют настройки расширения пользователя для всего экземпляра. Например:
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
Доступные системные параметры:
Имя | Этикетка (безопасная для человека) | Соответствующее поле в properties | Описание |
---|---|---|---|
firebaseextensions.v1beta.function/location | Расположение | location | В каком регионе следует развернуть облачные функции? |
firebaseextensions.v1beta.function/memory | Функциональная память | memory | Сколько мегабайт памяти следует выделить каждой функции? |
firebaseextensions.v1beta.function/timeoutSeconds | Тайм-аут функции | timeout | Сколько секунд должны выполняться функции до истечения времени ожидания? |
firebaseextensions.v1beta.function/vpcConnectorEgressSettings | Выходной разъем VPC | vpcConnectorEgressSettings | Управляет исходящим трафиком, когда настроен соединитель VPC. |
firebaseextensions.v1beta.function/vpcConnector | Разъем VPC | vpcConnector | Подключает облачные функции к указанному соединителю VPC. |
firebaseextensions.v1beta.function/minInstances | Минимальное количество экземпляров функции | minInstances | Минимальное количество экземпляров этой функции для одновременного запуска. |
firebaseextensions.v1beta.function/maxInstances | Максимальное количество экземпляров функции | maxInstances | Максимальное количество экземпляров этой функции для одновременного запуска. |
firebaseextensions.v1beta.function/ingressSettings | Настройки входа | ingressSettings | Контролирует, откуда принимается входящий трафик |
firebaseextensions.v1beta.function/labels | Этикетки | labels | Ярлыки для применения ко всем ресурсам в расширении. |
Параметры — это механизм, с помощью которого пользователь настраивает каждый установленный экземпляр расширения. Параметры похожи на переменные среды расширения. Значения параметров могут заполняться автоматически (предоставляются Firebase после установки) или настраиваться пользователем (указанные пользователем во время установки).
Эти параметры доступны для ссылки в исходном коде функций вашего расширения, файле extension.yaml
и файле POSTINSTALL.md
. Вот синтаксис ссылки на параметр PARAMETER_NAME
:
В исходном коде функций используйте модуль
params
(например,params.defineInt(" PARAMETER_NAME ")
) илиprocess.envprocess.env. PARAMETER_NAME
.В файлах
extension.yaml
иPOSTINSTALL.md
используйте${param: PARAMETER_NAME }
.После установки консоль Firebase отображает содержимое файла
POSTINSTALL.md
и заполняет все ссылки на параметры фактическими значениями для установленного экземпляра.
Автоматически заполняемые параметры
Каждый установленный экземпляр расширения автоматически имеет доступ к нескольким автоматически заполняемым параметрам по умолчанию, предоставляемым Firebase (см. таблицу ниже). Эти значения параметров являются либо значениями по умолчанию для проекта Firebase (например, сегмент хранилища по умолчанию ), либо зависят от расширения (например, идентификатор экземпляра расширения).
Все автоматически заполняемые значения параметров являются неизменяемыми. Они задаются во время создания проекта или установки расширения.
Несмотря на то, что Firebase автоматически заполняет значения этих параметров для расширения, Firebase не предоставляет пользователю связанные продукты автоматически во время установки . Пользователь, устанавливающий расширение, должен включить связанные и применимые продукты в своем проекте перед установкой. Например, если ваше расширение включает Cloud Firestore , пользователь должен настроить Cloud Firestore в своем проекте. Мы рекомендуем уведомить ваших пользователей об этих требованиях в файле PREINSTALL.md
.
Ссылка на автоматически заполняемый параметр | Описание | Значение параметра (предоставлено Firebase) |
---|---|---|
Параметры со значениями по умолчанию из проекта Firebase | ||
PROJECT_ID | Уникальный идентификатор проекта Firebase, в котором установлено расширение. | Общий формат: Пример значения: |
DATABASE_URL | URL-адрес экземпляра Realtime Database проекта Firebase по умолчанию . | Общий формат: Пример значения: |
DATABASE_INSTANCE | Имя экземпляра Realtime Database по умолчанию для проекта Firebase. Обычно это значение совпадает с идентификатором проекта или заканчивается на | Общий формат: Пример значения: |
STORAGE_BUCKET | Имя сегмента Cloud Storage по умолчанию для проекта Firebase. | Общий формат:
|
Параметр со значением по умолчанию из установки расширения. | ||
EXT_INSTANCE_ID | Уникальный идентификатор установленного экземпляра расширения. Это значение генерируется из поля | Общий формат для первого установленного экземпляра (автоматически назначается Firebase; не может быть изменен пользователем во время установки): Пример значения: Общий формат для второго установленного экземпляра и выше (автоматически назначается Firebase; может быть изменен пользователем во время установки): Пример значения: |
Параметры, настраиваемые пользователем
Чтобы позволить пользователю настраивать каждый установленный экземпляр расширения, вы можете попросить пользователя указать значения параметров во время установки. Чтобы запросить эти значения, вы настраиваете запросы в разделе params
вашего файла extension.yaml
.
Ниже приведен пример раздела params
, за которым следует таблица, описывающая все доступные поля параметров.
# 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
В разделе params
вашего файла extension.yaml
используйте следующие поля для определения настраиваемого пользователем параметра:
Поле | Тип | Описание | ||||
---|---|---|---|---|---|---|
param (необходимый) | нить | Имя параметра | ||||
label (необходимый) | нить | Краткое описание параметра Отображается пользователю, когда ему предлагается ввести значение параметра. | ||||
description (необязательный) | нить | Подробное описание параметра Отображается пользователю, когда ему предлагается ввести значение параметра. Поддерживает уценку | ||||
type (необязательный) | нить | Механизм ввода того, как пользователь устанавливает значение параметра (например, ввод текста напрямую или выбор из раскрывающегося списка). Допустимые значения включают следующее:
Если это поле опущено, параметр по умолчанию имеет | ||||
options (обязательно, если type параметра — select или multiSelect ) | список | Список значений, из которых пользователь может выбирать Включите поля
Поле пример синтаксиса options: - label: value: - label: value: - label: value: | ||||
resourceType (обязательно, если type параметра — selectResource ) | нить | Тип ресурса Firebase, который пользователю будет предложено выбрать. В настоящее время только сегменты Cloud Storage поддерживают селекторы ресурсов:
Неизвестные значения | ||||
example (необязательный) | нить | Пример значения параметра | ||||
validationRegex (необязательный) (применимо только в том случае, если type параметра — string ) | нить | Строка регулярного выражения для проверки значения параметра, настроенного пользователем. Regex компилируется с использованием библиотеки go: RE2. Подробную информацию о проверке см. в разделе «Проверка и сообщение об ошибках» ниже. | ||||
validationErrorMessage (необязательный) | нить | Сообщение об ошибке, отображаемое в случае сбоя Подробную информацию об обмене сообщениями об ошибках см. в разделе «Проверка и обмен сообщениями об ошибках» ниже. | ||||
default (необязательный) | нить | Значение по умолчанию для параметра, если пользователь оставляет значение параметра пустым. Если применимо, вы можете указать автоматически заполняемое значение параметра для значения | ||||
required (необязательный) | логическое значение | Определяет, может ли пользователь отправить пустую строку, когда ему будет предложено ввести значение параметра. Если | ||||
immutable (необязательный) | логическое значение | Определяет, может ли пользователь изменить значение параметра после установки (например, если он перенастроит расширение). Если Примечание. Если вы определяете параметр «местоположение» для развернутых функций вашего расширения , вам следует включить это |
Проверка и сообщение об ошибках для значений, настроенных пользователем.
Когда вы настраиваете параметр с type
string
, вам необходимо определить соответствующую проверку регулярного выражения через поле validationRegex
параметра.
Кроме того, для многих расширений часто запрашиваемым значением параметра является путь к базе данных или сегмент Cloud Storage . Имейте в виду, что во время установки, перенастройки или обновления служба Extensions не проверяет следующее во время ввода значения параметра:
- Настроена ли указанная база данных или сегмент Cloud Storage в проекте Firebase пользователя.
- Существует ли указанный путь к базе данных в базе данных пользователя.
Однако, когда расширение фактически развертывает свои ресурсы, консоль Firebase или интерфейс командной строки Firebase отобразит сообщение об ошибке, если указанная база данных или сегмент Cloud Storage еще не настроены в проекте.
Мы настоятельно рекомендуем вам уведомить пользователей об этих требованиях в файле PREINSTALL
, чтобы при установке вашего расширения оно успешно установилось и работало должным образом.
Параметры системы
Системные параметры управляют базовой конфигурацией ресурсов расширения. Поскольку они предназначены для управления конфигурацией ресурсов, они недоступны как переменные среды из кода функции.
Обычно вам не нужно ничего объявлять для этих параметров в extension.yaml
. Они автоматически определяются для каждого экземпляра расширения, и пользователи имеют возможность устанавливать собственные значения при установке вашего расширения.
Однако если у вашего расширения есть особые требования к ресурсам, вы можете установить конкретные значения на уровне каждого ресурса в extension.yaml
. Эти параметры конфигурации для каждого ресурса переопределяют настройки расширения пользователя для всего экземпляра. Например:
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
Доступные системные параметры:
Имя | Этикетка (безопасная для человека) | Соответствующее поле в properties | Описание |
---|---|---|---|
firebaseextensions.v1beta.function/location | Расположение | location | В каком регионе следует развернуть облачные функции? |
firebaseextensions.v1beta.function/memory | Функциональная память | memory | Сколько мегабайт памяти следует выделить каждой функции? |
firebaseextensions.v1beta.function/timeoutSeconds | Тайм-аут функции | timeout | Сколько секунд должны выполняться функции до истечения времени ожидания? |
firebaseextensions.v1beta.function/vpcConnectorEgressSettings | Выходной разъем VPC | vpcConnectorEgressSettings | Управляет исходящим трафиком, когда настроен соединитель VPC. |
firebaseextensions.v1beta.function/vpcConnector | Разъем VPC | vpcConnector | Подключает облачные функции к указанному соединителю VPC. |
firebaseextensions.v1beta.function/minInstances | Минимальное количество экземпляров функции | minInstances | Минимальное количество экземпляров этой функции для одновременного запуска. |
Firebaseextensions.v1beta.function/maxinstances | Максимальные экземпляры функции | maxInstances | Максимальное количество экземпляров этой функции сразу запускается |
Firebaseextensions.v1beta.function/IngressSettings | Настройки входа | ingressSettings | Управление, где входящий трафик принимается из |
Firebaseextensions.v1beta.function/Labels | Ярлыки | labels | Метки для применения ко всем ресурсам в расширении |
Параметры - это механизм, с помощью которого пользователь настраивает каждый установленный экземпляр расширения. Параметры похожи на переменные среды для расширения. Значения для параметров могут быть автоматически заполнены (предоставлены Firebase после установки), либо с помощью пользователя (указано пользователем во время установки).
Эти параметры доступны для ссылки в исходном коде функций расширения, ваш файл extension.yaml
и ваш файл POSTINSTALL.md
. Вот синтаксис для ссылки на параметр с именем PARAMETER_NAME
:
В рамках исходного кода ваших функций используйте модуль
params
(например,params.defineInt(" PARAMETER_NAME ")
) илиprocess.env. PARAMETER_NAME
.В
extension.yaml
иPOSTINSTALL.md
используйте${param: PARAMETER_NAME }
.После установки консоль Firebase отображает содержимое файла
POSTINSTALL.md
и заполняет любые ссылки на параметры фактическими значениями для установленного экземпляра.
Автопулированные параметры
Каждый установленный экземпляр расширения автоматически имеет доступ к нескольким автоматическим параметрам по умолчанию по умолчанию, предоставленным Firebase (см. Таблицу ниже). Эти значения параметров являются либо значениями по умолчанию для проекта Firebase (например, ведро для хранения по умолчанию ), либо они специфичны для расширения (например, идентификатор экземпляра расширения).
Все автоматические значения параметров неизменны. Они устанавливаются во время создания проекта или установки расширения.
Несмотря на то, что Firebase Автопулирует эти значения параметров для расширения, Firebase не предоставляет связанные продукты для пользователя во время установки . Пользователь, устанавливающий расширение, должен включить связанные и применимые продукты в своем проекте перед установкой. Например, если ваше расширение включает в себя Cloud Firestore , пользователь должен настроить Cloud Firestore в своем проекте. Мы рекомендуем уведомлять ваших пользователей об этих требованиях в файле PREINSTALL.md
.
Справочник по автоматическому заполнению параметра | Описание | Значение параметра (предоставлено Firebase) |
---|---|---|
Параметры со значениями по умолчанию из проекта Firebase | ||
PROJECT_ID | Уникальный идентификатор для проекта Firebase, в котором установлено расширение | ОБЩИЙ ФОРМАТ: Пример значения: |
DATABASE_URL | URL экземпляра Realtime Database по умолчанию | ОБЩИЙ ФОРМАТ: Пример значения: |
DATABASE_INSTANCE | Имя экземпляра Realtime Database по умолчанию Firebase Обычно это значение совпадает с идентификатором проекта, или заканчивается в | ОБЩИЙ ФОРМАТ: Пример значения: |
STORAGE_BUCKET | Имя облачного хранилища проекта Firebase проекта по умолчанию | ОБЩИЙ ФОРМАТ:
|
Параметр со значением по умолчанию из установки расширения | ||
EXT_INSTANCE_ID | Уникальный идентификатор для установленного экземпляра расширения Это значение генерируется из поля | Обобщенный формат для 1-го установленного экземпляра (автоматически назначенный Firebase; не может быть модифицирован пользователем во время установки): Пример значения: Обобщенный формат для 2-го установленного экземпляра и выше (автоматически назначенный Firebase; может быть модифицирован пользователем во время установки): Пример значения: |
Пользовательские параметры
Чтобы позволить пользователю настраивать каждый установленный экземпляр расширения, вы можете попросить пользователя указать значения параметров во время установки. Чтобы запросить эти значения, вы настраиваете подсказки в разделе params
вашего файла extension.yaml
.
Вот пример раздела params
, за которым следует таблица, описывающая все доступные поля параметров.
# 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
В разделе params
вашего файла extension.yaml
используйте следующие поля для определения параметра с помощью пользователя:
Поле | Тип | Описание | ||||
---|---|---|---|---|---|---|
param (необходимый) | нить | Имя параметра | ||||
label (необходимый) | нить | Краткое описание параметра Отображается пользователю, когда его представлены для значения параметра | ||||
description (необязательный) | нить | Подробное описание параметра Отображается пользователю, когда его представлены для значения параметра Поддерживает отметки | ||||
type (необязательный) | нить | Механизм ввода для того, как пользователь устанавливает значение параметра (например, введите текст напрямую или выберите из раскрывающегося списка) Допустимые значения включают следующее:
Если это поле опущено, параметр по умолчанию | ||||
options (Требуется, если type параметра select или multiSelect ) | список | Список значений, из которых пользователь может выбрать Включите поля
Поле Пример синтаксиса options: - label: value: - label: value: - label: value: | ||||
resourceType (Требуется, если type параметра является selectResource ) | нить | Тип ресурса Firebase, чтобы попросить пользователя выбрать. В настоящее время только Cloud Storage ведра для хранения селекторов ресурсов:
Неизвестные значения | ||||
example (необязательный) | нить | Пример значения для параметра | ||||
validationRegex (необязательный) (Применимо только тогда, когда type параметра является string ) | нить | Строка Regex для проверки значения, сфигурируемого пользователем параметра Regex скомпилируется с использованием библиотеки GO: re2 Для получения подробной информации о проверке см. В соответствии с проверкой и обменом ошибок . | ||||
validationErrorMessage (необязательный) | нить | Сообщение об ошибке, чтобы отобразить, если Для получения подробной информации о обмене ошибок, см. В соответствии с проверкой и обменом ошибок . | ||||
default (необязательный) | нить | Значение по умолчанию для параметра, если пользователь покидает значение параметра. Если это применимо, вы можете указать автоматическое значение значения параметра для значения | ||||
required (необязательный) | логическое значение | Определяет, может ли пользователь отправить пустую строку, когда его предложено для значения параметра При | ||||
immutable (необязательный) | логическое значение | Определяет, может ли пользователь изменить значение параметра после установки (например, если он перенастроет расширение) Если Примечание. Если вы определяете параметр «местоположение» для развернутых функций вашего расширения , то вы должны включить это |
Проверка и обмен сообщениями об ошибках для сфигурированных пользователей значений
Когда вы настраиваете параметр с type
string
, вам необходимо определить соответствующую проверку Regex через поле validationRegex
параметра.
Кроме того, для многих расширений общепринятым значением параметра является путь базы данных или ведро Cloud Storage . Имейте в виду, что во время установки, реконфигурирования или обновления служба Extensions не подтверждает следующее во время записи значения параметра:
- Будь то указанная база данных или ведро Cloud Storage в рамках проекта пользователя Firebase
- Существует ли указанный путь базы данных в базе данных пользователя
Однако, когда расширение фактически развертывает свои ресурсы, консоль Firebase или CLI Firebase отобразит сообщение об ошибке, если в проекте еще не установлено ссылка на базу данных или Cloud Storage .
Мы настоятельно рекомендуем вам уведомить пользователей в PREINSTALL
файле об этих требованиях, чтобы при установлении вашего расширения он успешно устанавливает и работает, как и ожидалось.
Параметры системы
Параметры системы управляют основной конфигурацией ресурсов расширения. Поскольку они предназначены для управления конфигурацией ресурсов, они не доступны в качестве переменных среды из вашей функции.
Обычно вам не нужно что -то объявлять для этих параметров в extension.yaml
. YAML. Они автоматически определены для каждого экземпляра расширения, и пользователи имеют возможность установить пользовательские значения при установлении вашего расширения.
Однако, если ваше расширение имеет специальные требования к ресурсам, вы можете установить конкретные значения на уровне ресурса в extension.yaml
. YAML. Эти настройки конфигурации для каждого ресурса будут переопределять настройки по всей территории всего экземпляра пользователя. Например:
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
Доступные системные параметры:
Имя | Ярлык (по -человечески, дружелюбный) | Соответствующее поле в properties | Описание |
---|---|---|---|
Firebaseextensions.v1beta.function/местоположение | Расположение | location | В какую область следует развернуть облачные функции? |
Firebaseextensions.v1beta.function/память | Функциональная память | memory | Сколько мегабайт памяти должно быть выделено на каждую функцию? |
Firebaseextensions.v1beta.function/Timeoutseconds | Тайм -аут функции | timeout | Сколько секунд должно выполняться функциями, прежде чем выходить на работу? |
Firebaseextensions.v1beta.function/vpcconnectoregresssettings | Выход по разъему VPC | vpcConnectorEgressSettings | Управляет исходящим трафиком, когда настроен разъем VPC |
Firebaseextensions.v1beta.function/vpcconnector | Разъем VPC | vpcConnector | Подключает облачные функции к указанному разъему VPC. |
Firebaseextensions.v1beta.function/mininstances | Минимальные экземпляры функции | minInstances | Минимальное количество экземпляров этой функции сразу запустить |
Firebaseextensions.v1beta.function/maxinstances | Максимальные экземпляры функции | maxInstances | Максимальное количество экземпляров этой функции сразу запускается |
Firebaseextensions.v1beta.function/IngressSettings | Настройки входа | ingressSettings | Управление, где входящий трафик принимается из |
Firebaseextensions.v1beta.function/Labels | Ярлыки | labels | Метки для применения ко всем ресурсам в расширении |