Параметры и условия Remote Config в серверных шаблонах

Выберите тип шаблона: Клиентские шаблоны Серверные шаблоны


Вы можете передавать параметры и значения Remote Config из шаблонов для определенных серверов в реализации Remote Config (включая Cloud Run и Cloud Functions for Firebase), которые используют следующие серверные среды:

  • Firebase Admin Node.js SDK версии 12.1.0 или более поздней;
  • Firebase Admin Python SDK версии 6.7.0 или более поздней;
  • Firebase Admin Go SDK версии 4.17.0 или более поздней;
  • Firebase Admin Java SDK 9.7.0 или более поздней версии;

При использовании консоли Firebase или серверных API Remote Config вы определяете один или несколько параметров (пар "ключ-значение") и указываете для них значения по умолчанию в серверном коде. Вы можете переопределить значения по умолчанию, задав значения параметров в шаблоне Remote Config. Ключи и значения параметров представляют собой строки, но значения можно преобразовать в другие типы данных для использования в приложении.

С помощью консоли Firebase, Admin SDK или Remote Config REST API вы можете создавать новые значения по умолчанию для параметров, а также условные значения, которые используются для таргетинга на группы клиентских запросов. Каждый раз, когда вы обновляете конфигурацию в консоли Firebase, Firebase создает и публикует новую версию шаблона Remote Config. Предыдущая версия сохраняется, чтобы вы могли восстановить или откатить ее при необходимости. Эти операции доступны в консоли Firebase, Firebase Admin SDK и REST API. Подробнее о них рассказывается в статье Как управлять версиями шаблонов Remote Config.

В этом руководстве рассказывается о параметрах, условиях, правилах, условных значениях и о том, как различные значения параметров приоритизируются в серверной части Remote Config и в вашем серверном приложении. Также в нем подробно описаны типы правил, используемых для создания условий.

Условия, правила и условные значения

Условие используется для таргетинга на группу клиентских запросов. Условия состоят из одного или нескольких правил, которые должны иметь значение true, чтобы условие имело значение true для данного запроса клиента. Если значение для правила не определено (например, когда значение недоступно), то правило оценивается как false.

Например, вы можете создать параметр, который определяет название и версию большой языковой модели (LLM), и показывать ответы от разных моделей на основе правил специальных сигналов. В этом случае вы можете использовать стабильную версию модели по умолчанию для обработки большинства запросов, а экспериментальную модель – для ответов на запросы тестовых клиентов.

У параметра может быть несколько условных значений, которые используют разные условия, а параметры могут использовать общие условия в рамках проекта. В консоли Firebase перейдите на страницу DevOps & Engagement (DevOps и вовлечение) > Remote Config > Parameters (Параметры), чтобы посмотреть процент получения условных значений каждого параметра. Этот показатель отражает процент запросов за последние 24 часа, которые получили каждое значение.

Как добавлять, изменять, перемещать и удалять условия в консоли Firebase

В консоли Firebase можно создавать, изменять, упорядочивать и удалять условия таргетинга. Условия являются общими для всех параметров в проекте. Вот как управлять условиями:

  1. В консоли Firebase перейдите в раздел DevOps & Engagement (DevOps и вовлечение) > Remote Config (Удаленная конфигурация) > Conditions (Условия) или выберите Manage conditions (Управление условиями) на странице Parameters (Параметры).
  2. Добавить условие. Нажмите Добавить условие (или Создать первое условие), введите название, которое определяет цель таргетинга, и выберите одно или несколько правил таргетинга.
  3. Изменить условие. Нажмите на название условия или значок редактирования, измените правила и нажмите Сохранить.
  4. Изменить приоритет условий. На странице Условия перетащите условия за маркеры, чтобы изменить их порядок. Условия, расположенные выше в списке, имеют приоритет над условиями, расположенными ниже.
  5. Удалить условие. Нажмите на значок удаления рядом с нужным условием. Если на условие ссылается какой-либо параметр, то при удалении условия также удаляются связанные с ним условные значения.

Сохранив изменения, опубликуйте шаблон, нажав Опубликовать изменения.

Ограничение IPv6 при управлении доступом на основе IP-адресов

Remote Config имеет ограниченную поддержку IPv6 при использовании с правилами доступа на основе IP. Если в вашей организации ограничен доступ к определенным диапазонам общедоступных IP-адресов, при подключении через сеть IPv6 могут возникнуть следующие проблемы:

  • Доступ к консоли. Вы не сможете использовать некоторые функции Remote Config в консоли Firebase, например загружать данные или настраивать таргетинг.
  • Доступ клиентов. Клиентские приложения могут сталкиваться с ошибками PERMISSION_DENIED.

Чтобы избежать этих проблем, настройте сеть на использование IPv4 или добавьте необходимые диапазоны IP-адресов Firebase в белый список организации.

Приоритет значения параметра

При использовании Remote Config в серверных приложениях с помощью Firebase Admin SDK вы получаете и загружаете весь шаблон, чтобы извлекать нужные значения параметров по запросу для каждого клиента. С параметром может быть связано несколько условных значений.

При оценке шаблона в определенный момент времени значение присваивается по следующим правилам:

  1. Сначала применяются условные значения для всех условий, которые оцениваются как true для данного запроса клиента. Если несколько условий имеют значение true, приоритет имеет верхнее условие, показанное в интерфейсе консоли Firebase, и при оценке шаблона предоставляются условные значения, связанные с этим условием. Приоритет условий можно изменить, перетащив их на странице Условия.

  2. Если условных значений с условиями, которые оцениваются как true, нет, то при оценке шаблона используется значение по умолчанию для Remote Config. Если параметр отсутствует в шаблоне или для него задано значение по умолчанию Использовать значение по умолчанию в приложении, то при оценке шаблона значение для этого параметра не предоставляется.

Подробнее о том, как загружать и оценивать шаблоны Remote Config в серверных приложениях, читайте в статье Как использовать Remote Config в серверных средах.

Типы данных значений параметров

Remote Config позволяет выбрать тип данных для каждого параметра и проверяет все значения Remote Config на соответствие этому типу перед обновлением шаблона. Тип данных сохраняется и возвращается в запросе getRemoteConfig.

Поддерживаются следующие типы данных:

  • String
  • Boolean
  • Number
  • JSON

В консоли Firebase тип данных можно выбрать в раскрывающемся списке рядом с ключом параметра. В REST API типы можно задавать с помощью поля value_type в объекте параметра.

Группы параметров

Remote Config позволяет группировать параметры, чтобы сделать интерфейс более организованным и удобным.

Например, вам нужно включить или отключить три разных типа аутентификации при развертывании новой функции входа. В Remote Config вы можете создать три параметра, чтобы включить нужные типы, а затем объединить их в группу "Новый вход". При этом вам не нужно добавлять префиксы или использовать специальную сортировку.

Вы можете создавать группы параметров с помощью консоли Firebase или REST API Remote Config. Каждая группа параметров, которую вы создаете, имеет уникальное название в шаблоне Remote Config. При создании групп параметров учитывайте следующее:

  • Параметр может входить только в одну группу, а его ключ должен быть уникальным.
  • Название группы параметров может содержать не более 256 символов.
  • Если вы используете и REST API, и консоль Firebase, убедитесь, что логика REST API обновлена для обработки групп параметров при публикации.

Создание и изменение групп параметров в консоли Firebase

Вы можете группировать параметры в консоли Firebase. Вот как создать или изменить группу:

  1. В консоли Firebase перейдите на страницу DevOps & Engagement (DevOps и взаимодействие) > Remote Config (Удаленная конфигурация) > Parameters (Параметры).
  2. Выберите Управление группами.
  3. Установите флажки рядом с нужными параметрами и нажмите Переместить в группу.
  4. Выберите существующую группу или создайте новую, указав название и описание и нажав Создать группу. После сохранения группы ее можно опубликовать с помощью кнопки Опубликовать изменения.

Типы правил условий

Шаблоны Remote Config для серверных приложений поддерживают следующие типы условий:

Пользователь в случайном проценте

Используйте это поле, чтобы применить изменение к случайной выборке экземпляров приложения (размер выборки может составлять всего 0,0001 %). С помощью ползунка можно разделить случайно перемешанных пользователей (экземпляры приложения) на группы.

Каждому экземпляру приложения постоянно сопоставляется случайное целое или дробное число в соответствии с начальным значением, определенным в этом проекте.

Правило будет использовать ключ по умолчанию (в консоли Firebase он называется Изменить начальное значение), если вы не измените начальное значение. Чтобы вернуть правило к использованию ключа по умолчанию, очистите поле Начальное значение.

Чтобы постоянно обращаться к одним и тем же экземплярам приложения в заданных диапазонах процентов, используйте одно и то же начальное значение для всех условий. Вы также можете выбрать новую случайно назначенную группу экземпляров приложения для заданного диапазона процентов, указав новое начальное значение.

Например, чтобы создать два связанных условия, каждое из которых применяется к неперекрывающимся 5 % пользователей приложения, вы можете настроить одно условие для соответствия проценту от 0 % до 5 %, а другое – для соответствия диапазону от 5 % до 10 %. Чтобы некоторые пользователи случайным образом попадали в обе группы, используйте разные начальные значения для правил в каждом условии.

Подробнее о том, как добавить в приложение условия со случайным процентом…

Условия для специальных сигналов

Вы можете использовать условные значения пользовательского сигнала, чтобы сопоставлять произвольные условия, заданные в приложении. Это позволяет настраивать ответ сервера для каждого запроса клиента. Условия пользовательских сигналов поддерживаются в следующих версиях серверных сред:

  • Firebase Admin Node.js SDK версии 12.1.0 или более поздней;
  • Firebase Admin Python SDK версии 6.7.0 или более поздней;
  • Firebase Admin Go SDK версии 4.17.0 или более поздней;
  • Firebase Admin Java SDK 9.7.0 или более поздней версии;

Например, если вы работаете над серверным приложением, которое использует генеративный искусственный интеллект для создания ответов с помощью разных моделей, настроенных для определенных платформ, вы можете сделать следующее:

  1. Добавьте параметры prompt и model_name в серверный шаблон Remote Config.
  2. Добавьте условия для специальных сигналов со значением platform для каждой платформы, на которую вы хотите настроить таргетинг.
  3. Добавьте значения по умолчанию в шаблон Remote Config для конкретного сервера и условные значения для каждого заданного вами условия платформы.
  4. Обновите код приложения, чтобы задать и использовать специальный сигнал platform.

Теперь ваше приложение может извлекать подходящий запрос и модель во время оценки шаблона и использовать их для возврата настроенных ответов каждому клиенту.

В консоли Firebase можно создавать условия для специальных сигналов, используя следующие типы правил:

Категория оператора Операторы Значение
Текст "точно соответствует", "содержит", "не содержит", "содержит регулярное выражение"

При сравнении строк в этом правиле учитывается регистр. При использовании операторов точно соответствует, содержит, не содержит или содержит регулярное выражение можно выбрать несколько значений.

При использовании оператора содержит регулярное выражение вы можете создавать регулярные выражения в формате RE2. Регулярное выражение может соответствовать целевой строке версии полностью или частично. Вы также можете использовать символы ^ и $, чтобы сопоставлять начало, конец или всю целевую строку.

Numbers <, <=, =, !=, >, >= Число, содержащее не более 10 цифр до и после десятичного разделителя.
Версии <, <=, =, !=, >, >= Число, представляющее номера версий, которые нужно сопоставить (например, 2.1.0).

Инструкции по добавлению специальных сигналов в приложение приведены в разделе Настройка серверного приложения.

Параметры и условия поиска

Вы можете искать ключи параметров, значения параметров и условия в консоли Firebase, используя окно поиска в верхней части страницы DevOps & Engagement (DevOps и вовлечение) > Remote Config > Parameters (Параметры).

Ограничения на параметры и условия

В проекте Firebase может быть до 3000 параметров и до 2000 условий. Ключи параметров могут содержать до 256 символов, должны начинаться с символа подчеркивания или буквы английского алфавита (A–Z, a–z) и могут включать цифры. Общая длина строк со значениями параметров в проекте не может превышать 1 000 000 символов. Кроме того, правила условий, основанные на свойствах пользователей, могут включать до 100 значений свойств пользователей. Полный список ограничений приведен в разделе Квоты и ограничения.

Как посмотреть изменения параметров и условий

Последние изменения в шаблонах Remote Config можно посмотреть в консоли Firebase. Для каждого параметра и условия можно:

  • Имя пользователя, который последним изменил параметр или условие.

  • Если изменение было внесено в тот же день, вы увидите, сколько минут или часов прошло с момента его публикации в активном шаблоне Remote Config.

  • Если изменение произошло один или несколько дней назад, посмотрите дату, когда оно было опубликовано в активном шаблоне Remote Config.

История изменений параметров

В консоли Firebase перейдите на страницу DevOps & Engagement (DevOps и взаимодействие) > Remote Config (Удаленная конфигурация) > Parameters (Параметры). В столбце Последняя публикация указано, кто последним изменил параметр и когда это произошло.

  • Чтобы посмотреть метаданные изменений для сгруппированных параметров, разверните группу параметров.

  • Чтобы отсортировать список по дате публикации в порядке возрастания или убывания, нажмите на заголовок столбца Последняя публикация.

История изменений условий

В консоли Firebase перейдите в раздел DevOps & Engagement (DevOps и вовлечение) > Remote Config (Удаленная конфигурация) > Conditions (Условия). Рядом с каждым условием в разделе Последнее изменение указано, кто и когда его изменил.

Дальнейшие действия

Чтобы настроить проект Firebase и серверное приложение для использования Remote Config, ознакомьтесь со статьей Использование Remote Config в серверных средах.