← Cloudflare Flagship / flagship
Основные понятия
Flagship группирует флаги функций в приложения. Вы задаёте флаги с вариантами и правилами таргетинга, а затем выполняете их оценку в глобальной сети Cloudflare.
Обзор
Флаги функций Flagship проходят три этапа от создания до оценки:
- Настройте : Создавайте флаги и правила нацеливания в Панель управления Cloudflare ↗ или через API.
- Распространение : Flagship автоматически распространяет конфигурацию флагов по глобальной сети Cloudflare за считаные секунды.
- Оценка : Ваш Worker (или SDK) оценивает флаги локально, используя распространённую конфигурацию. Обращения к центральному серверу не требуется.
Изменения флагов вступают в силу глобально в течение нескольких секунд после сохранения. Вам не нужно повторно развёртывать Worker или перезапускать приложение. Если панель управления временно недоступна, оценка флагов продолжает работать на основе последней распространённой конфигурации.
Приложения
Приложение представляет собой организационную единицу верхнего уровня в Flagship. Оно объединяет связанные флаги.
Обычно приложение соответствует одному проекту, сервису или продуктовой области. У каждого аккаунта Cloudflare может быть несколько приложений. Например, можно создать одно приложение для маркетингового сайта и другое для бэкенда API.
Флаги
Флаг является именованным переключателем функции. У каждого флага есть ключ, набор варианты, правила таргетинга, и состояние включено/выключено.
Ключи флагов должны быть уникальными в рамках приложения. Ключи могут содержать буквы, цифры, дефисы и символы подчёркивания.
Когда флаг отключен, он всегда возвращает вариант по умолчанию независимо от правил таргетинга. Выбирайте вариант по умолчанию так, чтобы он был безопасен для вашего приложения на случай, если Flagship не сможет вычислить флаг.
Варианты
Варианты представляют собой возможные значения, которые может вернуть флаг. У каждого флага должен быть хотя бы один вариант, и один из вариантов назначается вариантом по умолчанию.
Flagship поддерживает четыре типа вариантов:
| Тип | Пример |
|---|---|
| Boolean | on: true, off: false |
| String | v1: "old-checkout", v2: "new-checkout" |
| Число | low: 100, high: 1000 |
| JSON | premium: { "tier": "premium", "features": ["analytics", "export"] } |
Используйте булевы флаги для простых переключателей включено и выключено. Используйте строковые, числовые или JSON флаги, когда нужно передать значения конфигурации или структурированные данные. Варианты JSON могут содержать объекты или массивы.
Правила таргетинга
Правила таргетинга определяют, какой вариант флаг возвращает для конкретного запроса. Правила проверяются последовательно, и побеждает первое подходящее правило. Если ни одно правило не подошло, возвращается вариант по умолчанию.
Каждое правило содержит:
- Условия которые сравнивают атрибут из контекст оценки со значением с помощью оператора.
- Необязательный процентное развёртывание который распределяет трафик между вариантами.
- A вариант который нужно предоставить, когда правило совпадает.
Условия внутри правила можно группировать с помощью AND/OR операторов.
См. Правила таргетинга и Операторы для полного списка операторов и параметров конфигурации.
Контекст оценки
Контекст оценки представляет собой набор атрибутов в формате ключ-значение, которые описывают текущего пользователя или запрос (например, userId, country, plan).
Контекст передаётся третьим аргументом в методы оценки привязки:
const value = await env.FLAGS.getBooleanValue("new-checkout", false, {
userId: "user-42",
country: "US",
});При использовании OpenFeature SDK, вы передаёте контекст через объект контекста оценки OpenFeature.
Flagship использует атрибуты контекста для сопоставления с правилами таргетинга и распределения по бакетам при процентном развёртывании. Постоянный контекст (например, один и тот же userId) даёт одинаковый результат постепенного развёртывания при каждой оценке.
Не передавайте конфиденциальные данные в контексте оценки. Включайте только атрибуты, необходимые для правил таргетинга или распределения при развёртывании.
Распространение флагов
После изменения флага обновлённому значению может потребоваться до 30 секунд, чтобы распространиться глобально. В течение этого периода некоторые оценки могут по-прежнему возвращать предыдущее значение флага.