Workers
Cloudflare Workers выполняет код клиентов в изолятах V8 в сети Cloudflare, используя привязки к хранилищу, базам данных, очередям и сервисам инференса. На этой странице описаны модель выполнения, модель привязок, ограничения платформы, влияющие на архитектуру решений, и опубликованные тарифы.
Управление документом
Управление документом. Поставщик: Cloudflare, Inc. Владелец документа: Dana, технический писатель, Integrity Czech Republic s.r.o. Последняя проверка: 2026-08-31. Снимок содержимого упомянутой документации Cloudflare: 2026-08-28. Приведённые здесь значения сверены с источниками, перечисленными в разделе References, на указанные там даты. Cloudflare меняет лимиты и состав тарифов без предупреждения, поэтому проверяйте значение в источнике, прежде чем закладывать его в архитектуру.
Обзор
В serverless-платформе Cloudflare Workers код развёртывается в сети, а не в конкретном регионе, и каждый вызов обрабатывается в том дата-центре, который принял запрос. Здесь нет инстансов, размер которых нужно подбирать, и нет рантайма, который нужно патчить, но платформа задаёт явные ограничения по CPU, памяти, количеству подзапросов и размеру скрипта, которые определяют, что на ней можно построить. Эти ограничения описаны в разделе «Лимиты и ограничения», и их стоит прочитать до начала проектирования, а не после.
Распространены два способа использования. В первом Worker ставят перед существующим origin-сервером, и он берёт на себя маршрутизацию, изменение заголовков, аутентификацию, персонализацию или кеширование, а само приложение остаётся на месте. Во втором приложение целиком строится на платформе, на её сервисах хранения и базах данных, без традиционного origin-сервера.
Масштабированием управляет платформа в том смысле, что для каждого развёртывания заранее не выделяется ёмкость. При этом масштаб не безграничен: действуют ограничения на процессорное время и память в расчёте на один вызов, на число подзапросов и квоты на уровне сервиса, а на уровне аккаунта есть ограничения параллелизма. Проектируйте систему исходя из документированных лимитов, а не из предположения о неограниченном масштабе.
Архитектура
Worker выполняется в изоляте V8, а не в контейнере или виртуальной машине. Изолят, то есть изолированный контекст выполнения JavaScript, запускается значительно дешевле, чем образ контейнера, и в одном процессе их работает множество. На этом основаны характеристики запуска платформы и экономика развёртывания одного и того же кода в каждой точке присутствия.
Но и запуск изолята не всегда обходится даром. Время холодного старта зависит от размера скрипта, объёма работы на уровне модуля и от того, нужно ли создавать экземпляр модуля WebAssembly. Крупные бандлы и тяжёлая инициализация дают измеримые задержки холодного старта.
Среда выполнения реализует веб-платформенные API: fetch, Request и Response, URL, Web Crypto, потоки, WebSocket и подмножество API Node.js, которое включается флагом совместимости nodejs_compat. Поведение среды выполнения фиксируется датой совместимости и флагами совместимости в конфигурации Worker. Так платформа вносит изменения в поведение, не ломая уже развёрнутый код.
Привязки соединяют Worker с ресурсами платформы. Привязка объявляется в конфигурации и добавляется в объект окружения во время выполнения, поэтому к пространству имён KV, бакету R2, базе данных D1, очереди, пространству имён Durable Object, модели AI или другому Worker код обращается как к возможности (capability), а не через строку подключения или встроенные учётные данные.
Развёртывание через Wrangler CLI публикует новую версию. Gradual Deployments направляют на новую версию заданную долю трафика, то есть во время такого развёртывания одновременно работают две версии. Поэтому в этом режиме развёртывание не атомарно, и код должен корректно работать, когда обе версии обращаются к одним и тем же данным.
В конвейере обработки запросов Cloudflare фазы безопасности выполняются до вызова Worker, поэтому запрос, заблокированный WAF или правилом защиты от DDoS, не доходит до кода Worker.
Возможности
| Возможность | Поведение | Статус и уровень | Источник |
|---|---|---|---|
| Среда выполнения JavaScript и TypeScript | Основная поддерживаемая среда выполнения: работает в изолятах V8 и использует стандартные веб-API. | Общедоступно. | Runtime API |
| WebAssembly | Модули, скомпилированные из Rust, C, C++ и других языков и вызываемые из точки входа на JavaScript. | Общедоступно. | WebAssembly |
| Python Workers | Точки входа Python, которые выполняются на платформе. | Открытая бета. Требуется флаг совместимости python_workers. Не подходит для нагрузки, которой нужна гарантия стабильности. | Python Workers |
| Workers KV | Глобальное хранилище «ключ-значение» с согласованностью в конечном счёте, оптимизированное для интенсивного чтения. | Общедоступно. | Workers KV |
| R2 | Объектное хранилище с S3-совместимым API и без платы за исходящий трафик в интернет. | Общедоступно. | R2 |
| D1 | Бессерверная база данных SQL на основе SQLite. | Общедоступно. | D1 |
| Durable Objects | Объекты с единственным экземпляром и состоянием, обеспечивающие строгую согласованность, транзакционное хранилище и координацию WebSocket. | Общедоступно. | Durable Objects |
| Queues, Cron Triggers, Workflows | Асинхронная обработка сообщений, запуск по расписанию и надёжное многошаговое выполнение. | Перед использованием проверяйте статус отдельной функции в первоисточнике. | Queues |
| Workers AI и Vectorize | Инференс на размещённых моделях, а также хранение и поиск по векторным индексам. | Статус моделей и функций варьируется, некоторые находятся в бета-версии. Проверяйте статус для каждой модели отдельно. | Workers AI |
| Static Assets и Wrangler | Хостинг статических ресурсов для full-stack приложений: локальная разработка, версионирование, поэтапные развёртывания и наблюдаемость через Wrangler CLI. | Общедоступно. | Wrangler |
Модель настройки
Worker определяется своим кодом и файлом конфигурации, wrangler.jsonc или wrangler.toml. Конфигурация задаёт следующее:
- Точка входа и настройки сборки. Точка входа модуля и любой этап сборки.
- Дата и флаги совместимости. Поведение среды выполнения, под которое был написан код. Смена даты совместимости (compatibility date) даёт заметные последствия, поэтому её делают осознанно и проверяют как изменение кода.
- Привязки. Пространства имён KV, бакеты R2, базы данных D1, пространства имён Durable Object, очереди, service bindings к другим Workers, AI bindings и обычные переменные окружения.
- Секреты. Хранятся вне файла конфигурации, задаются через Wrangler или панель управления и доступны в объекте окружения во время выполнения.
- Триггеры. Routes и Custom Domains для вызова по HTTP, cron-выражения для вызова по расписанию и объявления потребителей очередей.
- Окружения. Именованные варианты конфигурации для тестового и боевого окружений, каждый со своими привязками и секретами.
- Лимиты. Там, где это поддерживается, явный лимит CPU для Worker.
Главное архитектурное решение здесь: какое хранилище выбрать. Это зависит от нужной модели согласованности и характера доступа к данным. Используйте KV для частого чтения данных, которым достаточно согласованности в конечном счёте; D1 для реляционных запросов; R2 для объектов; Durable Objects, если нужна строгая согласованность или координация на уровне отдельной сущности; Queues, если обработку нужно вынести за пределы запроса.
Храните конфигурацию в системе контроля версий вместе с кодом: привязки и настройки совместимости влияют на поведение во время выполнения не меньше, чем исходный код.
Лимиты и ограничения
Значения ниже взяты из документации Cloudflare о лимитах платформы (https://developers.cloudflare.com/workers/platform/limits/), проверено 2026-08-31. Они могут измениться без предупреждения, поэтому перепроверьте их, прежде чем закладывать в решение.
| Лимит | Free | Платный |
|---|---|---|
| Запросы | 100 000 в день, 1 000 в минуту | Тарификация за запрос, без суточного лимита |
| Время CPU на вызов | 10 мс | 30 с по умолчанию, можно настроить до 5 минут |
| Память на изолят | 128 МБ | 128 МБ |
| Размер Worker после сжатия | 3 МБ | 10 МБ |
| Подзапросы на один вызов | 50 | 10 000 |
| Подзапросы к внутренним сервисам на один вызов, например к KV, R2 и D1 | 1 000 | Соответствует настроенному лимиту, по умолчанию 10 000 |
| Одновременные исходящие соединения | 6 | 6 |
| Переменные окружения для каждого Worker | 64 | 128 |
| Время CPU для Cron Trigger | 10 мс | 30 с для интервалов менее 1 часа; 15 минут для интервалов от 1 часа и более |
Подзапросом (subrequest) считается любой запрос, который Worker отправляет через Fetch API или к сервису Cloudflare через привязку, поэтому вызовы fetch и вызовы через привязки расходуют общий бюджет одного вызова Worker.
Ограничения сервисов хранения (дата обращения 2026-08-28):
- Workers KV. Размер ключа 512 байт, размер значения 25 МиБ; документированный лимит: примерно одна запись в секунду в один и тот же ключ. KV согласован в конечном счёте: запись, сделанная в одной точке присутствия, может стать видна в другой не сразу.
- R2. Объекты больше лимита для одного запроса загружаются по частям (multipart upload), и для размера части есть свои ограничения. Исходящий трафик в интернет не тарифицируется, операции тарифицируются по классу.
- D1. На максимальный размер базы данных и на отдельные запросы действуют ограничения. База данных D1 не заменяет горизонтально масштабируемый реляционный кластер, поэтому перед планированием объёма данных уточните текущее максимальное значение.
- Durable Objects. Объект однопоточный, поэтому пропускная способность на объект ограничена, а шаблоны обращения к «горячим» ключам необходимо исключать ещё на этапе проектирования. Действуют лимиты хранения на объект, которые отличаются для бэкендов на основе «ключ-значение» и SQLite.
Дополнительные ограничения:
- Python Workers доступны в открытой бета-версии и требуют флага совместимости
python_workers. Планируя на них продакшен-нагрузку, вы принимаете бета-статус и возможные изменения поведения. - Время CPU измеряет время, потраченное на выполнение, а не реальное время (wall-clock). Ожидание подзапроса не расходует время CPU, но общая длительность запроса всё равно подчиняется тайм-аутам HTTP и поведению клиента.
- Холодный старт полностью не устраняется. Большие бандлы, объёмная инициализация на уровне модуля и создание экземпляров WebAssembly ощутимо увеличивают время запуска.
- При постепенном развёртывании одновременно работают две версии, поэтому на время развёртывания изменения схемы и формата данных должны сохранять обратную совместимость.
- Совместимость с Node.js частичная и зависит от флага
nodejs_compatи даты совместимости. Библиотеки, которым требуются неподдерживаемые API Node.js, нативные модули или долгоживущие необработанные TCP-соединения, могут не работать. - На уровне аккаунта действуют ограничения по параллелизму и частоте запросов. Если для рабочей нагрузки ожидаются экстремальные всплески параллелизма, это следует подтверждать по условиям контракта, а не принимать как данность.
Доступность по планам
| Уровень | Включено |
|---|---|
| Free | 100 000 запросов в день, 10 мс процессорного времени на вызов, 3 МБ сжатого размера Worker, 50 подзапросов на вызов, отдельные бесплатные лимиты для KV, D1 и R2. |
| Workers Paid | Cloudflare указывает минимальную плату 5 долларов США в месяц; в неё входят 10 миллионов запросов и 30 миллионов CPU-миллисекунд в месяц, а сверх этих объёмов оплачивается каждый запрос и каждая CPU-миллисекунда. План повышает время CPU по умолчанию до 30 секунд, размер Worker до 10 МБ и число HTTP-подзапросов до 10 000. |
| Сервисы платформы | KV, R2, D1, Durable Objects, Queues, Vectorize и Workers AI тарифицируются отдельно от запросов Workers, у каждого свой бесплатный лимит и цена за единицу. R2 не взимает плату за исходящий трафик в интернет. |
| Enterprise | Договорные условия, обязательства по объёму потребления и условия поддержки. |
Актуально по состоянию на 2026-08-28 согласно публичной документации Cloudflare о тарифах (https://developers.cloudflare.com/workers/platform/pricing/). Цены, включённые объёмы и лимиты могут изменяться без предупреждения. Рассчитывайте стоимость по страницам тарифов для каждой службы, задействованной в решении, а не только по цене запросов Workers.
Развёртывание
Предварительные требования.
- Определите подходящую нагрузку и классифицируйте её: edge-логика перед существующим origin-сервером, API, задача по расписанию или полноценное приложение.
- Сопоставьте рабочую нагрузку с примитивами платформы и зафиксируйте требования к согласованности для каждой части состояния, поскольку именно это определяет выбор хранилища.
- Перед написанием кода сверьте нагрузку с документированными лимитами: пиковое использование CPU на запрос, пиковое использование памяти, количество исходящих вызовов на запрос, размер бандла и любые зависимости, которым нужны неподдерживаемые API Node.js.
- Подтвердите выбранную среду выполнения. Если предлагается Python, зафиксируйте, что Python Workers находятся в открытой бета-версии, и получите решение, приемлем ли такой статус.
- Зафиксируйте, где сейчас хранятся секреты и как они будут передаваться в качестве секретов Worker.
- Зафиксируйте текущий путь трафика и маршрут отката к нему.
Поэтапная проверка. Реализуйте нагрузку в тестовом окружении с собственными привязками и собственными данными и проверьте её на репрезентативном трафике. Замерьте время CPU на вызов, использование памяти и число подзапросов относительно лимитов тарифного плана, а также поведение при холодном старте на боевом размере бандла, а не на урезанном. Убедитесь, что данные наблюдаемости доходят до нужного назначения, прежде чем направлять на сервис реальный трафик.
Настройка.
- Явно объявляйте привязки и указывайте дату совместимости, не полагаясь на значение по умолчанию.
- Перенесите все учётные данные в секреты Worker и убедитесь, что в репозитории или конфигурационном файле их не осталось.
- Настройте отдельные стейджинг- и продакшен-окружения с разными ресурсами хранения, чтобы ошибка при развёртывании не могла привести к записи в продакшен-данные.
- Настройте CI так, чтобы развёртывание выполнялось пайплайном с ограниченным по правам API-токеном, а не с рабочей станции разработчика.
- Добавьте ограничение частоты запросов перед общедоступными маршрутами Worker, а также кеширование там, где это допускает ответ, чтобы ограничить объём запросов и, соответственно, расходы.
- Оцените стоимость при ожидаемом трафике по страницам тарификации каждого сервиса, включая классы операций хранения, и настройте оповещения о выставлении счетов.
Переключение. Направляйте продакшен-трафик постепенно с помощью Gradual Deployments или маршрута, охватывающего часть путей. Поскольку во время поэтапного развёртывания одновременно обслуживаются две версии, убедитесь, что новая версия совместима с данными, которые записала предыдущая версия, а также с данными, которые предыдущая версия продолжит записывать в процессе развёртывания.
Верификация.
- Прежде чем увеличивать долю трафика, проверьте частоту ошибок и задержку на каждом её значении относительно зафиксированного базового уровня.
- Убедитесь, что время CPU на один вызов остаётся в пределах установленного лимита при характерной для продакшена структуре трафика, поскольку превышение лимита под нагрузкой проявляется как перемежающиеся сбои.
- Убедитесь, что логи и метрики формируются и хранятся так, как предполагалось.
- Убедитесь, что объём операций с хранилищем соответствует ожидаемому, поскольку во многих архитектурах на стоимость больше влияет количество операций, чем количество запросов.
- Убедитесь, что предыдущий путь по-прежнему работает, чтобы откат оставался возможен.
Откат. Верните трафик на предыдущую версию через интерфейс развёртывания или удалите маршрут, чтобы запросы шли напрямую на origin-сервер. Не удаляйте предыдущую версию, а оставьте её развёрнутой, пока новая версия не пройдёт полный цикл трафика. Если формат схемы или данных изменился, перед откатом убедитесь, что предыдущая версия всё ещё может читать данные, записанные новой версией.
Вопросы эксплуатации
Отслеживайте время CPU, частоту ошибок и количество подзапросов по каждому маршруту, а не только объём запросов. Сбои, связанные с лимитами, проявляются под нагрузкой и незаметны в тестовой среде с низким трафиком.
Периодически пересматривайте дату совместимости. Если оставить её неизменной надолго, Worker будет работать со всё более устаревшим поведением среды выполнения; если же изменить дату без тестирования, поведение изменится непредсказуемо. Относитесь к изменению даты как к отдельному изменению, которое требует собственной проверки.
Следите за количеством операций с хранилищем наряду с количеством запросов. Если архитектура выполняет несколько операций с KV или D1 на каждый запрос, стоимость определяется в основном этими операциями, и изменение кеширования может существенно изменить сумму счёта в любую сторону.
Меняйте секреты Worker по графику и храните их только в хранилище секретов платформы. Поскольку привязки заменяют строки подключения, утечка секрета обычно затрагивает учётные данные приложения, а не платформы, но требование о ротации остаётся тем же.
Проектируйте ключи Durable Object так, чтобы нагрузка распределялась между объектами. Если один объект обрабатывает непропорционально большую долю трафика, он становится потолком пропускной способности, который не устраняется никаким масштабированием платформы.
Отказы, которые стоит учитывать заранее: обновление зависимости, из-за которого размер бандла превышает лимит; фрагмент кода, который иногда превышает лимит CPU при больших входных данных; конкуренция за запись в KV по одному ключу; вышестоящий сервис, который работает настолько медленно, что удерживает подзапросы открытыми; и постепенное развёртывание, оставшееся частично выполненным.
Известные особенности
- Python Workers находятся в открытой бета-версии и требуют флага совместимости. Если упомянуть их рядом с общедоступными средами выполнения без этой оговорки, архитектор может заложить в план продакшена бета-версию среды выполнения.
- У платформы есть ограничения по ресурсам. Время CPU, память, размер бандла, количество подзапросов и квоты на уровне сервиса ограничивают возможности одного вызова.
- Холодный старт есть. Для компактных JavaScript-бандлов он незначителен, а для крупных бандлов и создания экземпляров WebAssembly увеличивается.
- Постепенное развёртывание намеренно не атомарно. Две версии обслуживают запросы одновременно, и это требование к совместимости данных, а не просто деталь реализации.
- KV обеспечивает согласованность в конечном счёте и имеет ограничение на частоту записи для каждого ключа. Использование KV в качестве основного хранилища для быстро изменяющегося состояния приводит к проблемам с корректностью данных, которые проявляются только при параллельном доступе.
- Durable Object однопоточен. Пропускная способность на объект ограничена архитектурно, а не тарифным планом аккаунта.
- Совместимость с Node.js частичная. Дерево зависимостей, которое успешно собирается локально, всё же может дать сбой во время выполнения из-за неподдерживаемого API.
- Переносимость частичная. Стандартные веб-API, совместимый с S3 API R2 и диалект SQLite в D1 сохраняют переносимость большей части логики приложения, тогда как перенос Durable Objects и других платформозависимых сервисов потребует изменения архитектуры. На этапе проектирования определите, к какой категории относится каждый компонент.
Взаимодействие с другими продуктами
Workers выполняются после фаз безопасности конвейера обработки запросов Cloudflare, поэтому решения WAF, DDoS и Bot Management применяются раньше, чем запускается код Worker. Заблокированный запрос никогда не доходит до Worker.
Workers взаимодействуют с CDN через Cache API и через Cache Rules. Если и Cache Rule, и логика кеширования Worker применяются к одному и тому же запросу, приоритет определяется задокументированной последовательностью обработки трафика.
R2 может служить origin-сервером для CDN и лежит в основе Cache Reserve, поэтому объектное хранилище, кеширование и вычисления работают вместе без традиционного origin-сервера.
Service bindings позволяют одному Worker вызывать другой без обращения по сети, что даёт возможность разбивать приложение на отдельно развёртываемые модули и сохранять низкую задержку вызовов.
Валидацию Turnstile можно выполнять в Worker, то есть на границе сети, а не в бэкенде приложения.
Access можно разместить перед маршрутом Worker, чтобы запросы проходили аутентификацию и авторизацию до вызова, без необходимости реализовывать аутентификацию в самом Worker.
Часто задаваемые вопросы
Требуется ли полная миграция приложения для перехода на Workers? Нет. Обычно Worker ставят на маршрут перед существующим origin-сервером, где он обрабатывает редиректы, логику кеширования, аутентификацию или персонализацию, а само приложение остаётся на месте. Переносить ли само приложение, решается отдельно.
Что на самом деле измеряет ограничение CPU? Время, затраченное на выполнение кода, а не общая длительность запроса. Ожидание подзапроса не расходует время CPU, поэтому запрос может длиться дольше, чем лимит CPU, не превышая его.
Где хранить состояние сессии или координации? Durable Objects, если требуется строгая согласованность или координация на уровне отдельных сущностей. KV обеспечивает согласованность в конечном счёте и ограничивает частоту запросов на ключ, поэтому не подходит для быстро изменяющегося состояния в рамках одного ключа.
Какие части приложения на Workers можно перенести на другую платформу? Код, написанный с использованием стандартных веб-API, данные в R2 через S3-совместимый API, а также схемы и запросы D1 на диалекте SQLite в основном переносимы. Durable Objects и другие платформенно-зависимые сервисы потребуют переработки архитектуры.
Источники
- https://developers.cloudflare.com/workers/, дата обращения 2026-08-28.
- https://developers.cloudflare.com/workers/platform/limits/, дата обращения 2026-08-28.
- https://developers.cloudflare.com/workers/platform/pricing/, дата обращения 2026-08-28.
- https://developers.cloudflare.com/workers/languages/python/, дата обращения 2026-08-28.
- https://developers.cloudflare.com/workers/configuration/compatibility-dates/, дата обращения 2026-08-28.
- https://developers.cloudflare.com/workers/configuration/versions-and-deployments/gradual-deployments/, дата обращения 2026-08-28.
- https://developers.cloudflare.com/kv/, дата обращения 2026-08-28.
- https://developers.cloudflare.com/r2/, дата обращения 2026-08-28.
- https://developers.cloudflare.com/d1/, дата обращения 2026-08-28.
- https://developers.cloudflare.com/durable-objects/, дата обращения 2026-08-28.
Снимок контента: 2026-08-28.
История изменений
| Дата | Изменение | Автор |
|---|---|---|
| 2026-08-31 | Переписано как технический справочник: убран маркетинговый стиль, добавлены таблицы лимитов и доступности по тарифным планам со ссылками на источники, числовые данные сверены с документацией Cloudflare. | Команда документации Integrity |
| 2026-08-28 | Первая публикация. | Команда документации Integrity |
Содержание
464 страницы, зеркалированные из документации Cloudflare для workers.
Pages
- Рекомендации
- Workers Cache
- CI/CD
- Конфигурация
- Базы данных
- Демонстрации и архитектуры
- Примеры
- Руководства по фреймворкам
- Начало работы
- Глоссарий
- Языки
- Локальная разработка
- Observability
- Cloudflare Workers
- Платформа
- Playground
- Справочник
- Runtime API
- Static Assets
- Тестирование
- Руководства
- Версии и развёртывания
- Плагин Vite
- Wrangler
Рекомендации
Workers Cache
CI/CD
- Builds
- Дополнительные сценарии настройки
- Справочник по API Builds
- Автоматическое создание pull request
- Ветки сборки
- Кеширование сборки
- Образ сборки
- Отслеживаемые пути сборки
- Конфигурация
- Deploy Hooks
- Подписки на события
- Интеграция с Git
- Интеграция с GitHub
- Интеграция с GitLab
- Лимиты и цены
- MCP-сервер
- Устранение неполадок со сборками
- Внешний CI/CD
- GitHub Actions
- GitLab CI/CD
Конфигурация
- Привязки (env)
- Cloudflare Access
- Даты совместимости
- Флаги совместимости
- Cron Triggers
- Переменные окружения
- Интеграции
- API
- Внешние сервисы
- Метаданные составной загрузки
- Placement
- Маршруты и домены
- Custom Domains
- Маршруты
- workers.dev
- Секреты
- Workers Sites
- конфигурация Workers Sites
- Начало с имеющегося
- Начало с нуля
- Начало из Worker
- Page Rules
Базы данных
- Analytics Engine
- Подключение к базам данных
- Cloudflare D1
- Hyperdrive
- Сторонние интеграции
- Neon
- PlanetScale
- Supabase
- Turso
- Upstash
- Xata
- Vectorize (векторная база данных)
Демонстрации и архитектуры
Примеры
- 103 Early Hints
- A/B тестирование с прямым доступом по тому же URL
- Доступ к Cloudflare Object
- Агрегированные запросы
- Изменение заголовков
- Запись в Analytics Engine
- Аутентификация с помощью заголовков
- Базовая аутентификация HTTP
- Блокировка на TLS
- Массовое переопределение источника
- Bulk Redirects
- Использование Cache API
- Кеширование POST-запросов
- Cache Tags в Workers
- Кеширование с помощью fetch
- Условный ответ
- Прокси заголовков CORS
- Редирект по коду страны
- Настройка Cron Triggers
- Предотвращение потери данных
- Отладочные журналы
- Разбор cookie
- Получение HTML
- Получение JSON
- Геолокация: приложение погоды
- Геолокация: пользовательское оформление
- Геолокация: Hello World
- Hot-link protection
- Custom Domain для Images
- Вывод заголовков в консоль
- Изменение свойства запроса
- Изменение ответа
- Несколько Cron Triggers
- Потоковая передача ответов OpenAI API
- Отправить JSON
- Использование timingSafeEqual
- Чтение POST
- Перенаправление
- Ответ с другого сайта
- Возвращает небольшую HTML-страницу
- Возвращает JSON
- Перезапись ссылок
- Настройка заголовков безопасности
- Подпись запросов
- Оболочка одностраничного приложения (SPA) с данными начальной загрузки
- Потоковая передача большого JSON
- Turnstile с Workers
- Использование WebSockets API
Руководства по фреймворкам
- ИИ и агенты
- Agents SDK
- LangChain
- API
- FastAPI
- Hono
- Развертывание существующего проекта
- Мобильные приложения
- Expo
- Веб-приложения
- Astro
- Микрофронтенды
- Больше руководств...
- Analog
- Angular
- Docusaurus
- Gatsby
- Hono
- Nuxt
- Qwik
- Solid
- Waku
- Next.js
- Адаптер OpenNext
- React + Vite
- React Router (ранее Remix)
- RedwoodSDK
- SvelteKit
- TanStack Start
- Vike
- Vue
Начало работы
Языки
- JavaScript
- Примеры
- Python Workers
- Основы
- Примеры
- Foreign Function Interface (FFI)
- Как работают Python Workers
- Пакеты
- FastAPI
- Langchain
- Standard Library
- Rust
- Поддерживаемые crates
- TypeScript
- Примеры
Локальная разработка
- Поддерживаемые привязки в зависимости от режима разработки
- Переменные окружения и секреты
- Добавление локальных данных
- Общий доступ к локальному серверу разработки
- Local Explorer
- Разработка с несколькими Workers
- Плагин Vite
- Выбор между Wrangler и Vite
Observability
- DevTools
- Точки останова
- Профилирование использования CPU
- Профилирование памяти
- Ошибки и исключения
- Экспорт данных OpenTelemetry
- Экспорт в Axiom
- Экспорт в Grafana Cloud
- Экспорт в Honeycomb
- Экспорт в PostHog
- Экспорт в Sentry
- Журналы
- Workers Logpush
- Логи в реальном времени
- Tail Workers
- Workers Logs
- MCP-сервер
- Метрики и аналитика
- Query Builder
- Source maps и трассировки стека
- Интеграции
- Sentry
- Трассировки
- Пользовательские спаны
- Известные ограничения
- Spans и атрибуты
Платформа
- Бета-функции
- Кнопка Built with Cloudflare
- Привязка развёртываний (временные учётные записи)
- Кнопки Deploy to Cloudflare
- Инфраструктура как код (IaC)
- Известные проблемы
- Лимиты
- Цены
- Выберите продукт для работы с данными или хранилищем
- Workers for Platforms
Справочник
- Как работает кеш
- Как работает Workers
- Переход с Service Workers на ES Modules
- Протоколы
- Модель безопасности
Runtime API
- Привязки (env)
- AI
- Analytics Engine
- Assets
- Browser Run
- D1
- Диспетчер (Workers for Platforms)
- Durable Objects
- Переменные окружения
- Hyperdrive
- Изображения
- KV
- Media Transformations
- mTLS
- Queues
- R2
- Rate Limiting
- Секреты
- Secrets Store
- Service bindings
- HTTP
- RPC (WorkerEntrypoint)
- Stream
- Vectorize
- Метаданные версии
- Dynamic Workers
- Workflows
- Кеш
- Консоль
- Контекст (ctx)
- Кодирование
- EventSource
- Fetch
- Обработчики
- Alarm Handler
- Email Handler
- Обработчик fetch
- Обработчик Queue
- Обработчик scheduled
- Обработчик Tail
- Headers
- HTMLRewriter
- MessageChannel
- Совместимость с Node.js
- assert
- AsyncLocalStorage
- Buffer
- crypto
- Diagnostics Channel
- dns
- EventEmitter
- fs
- http
- https
- net
- путь
- process
- Streams
- StringDecoder
- тест
- таймеры
- tls
- url
- util
- zlib
- Производительность и таймеры
- Запрос
- Ответ
- Удалённый вызов процедур (RPC)
- Обработка ошибок
- Жизненный цикл
- Зарезервированные методы
- TypeScript
- Модель видимости и безопасности
- Планировщик
- Streams
- ReadableStream
- ReadableStream BYOBReader
- ReadableStream DefaultReader
- TransformStream
- WritableStream
- WritableStream DefaultWriter
- TCP-сокеты
- Web Crypto
- Веб-стандарты
- WebAssembly (Wasm)
- Wasm в JavaScript
- WebSockets
Static Assets
- Тарификация и ограничения
- Конфигурация и Bindings
- Direct Uploads
- Начало работы
- Headers
- Руководства по миграции
- Перенос с Pages на Workers
- Переход с Netlify на Workers
- Перенос с Vercel на Workers
- Перенаправления
- Маршрутизация
- Продвинутый уровень
- Привязка к версии
- Обработка HTML
- Обслуживание поддиректории
- Full-stack-приложение
- Одностраничное приложение (SPA)
- Static Site Generation (SSG) и настраиваемые страницы 404
- Скрипт Worker
Тестирование
- Miniflare
- Основное
- Даты совместимости
- Fetch-события
- Модули
- Несколько Workers
- Queues
- Запланированные события
- Веб-стандарты
- Переменные и секреты
- WebSockets
- Разработка
- Подключение отладчика
- Live Reload
- Начало работы
- Миграции
- Переход с версии 2
- Хранилище
- Кеш
- D1
- Durable Objects
- KV
- R2
- Написание тестов
- Инфраструктура для интеграционных тестов
- Настройка инфраструктуры для тестирования
- Начало работы
- Интеграции
- Работа с Workers
- Подготовьте тестовое состояние
- unstable_startWorker() в Wrangler
- Интеграция Vitest
- Конфигурация
- Отладка
- Изоляция и параллелизм
- Известные проблемы
- Руководства по миграции
- Переход от тестовых окружений Miniflare 2
- Переход с unstable_dev
- Переход с Vitest 3 на Vitest 4
- Переход на плагин Vitest
- Подмена исходящих запросов
- Рецепты и примеры
- Test APIs
- Напишите свой первый тест
Руководства
- Создайте Jamstack-приложение со списком задач
- Создайте генератор QR-кодов
- Создайте Slackbot
- Подключение к базе данных Turso и выполнение запросов с помощью Workers
- Создайте дообученную модель OpenAI с помощью R2
- Развертывание чат-приложения в реальном времени
- Развертывание приложения Express.js на Cloudflare Workers
- Создание превью YouTube с помощью Workers и Cloudflare Image Resizing
- SMS-уведомления GitHub через Twilio
- Обработка отправки форм с помощью Airtable
- Подключение к базе данных MySQL с помощью Cloudflare Workers
- Вызов функций OpenAI GPT с помощью JavaScript и Cloudflare Workers
- Подключение к базе данных PostgreSQL с помощью Cloudflare Workers
- Отправка писем через Postmark
- Отправка писем через Resend
- Безопасный доступ к ресурсам и их загрузка с помощью Cloudflare R2
- Настройка и использование базы данных Prisma Postgres
- Используйте Workers KV напрямую из Rust
Версии и развёртывания
- Управление развертываниями
- Постепенные развёртывания
- Привязка к версии
- С Durable Objects
- Preview URLs
- Откаты
- Переопределения версий
Плагин Vite
- Начало работы
- Справочник
- API
- Cloudflare Environments
- Отладка
- Переход с wrangler dev
- Модули, отличные от JavaScript
- Программная конфигурация
- Секреты
- Static Assets
- Окружения Vite
- Руководство - React SPA с API
Wrangler
- API
- Bundling
- Команды
- Артефакты
- Браузер
- Сертификаты
- Containers
- D1
- Флагман
- Общие команды
- Hyperdrive
- KV
- Pages
- Pipelines
- Queues
- R2
- Secrets Store
- Tunnel
- Vectorize
- VPC
- Workers
- Workers for Platforms
- Workflows
- Конфигурация
- Пользовательские сборки
- Устаревшие функции
- Окружения
- Установка/Обновление Wrangler
- Миграции
- Переход с Wrangler v2 на v3
- Переход с Wrangler v3 на v4
- Переход с Wrangler v1 на v2
- 1. Перенос проектов webpack
- 2. Обновление до Wrangler v2
- Wrangler v1 (устаревшая версия)
- Аутентификация
- Команды
- Конфигурация
- Установка / Обновление
- Webpack
- Профили аутентификации
- Системные переменные окружения
