Перейти к основному содержимому

Cloudflare Temporary Deploy

Разверните Worker на живом URL без аккаунта с помощью wrangler --temporary.

Метаданные навыка​

ИсточникОпционально — установка: vibeos skills install official/web-development/cloudflare-temporary-deploy
Путьoptional-skills/web-development/cloudflare-temporary-deploy
Версия1.0.0
АвторVibeOS
ЛицензияMIT
Платформыlinux, macos, windows
Тегиcloudflare, workers, wrangler, deploy, temporary, agent, serverless, web-development

Справочник: полный SKILL.md​

к сведению

Ниже приведено полное описание навыка, которое VibeOS загружает при его активации. Агент видит эти инструкции, когда навык активен.

Навык Cloudflare Temporary Deploy

Разверните Cloudflare Worker на живом URL workers.dev без создания аккаунта, используя wrangler deploy --temporary. Cloudflare создаёт временный аккаунт, выполняет развёртывание и выводит claim-URL, действительный в течение 60 минут; незатребованные аккаунты удаляются автоматически. Это даёт агенту компактный цикл «написал → развернул → проверил» без OAuth, регистрации или копирования токенов.

Этот навык НЕ охватывает production-развёртывания (для них используйте wrangler login + постоянный аккаунт), а также другие продукты Cloudflare, не относящиеся к Workers, с учётом ограничений временных аккаунтов ниже.

Когда использовать​

Загружайте этот навык, когда пользователь хочет:

  • Разместить написанный агентом код на живом URL без предварительного создания аккаунта Cloudflare — «разверни это и дай ссылку»
  • Работать в фоновой/автономной сессии, где шаг OAuth в браузере был бы непреодолимым препятствием
  • Быстро прототипировать или оценивать Workers с временной, забираемой целью
  • Построить самопроверяющийся цикл развёртывания — развернуть, выполнить curl живого URL, убедиться, что вывод соответствует коду, переразвернуть

Когда НЕ использовать​

  • Production или CI/CD → используйте постоянный аккаунт (wrangler login или CLOUDFLARE_API_TOKEN). --temporary выдаёт ошибку, если присутствуют какие-либо учётные данные.
  • Wrangler уже аутентифицирован → --temporary по замыслу возвращает ошибку. Сначала выполните wrangler logout, только если пользователь явно хочет временное развёртывание.
  • Долгоживущий хостинг → временные развёртывания удаляются через 60 минут, если не затребованы.

Предварительные требования​

  • Wrangler 4.102.0 или новее. Именно в этой версии появился --temporary. В более ранних версиях его нет. Проверьте: npx wrangler@latest --version.
  • Node 18+ / npm (или npx, yarn, pnpm). Глобальная установка не требуется — достаточно npx wrangler@latest.
  • Отсутствие учётных данных Cloudflare. --temporary работает только когда Wrangler не аутентифицирован: нет OAuth-логина, нет переменных окружения CLOUDFLARE_API_TOKEN / CLOUDFLARE_API_KEY, нет кэшированного OAuth в ~/.wrangler / ~/.config/.wrangler. Используйте окружение инструмента terminal как есть; не устанавливайте эти переменные.
  • Исходящий сетевой доступ к cloudflare.com и workers.dev.
  • Использование --temporary означает принятие Условий предоставления услуг и Политики конфиденциальности Cloudflare.

Как запустить​

Используйте инструмент terminal для каждого шага. Всегда фиксируйте версию (wrangler@latest или wrangler@4.102.0 или новее), чтобы случайно не запустить старый глобальный wrangler без нужного флага.

  1. Создайте минимальный Worker (пропустите, если проект уже существует). Worker требует wrangler.toml (или wrangler.jsonc) и входной скрипт. Пример минимального TypeScript — запишите эти файлы с помощью write_file:

    wrangler.jsonc:

    {
    "name": "hello-agent",
    "main": "src/index.ts",
    "compatibility_date": "2025-01-01"
    }

    src/index.ts:

    export default {
    async fetch(): Promise<Response> {
    return new Response("hello cloudflare");
    },
    };
  2. Разверните с --temporary из каталога проекта:

    npx wrangler@latest deploy --temporary

    Проверка proof-of-work добавляет небольшую автоматическую задержку. При успехе Wrangler выводит строку Account: &lt;name&gt; (created) (или (reused)), Claim URL и живой URL https://&lt;worker&gt;.&lt;account&gt;.workers.dev.

  3. Извлеките URL из этого вывода. Запустите вспомогательный скрипт для надёжного извлечения вместо визуального поиска:

    npx wrangler@latest deploy --temporary 2>&1 | python3 scripts/parse_deploy_output.py

    (Укажите абсолютный путь к scripts/parse_deploy_output.py из этого навыка.) Скрипт выводит JSON: {"live_url", "claim_url", "account", "account_state", "expires_minutes", "deployed"}.

  4. Проверьте, что развёртывание действительно активно — не полагайтесь только на лог развёртывания. Выполните curl живого URL и убедитесь, что тело ответа соответствует тому, что возвращает код:

    curl -sS <live_url>
  5. Итерация. Отредактируйте код, переразверните той же командой npx wrangler@latest deploy --temporary. В течение 60-минутного окна Wrangler повторно использует кэшированный временный аккаунт (Account: &lt;name&gt; (reused)), поэтому URL остаётся стабильным. Снова выполните curl, чтобы подтвердить изменения.

  6. Передайте claim-URL пользователю. Сообщите: откройте его в течение 60 минут, чтобы сохранить развёртывание и все ресурсы; если не затребовать, всё автоматически удалится. Относитесь к claim-URL как к секрету — он даёт право владения аккаунтом.

Краткая справка​

ШагКоманда
Проверить версию (нужна 4.102.0+)npx wrangler@latest --version
Развернуть (без аккаунта)npx wrangler@latest deploy --temporary
Развернуть + извлечь URLnpx wrangler@latest deploy --temporary 2>&1 | python3 scripts/parse_deploy_output.py
Проверить активностьcurl -sS &lt;live_url&gt;
Очистить кэш временного аккаунтаnpx wrangler@latest logout

Ограничения продуктов временного аккаунта​

ПродуктЛимит во временном аккаунте
WorkersРазвёртывание на workers.dev
Static AssetsДо 1 000 файлов, по 5 МиБ каждый
KVРазрешено
D11 база данных, 100 МБ на БД / 100 МБ всего
Durable ObjectsРазрешено
Hyperdrive2 конфигурации, 10 подключений
QueuesДо 10
SSL/TLS сертификатыРазрешено

Подводные камни​

  • --temporary нет в wrangler deploy --help и это не глобальный флаг. Он намеренно скрыт и отображается динамически: когда неаутентифицированный wrangler deploy завершается ошибкой, Wrangler выводит «rerun with --temporary». Не делайте вывод, что флаг отсутствует, только потому что --help его не показывает — вместо этого проверьте версию.
  • Старый глобальный wrangler. Устаревшая глобально установленная версия wrangler (< 4.102.0) молча не содержит флага. Всегда вызывайте npx wrangler@latest (или фиксированную >=4.102.0), чтобы контролировать версию.
  • Наличие аутентификации → жёсткая ошибка. Если когда-либо выполнялся wrangler login или установлены CLOUDFLARE_API_TOKEN/CLOUDFLARE_API_KEY, --temporary выдаёт ошибку. Либо удалите переменную для этой оболочки, либо выполните wrangler logout. Никогда не удаляйте реальные учётные данные пользователя без предупреждения.
  • Ограничение частоты запросов. Слишком быстрое создание временных аккаунтов приводит к ошибкам. Повторно используйте кэшированный аккаунт (просто переразверните) в течение 60-минутного окна вместо создания нового; при превышении лимита подождите или используйте постоянный аккаунт.
  • Жёсткое истечение через 60 минут, не продлевается. Если развёртывание должно жить дольше часа, пользователь должен его затребовать. Чётко сообщите об этом.
  • curl может кратковременно отдавать старый код после переразвёртывания. У workers.dev есть кратковременный edge-кэш; строка (reused) вместе с новым Current Version ID подтверждают успех развёртывания, даже если curl показывает устаревший контент в течение нескольких секунд. Повторите curl или добавьте строку запроса для сброса кэша, прежде чем делать вывод о неудаче переразвёртывания.
  • Не записывайте claim-URL в общие транскрипты как «просто ссылку». Он эквивалентен учётным данным.

Проверка​

  • npx wrangler@latest --version возвращает >= 4.102.0.
  • npx wrangler@latest deploy --temporary выводит живой URL workers.dev и claim-URL вида claim-preview?claimToken=.
  • curl -sS &lt;live_url&gt; возвращает точное тело, которое генерирует код Worker.
  • Второе развёртывание сообщает Account: &lt;name&gt; (reused), и живой URL не меняется.
  • Самотест скрипта парсинга проходит: python3 scripts/parse_deploy_output.py --selftest.