Cloudflare CLI: установка cf, команды и миграция Workers

Разбираем Cloudflare CLI: установку и авторизацию cf, поиск команд, JSON-ответы, создание Workers, миграцию с Wrangler и безопасные сценарии для команд.

Tuesday, September 29, 2026Omid Saffari
Cloudflare CLI: установка cf, команды и миграция Workers

Cloudflare CLI теперь сводит работу к одному инструменту командной строки: установите cf, попросите найти нужную команду, получите структурированный JSON и через ту же точку входа создайте или перенесите Worker. Открытая бета-версия от 28 сентября важна тем, что этот CLI теперь охватывает более 3,000 операций Cloudflare API — против примерно 280 функций в Wrangler. При этом в сценариях, где Wrangler по-прежнему необходим, он остается частью рабочего процесса.

Главное преимущество — не в более коротких командах, а в меньшем объеме интеграционной работы. Основатель стартапа может изучить аккаунт без долгих поисков в панели управления, платформенная команда — выдавать агенту машиночитаемые результаты, а агентство — унифицировать работу с Cloudflare в аккаунтах клиентов, не поддерживая отдельную API-обертку для каждого продукта.

Отдельную лицензию на cf покупать не нужно. Репозиторий открыт, небольшой Worker можно запустить на бесплатном тарифе Cloudflare, а минимальная стоимость Workers Paid составляет $5 в месяц. На другом конце ценового диапазона — универсальные платформы управления инфраструктурой: например, тариф Starter+ у Spacelift стоит $20,000. cf убирает значительную часть работы с API между этими крайностями, но не отменяет необходимость в согласованиях, журналах аудита и аккуратной настройке прав.

Что представляет собой новый Cloudflare CLI

cf — это сгенерированный интерфейс командной строки ко всему Cloudflare API, дополненный вручную разработанными сценариями для создания, сборки, миграции и развертывания Workers. Wrangler можно представить как хорошо оснащенное специализированное рабочее место для Workers. cf добавляет справочную и единую стойку обслуживания для всего здания Cloudflare, но по-прежнему передает Wrangler те задачи с Workers, для которых он остается надежным инструментом.

Этим новая версия отличается и от технического превью Cloudflare от 13 апреля. Апрельская сборка поддерживала лишь небольшую часть продуктов. Сентябрьская открытая бета-версия получила полный охват API, JSON-ответы по умолчанию, поиск команд, конфигурацию Workers на TypeScript и Vite как стандартный путь разработки Worker.

Рабочий процесс меняют четыре основных компонента:

  • Полный охват API: сгенерированные команды строятся по схеме cf <product> [group…] <operation> и доступны более чем для 3,000 операций.
  • Поиск команд: cf cli search принимает описание задачи обычным языком и возвращает пять наиболее подходящих вариантов в JSON. Запоминать все дерево команд не требуется.
  • JSON по умолчанию: структурированные результаты API выводятся в стандартный поток как форматированный JSON, поэтому один и тот же ответ может фильтровать человек, скрипт или агент для разработки.
  • Типизированная настройка Worker: благодаря cloudflare.config.ts редакторы и агенты для программирования получают подсказки TypeScript. Сейчас это работает для Workers. Конфигурация всего аккаунта — DNS, зон и политик — остается направлением дальнейшего развития, а не доступной функцией.
Схема установки, авторизации, поиска команд и получения JSON для более чем 3,000 операций
Практичный цикл выглядит так: установить, авторизоваться, найти команду и проверить чтение данных в JSON.

Как установить Cloudflare CLI, войти и проверить чтение данных

Начните с операции только для чтения. Так можно проверить пакет, учетные данные, выбор аккаунта, поиск команд и работу с JSON до того, как скрипту будет разрешено что-либо менять.

Официальному пакету требуется Node.js 22 или новее. При работе в терминале cf auth login управляет профилем OAuth по умолчанию. В CI следует задать CLOUDFLARE_API_TOKEN с минимально необходимыми правами: cf проверяет эту переменную окружения раньше сохраненного профиля OAuth. Для работы с аккаунтами разных клиентов или компаний можно создавать именованные профили и привязывать их к отдельным каталогам.

Формулируйте запрос к cf cli search обобщенно. Указывайте действие и тип ресурса, но не домен, адрес электронной почты, идентификатор аккаунта или токен.

Bash
node --version
npm i -g cf
cf --version

cf auth login
cf auth whoami

cf cli search "list zones in an account"
cf zones list | jq -e 'type == "array" and all(.[]; has("name") and has("status"))'

Сейчас для этой задачи поиск ставит cf zones list на первое место. Последняя строка служит проверкой: она выполняет API-запрос только для чтения и завершается успешно, лишь если результат — JSON-массив, в каждом элементе которого есть name и status. Если аккаунтов несколько, выберите именованный профиль через --profile или отфильтруйте команду с помощью --account-id.

Не вставляйте токен в историю командной оболочки. Передавайте токен с ограниченными правами через окружение процесса CI и выдавайте ему только те разрешения на чтение или запись, которые нужны конкретной задаче. Для личной сессии в терминале удобнее OAuth: cf умеет обновлять выбранный профиль.

Что показал тест в чистой среде

При установке в чистой изолированной среде 29 сентября команда вернула cf v1.0.0-beta.5. Поиск команд выдал корректный JSON-массив из пяти элементов, cf init создал типизированный проект Worker, а новый проект и перенесенный тестовый проект Vite успешно собрались локально. В среде не было учетных данных тестового аккаунта Cloudflare, поэтому авторизованное чтение зон и развертывание не отмечены как пройденные тесты.

Это важное ограничение. Успешная локальная сборка подтверждает, что проектный сценарий работает, но не доказывает, что у токена есть нужные права в продакшене или что развертывание дошло до Cloudflare.

Создаем небольшой Worker и разбираем результат работы cf

cf init — самый быстрый способ с нуля проверить новый процесс работы с проектом. В пустом каталоге команда создает исходники TypeScript, cloudflare.config.ts, vite.config.ts, скрипты пакета и сгенерированные типы Worker. Затем cf build передает сборку Cloudflare Vite Plugin и формирует стандартизированный Build Output.

Bash
cf init hello-cf --package-manager npm
cd hello-cf
npm run build

# In a copied existing Vite Worker:
cf migrate --dry-run
cf migrate
npm run build

После любого из этих сценариев откройте cloudflare.config.ts. В простом Worker должен быть блок worker с именем, датой совместимости, точкой входа и типизированными привязками. Текстовая привязка объявляется через API конфигурации, а не копируется в несколько блоков окружения. Именно здесь TypeScript особенно полезен: опечатку в названии поля редактор может заметить до того, как она приведет к неудачному развертыванию.

Сгенерированная конфигурация Vite — не декоративное дополнение. Теперь cf по умолчанию использует Vite для локальной разработки и сборки, а Cloudflare рекомендует соответствующий плагин Vite и для фронтендов, и для серверных API. В одноразовом проекте npm run build запустил сборку через Vite и успешно завершился. Развертывание намеренно не выполнялось. После проверки кода и тестирования в аккаунте документированная команда cf deploy по умолчанию собирает и загружает проект.

Схема рабочего процесса Worker: от cf init через типизированную конфигурацию и Vite к локальной сборке
Новый Worker теперь начинается с типизированной конфигурации и сборки через Vite.

Когда Wrangler все еще нужен

Не удаляйте Wrangler только потому, что cf успешно установился. Правильный сценарий миграции зависит от того, как собирается проект.

В существующем Worker на Vite команда cf migrate может преобразовать конфигурацию Wrangler в формате JSON, JSONC или TOML в cloudflare.config.ts. Она находит Cloudflare Vite Plugin рядом с конфигурацией Wrangler и выбирает путь Vite. Если плагин не объявлен, текущие бета-версии используют сборщик Wrangler. Сначала запустите предварительный просмотр, внимательно прочитайте все дальнейшие рекомендации и выполняйте миграцию в копии проекта или чистой ветке, не затрагивая рабочую версию.

Для JavaScript Workers, которые все еще зависят от поведения esbuild в Wrangler, cf делегирует Wrangler локальную разработку и развертывание. То же самое происходит с Workers на Rust и Python. Это совместимость, а не неудачная миграция: команда получает cf как единую точку входа, а проверенный сборщик остается в рабочем процессе.

График поддержки Cloudflare тоже легко понять неверно. Обслуживание Wrangler планируется в течение 18 месяцев после завершения открытого бета-тестирования, а не 18 месяцев с запуска 28 сентября. Поэтому нет причин уже на этой неделе принудительно переводить на Vite проект, использующий Rust, Python или esbuild.

Схема выбора: Vite работает в cf напрямую, а esbuild, Python и Rust продолжают использовать Wrangler
Vite идет по нативному пути cf. Для esbuild, Python и Rust Wrangler остается частью процесса.

Семь сценариев, которые окупятся первыми

Лучшие стартовые сценарии объединяет одно свойство: они избавляют от повторяющегося поиска и форматирования, не выдавая широкие права на запись с первого дня.

1. Агентство унифицирует проверки аккаунтов

Сотрудник агентства может привязать именованный профиль OAuth к каталогу каждого клиента, найти нужную команду чтения и передать JSON одинаковой структуры в проверочный скрипт. Это снижает расхождения, которые возникают, когда один инженер работает через панели управления, а другой поддерживает самописную команду curl. Особенно заметна польза в работе с DNS, зонами, настройками аккаунта и аудитом безопасности у разных клиентов.

2. Платформенная команда дает агентам безопасный интерфейс Cloudflare

Руководитель платформенной команды может закрепить в AGENTS.md правило использования cf cli search, по умолчанию разрешить команды чтения и требовать подтверждения человеком для изменений. Благодаря поиску агент не угадывает устаревший синтаксис Wrangler, а JSON делает вывод компактным и пригодным для фильтрации. Это особенно полезно командам, которые уже поручают агентам проверять состояние сборок, логи, очереди или ресурсы аккаунта и хотят единый предсказуемый интерфейс.

3. Дежурный инженер собирает контекст инцидента

Во время инцидента специалист может найти подходящую команду для чтения логов, зоны, набора правил или аналитики, не переходя между несколькими разделами продуктов. Точный выбор команды по-прежнему важен, а разрешения продолжают ограничивать доступ, но теперь поиск выполняется локально, и результат сразу готов для jq. Для команд, которые запускают задачи наподобие Cloudflare Browser Run, это сокращает путь от сбойного задания к состоянию связанного аккаунта.

4. Основатель запускает один Worker, не проектируя инструментарий

Основатель, который создает вебхук, сервис перенаправлений или небольшой внутренний API, может выполнить cf init, проверить сгенерированный Worker и привязку, а затем собрать проект через Vite, не выбирая каждый пакет отдельно. Начать можно с Workers Free. Если понадобится платный тариф, текущий минимум составляет $5 на аккаунт в месяц. Ценность здесь — короткий путь к локальному артефакту, готовому к проверке, а не обещание бесплатной эксплуатации в продакшене.

5. Команда на Vite переносит конфигурацию без переписывания приложения

Инженерная команда с Worker на Vite может запустить cf migrate --dry-run в копии проекта, проверить сгенерированный TypeScript и выполнить сборку до изменения процесса развертывания. Это особенно полезно, когда блоки окружения приходится многократно дублировать. Новый формат позволяет вычислять конфигурацию из общей основы, но переносить следует поведение, а не только синтаксис файла.

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

Поскольку структурированные результаты по умолчанию выдаются в JSON, специалист может направить данные чтения в jq, загрузчик хранилища или регулярный отчет, не извлекая их из Unicode-таблицы. Для бизнеса это полезная рутина: меньше адаптеров вывода и хрупких правил парсинга. Используйте токен только для чтения с ограниченными правами и не допускайте вывода команды в общедоступные логи CI.

7. Команда Worker проверяет локальные ресурсы до обращения к продакшену

Поддерживаемые команды принимают --local и обращаются к краткоживущему экземпляру Miniflare, который использует локальное состояние. Это относится к определенным операциям с KV, D1 и R2. Если локального аналога нет, cf возвращает ошибку, а не переключается незаметно на продакшен. Команда, разрабатывающая Cloudflare AI Search Worker, может благодаря этой границе тестировать вспомогательные локальные данные, не превращая команду разработки в удаленную запись.

Два продукта, которые стоит строить вокруг cf

Сам CLI — еще не продуктовая возможность. Она находится в уровне контроля, который по-прежнему необходим командам поверх очень широкого API.

Лучшая возможность: контроль изменений Cloudflare для агентств

Создайте компактный слой согласований и аудита для агентств или небольших платформенных команд, которые управляют несколькими аккаунтами Cloudflare. Пользователь предлагает изменение DNS, зоны, WAF или Worker; продукт через cf собирает текущее состояние в JSON, показывает понятную человеку разницу, запрашивает согласование, выполняет операцию через профиль с ограниченными правами и сохраняет результат.

Спрос невелик, но коммерчески значим: запрос cloudflare dns management получает около 170 поисков в США в месяц, его CPC составляет $6, а ставки для верхней части страницы находятся в диапазоне от $3.85 до $36.64. На универсальное управление инфраструктурой тоже выделяют реальные бюджеты. Тариф Starter+ у Spacelift стоит $20,000. Продукт только для Cloudflare может быть дешевле и проще во внедрении, поскольку ему не нужно управлять всеми облачными платформами.

Минимальная продаваемая версия — GitHub-приложение или размещенная в облаке очередь проверки изменений DNS и Worker с изоляцией профилей, списком разрешенных команд, JSON до и после операции и откатом в один клик там, где его поддерживает соответствующий API. Главная сложность — создать защитимое преимущество: cf уже обеспечивает охват команд, поэтому устойчивость продукта нужно строить на политиках, аудите, правах доступа и процессах агентства. Простую графическую оболочку быстро скопируют.

Полезная функция: оценка готовности к миграции Worker

Создайте сканер, который относит репозиторий к одной из категорий — нативный Vite, esbuild через Wrangler, Python или Rust, — затем запускает безопасный предварительный просмотр миграции и превращает дальнейшие задачи в чек-лист для пул-реквеста. Покупателями будут команды с портфелем Workers, а не одиночный разработчик, переносящий небольшой проект.

Спрос слишком мал, чтобы строить на этом отдельную компанию. Запрос cloudflare worker deployment получает около 10 поисков в США в месяц, хотя и имеет транзакционный интент. Разумный MVP — платная функция в продукте для управления Cloudflare или услуга миграции: сканирование репозитория, cf migrate --dry-run, проверка сборки и понятный отчет о возврате к Wrangler. Риск связан с частыми изменениями во время бета-тестирования. Сканер должен внимательно следить за версиями cf и Cloudflare Vite Plugin, иначе его рекомендации устареют быстрее самих проектов.

Ограничения и взвешенное решение

Уже сейчас cf стоит использовать для поиска команд, чтения аккаунта с выводом в JSON, новых Workers на Vite и осторожных пробных миграций. Оставьте Wrangler установленным там, где cf делегирует ему работу, а операции записи в продакшене разрешайте только с явно ограниченными правами и после проверки.

Открытая бета-версия пока не превращает cloudflare.config.ts в единый источник конфигурации всего аккаунта. На первом этапе он охватывает только Workers. Это также не превращает каждую операцию Cloudflare API в безопасный бизнес-процесс. Полный охват API расширяет возможности токена, поэтому принцип минимальных привилегий и проверка команд становятся важнее, а не наоборот.

Локальный режим намеренно ограничен. Поддерживаемые операции с KV, D1, R2, Durable Object и Workflow могут работать с локальным состоянием, но операция без локального аналога завершается ошибкой. Это полезное свойство безопасности, однако --local не является универсальной офлайн-копией Cloudflare.

Наконец, бета-версии быстро меняются. Для командной работы закрепляйте версию cf в зависимостях проекта, проверяйте сгенерированную конфигурацию и используйте в CI локальную версию из проекта. Глобальная установка удобна для поиска; закрепленная версия гарантирует одинаковое поведение для всех участников.

Как пользоваться Cloudflare CLI?

Установите cf через npm, авторизуйтесь с помощью cf auth login или CLOUDFLARE_API_TOKEN с ограниченными правами, найдите команду через cf cli search, а затем проверьте результат чтения в JSON, прежде чем разрешать запись. Новый Worker создайте с помощью cf init, проверьте cloudflare.config.ts и запустите локальную сборку.

Что такое cf CLI?

В этом руководстве cf — открытая бета-версия интерфейса командной строки Cloudflare, охватывающая более 3,000 операций Cloudflare API и сценарии работы с проектами Worker. Его не следует путать с никак не связанным с Cloudflare интерфейсом Cloud Foundry CLI, который тоже использует имя cf.

Как установить Cloudflare CLI через терминал?

Установив Node.js 22 или новее, выполните npm i -g cf, а затем проверьте результат командой cf --version. Это npm-пакет cf без scope, опубликованный из открытого репозитория Cloudflare.

Как установить Cloudflare Wrangler через CLI?

Wrangler распространяется отдельным пакетом. В новой бета-версии cf он остается внутри проектов, которым нужна сборка через esbuild, а также Workers на Rust или Python. Устанавливайте и закрепляйте версии инструментов, нужных проекту, вместо того чтобы удалять Wrangler сразу после перехода на cf.

Как запускать Cloudflare Workers локально?

Выполните cf dev в настроенном проекте Worker. Новые проекты, созданные через cf init, по умолчанию используют Cloudflare Vite Plugin. Поддерживаемые команды ресурсов также могут работать через --local с локальным состоянием на базе Miniflare.

Если вашей команде нужно спроектировать и внедрить безопасную автоматизацию Cloudflare, изучите системы ИИ для продакшена.

Последнее обновление
29 сент. 2026 г.
Категория
Build

Сделать этот сайт предпочтительным в Google

Добавить omidsaffari.com как предпочтительный источник в Google Поиске

Отметьте omidsaffari.com как предпочтительный источник — и Google будет поднимать его для вас в Top Stories, AI Overviews и AI Mode.

Похожие статьи
Обзор Krisp: шумоподавление, цены и конфиденциальность

Обзор Krisp: шумоподавление, цены и конфиденциальность

Разбираем Krisp: как работает шумоподавление, чем отличаются Core и Advanced, сколько стоят тарифы и какие данные Meeting Assistant хранит в облаке.29 сент. 2026 г.Build
Тарифы SaneBox: какой план выбрать и сколько платить

Тарифы SaneBox: какой план выбрать и сколько платить

Разбираем тарифы SaneBox Snack, Lunch и Dinner: цены за месяц, год и два года, скрытые расходы, ограничения и проверка сервиса перед оплатой.29 сент. 2026 г.Build
Цены Marblism в 2026 году: как выбрать тариф по задачам

Цены Marblism в 2026 году: как выбрать тариф по задачам

Разбираем цены Marblism, тарифные часы и списания за задачи: какой план выбрать, где скрыты расходы и что произойдёт, когда лимит закончится.28 сент. 2026 г.Build
Тарифы Fyxer: цены, окупаемость и выбор плана

Тарифы Fyxer: цены, окупаемость и выбор плана

Разбираем тарифы Fyxer: цены Starter и Professional, годовую оплату, порог окупаемости и условия, при которых подписка действительно экономит время.28 сент. 2026 г.Build
Cloudflare Workers бесплатно: лимиты Worker Previews

Cloudflare Workers бесплатно: лимиты Worker Previews

Cloudflare Workers бесплатно: разбираем лимиты Worker Previews, запросов, CPU, сборок, хранилищ, Workers AI и Containers для тарифов Free и Paid.28 сент. 2026 г.Build
ИИ для бухгалтеров: 7 сервисов для документов, сверок и отчётности

ИИ для бухгалтеров: 7 сервисов для документов, сверок и отчётности

Как выбрать ИИ для бухгалтеров: сравниваем Dext, Xenett, Truewind и другие сервисы по задачам, ценам, ограничениям и полной стоимости результата.28 сент. 2026 г.Build
Janus для Claude Code: переключение аккаунтов без путаницы

Janus для Claude Code: переключение аккаунтов без путаницы

Как настроить Janus для Claude Code на macOS, сохранить два аккаунта, безопасно переключаться между ними и проверять актуальные лимиты перед работой.28 сент. 2026 г.Build
Copilot Managed Runtime: запуск приложения через CLI

Copilot Managed Runtime: запуск приложения через CLI

Разбираем, как создать, запустить и развернуть приложение в Copilot Managed Runtime через CLI, а затем проверить доступ, коннекторы, превью и лицензии.27 сент. 2026 г.Build
Рассылка

Одно письмо, каждое воскресенье.Работающие системы, а не горячие мнения.

Еженедельно. Без спама. Отписка в любой момент.