← Cloudflare Workers / workers / wrangler
Системные переменные окружения
Системные переменные окружения представляют собой локальные переменные окружения, которые могут изменять поведение Wrangler. Задать их можно тремя способами:
-
Создайте
.envфайл в каталоге вашего проекта. Задайте значения переменных окружения в вашем.envфайле. Это рекомендуемый способ задания этих переменных, поскольку он сохраняет значения между сеансами Wrangler. -
Укажите значения непосредственно в команде Wrangler. Например,
WRANGLER_LOG="debug" npx wrangler deployустановит значениеWRANGLER_LOGк"debug"для этого выполнения команды. -
Задайте значения в окружении вашей оболочки. Например, если вы используете Z shell, добавление
export CLOUDFLARE_API_TOKEN=...в ваш~/.zshrcфайл установит этот токен как часть конфигурации вашей оболочки.
Поддерживаемые переменные окружения
Wrangler поддерживает следующие переменные окружения:
-
CLOUDFLARE_ACCOUNT_IDstringнеобязательно- ID аккаунта для аккаунта, связанного с Workers.
-
CLOUDFLARE_API_TOKENstringнеобязательно- API-токен для вашего аккаунта Cloudflare, может использоваться для аутентификации в таких сценариях, как CI/CD и другая автоматизация.
-
CLOUDFLARE_API_KEYstringнеобязательно- API-ключ для вашего аккаунта Cloudflare, обычно используемый для более старого метода аутентификации с
CLOUDFLARE_EMAIL=.
- API-ключ для вашего аккаунта Cloudflare, обычно используемый для более старого метода аутентификации с
-
CLOUDFLARE_EMAILstringнеобязательно- Адрес электронной почты, связанный с вашей учётной записью Cloudflare, обычно используется для более старого способа аутентификации с
CLOUDFLARE_API_KEY=.
- Адрес электронной почты, связанный с вашей учётной записью Cloudflare, обычно используется для более старого способа аутентификации с
-
CLOUDFLARE_ACCESS_CLIENT_IDstringнеобязательно- Client ID для Токен службы Cloudflare Access, используется для аутентификации в доменах, защищённых Access, в неинтерактивных средах, например в конвейерах CI/CD. Должен задаваться вместе с
CLOUDFLARE_ACCESS_CLIENT_SECRET. Если заданы обе переменные, Wrangler выполняет аутентификацию с помощью service token, вместо того чтобы запускатьcloudflared access login. Полную настройку политики Access и токена службы см. в Подключение к Workers, защищённым Access.
- Client ID для Токен службы Cloudflare Access, используется для аутентификации в доменах, защищённых Access, в неинтерактивных средах, например в конвейерах CI/CD. Должен задаваться вместе с
-
CLOUDFLARE_ACCESS_CLIENT_SECRETstringнеобязательно- Client Secret для Токен службы Cloudflare Access, используется вместе с
CLOUDFLARE_ACCESS_CLIENT_IDдля аутентификации на доменах, защищённых Access, в неинтерактивных средах. Полное описание настройки политики Access и токена сервиса см. Подключение к Workers, защищённым Access.
- Client Secret для Токен службы Cloudflare Access, используется вместе с
-
CLOUDFLARE_AUTH_USE_KEYRINGbooleanнеобязательно- Возможные варианты:
trueиfalse. По умолчанию не задано. Переопределяет постоянную настройку, заданнуюwrangler login --use-keyring/--no-use-keyringдля одного вызова. Когдаtrue, Wrangler хранит учетные данные OAuth в зашифрованном файле, при этом ключ шифрования хранится в связке ключей ОС, и завершает работу с ошибкой, если хранилище связки ключей недоступно. Когдаfalse, Wrangler использует устаревший текстовый файл TOML, даже если постоянная настройка включена. См. Хранение учётных данных OAuth в связке ключей ОС для получения подробностей.
- Возможные варианты:
-
CLOUDFLARE_ENVstringнеобязательно- окружение для команд Wrangler. Это позволяет выбрать среду, не используя
--envфлаг. Например,CLOUDFLARE_ENV=production wrangler deployразвернёт вproductionокружение.--envаргумент командной строки имеет приоритет над этой переменной окружения.
- окружение для команд Wrangler. Это позволяет выбрать среду, не используя
-
NODE_ENVstringнеобязательно- Задаёт значение
process.env.NODE_ENVв коде вашего Worker. По умолчанию:"development"дляwrangler devи"production"дляwrangler deployиwrangler versions upload. См. Bundling, где это описано подробнее.
- Задаёт значение
-
WRANGLER_SEND_METRICSbooleanнеобязательно- Возможные варианты:
trueиfalse. По умолчанию используетсяtrue. Определяет, может ли Wrangler отправлять анонимные данные об использовании в Cloudflare для этого проекта. Подробнее об этом можно узнать в политика данных ↗.
- Возможные варианты:
-
WRANGLER_SEND_ERROR_REPORTSbooleanнеобязательно- Возможные варианты:
trueиfalse. По умолчанию используетсяundefined. Определяет, может ли Wrangler отправлять в Cloudflare отчёты об ошибках, не связанных с пользователем, для этого проекта. Еслиundefined, Wrangler будет спрашивать пользователя, отправлять ли отчет об ошибке, каждый раз при возникновении ошибки, не связанной с действиями пользователя.
- Возможные варианты:
-
CLOUDFLARE_HYPERDRIVE_LOCAL_CONNECTION_STRING_<BINDING_NAME>stringнеобязательно- локальная строка подключения для вашей базы данных, чтобы использовать её при локальной разработке с Hyperdrive. Например, если привязка для вашего Hyperdrive называется
PROD_DB, это будетCLOUDFLARE_HYPERDRIVE_LOCAL_CONNECTION_STRING_PROD_DB="postgres://user:[email protected]:5432/testdb". Каждый Hyperdrive однозначно определяется именем привязки.
- локальная строка подключения для вашей базы данных, чтобы использовать её при локальной разработке с Hyperdrive. Например, если привязка для вашего Hyperdrive называется
-
CLOUDFLARE_API_BASE_URLstringнеобязательно- Значение по умолчанию:
"https://api.cloudflare.com/client/v4".
- Значение по умолчанию:
-
WRANGLER_LOGstringнеобязательно- Варианты для уровней логирования:
"none","error","warn","info","log"и"debug". Уровни нечувствительны к регистру, значение по умолчанию:"log". Если указан недопустимый уровень, Wrangler вернётся к значению по умолчанию. Журналы могут включать запросы к API Cloudflare, собираемые данные об использовании и подробные журналы ошибок.
- Варианты для уровней логирования:
-
WRANGLER_LOG_PATHstringнеобязательно- Путь к файлу или каталогу, куда Wrangler будет записывать отладочные журналы. Если путь заканчивается на
.log, Wrangler будет считать это путем к файлу, в который будут записываться все журналы. В противном случае Wrangler будет считать этот путь каталогом, в который будет записывать один или несколько файлов журнала с именами на основе временной метки.
- Путь к файлу или каталогу, куда Wrangler будет записывать отладочные журналы. Если путь заканчивается на
-
WRANGLER_LOG_SANITIZEbooleanнеобязательно- Возможные варианты:
trueиfalse. По умолчанию используетсяtrue. Определяет, будет ли Wrangler удалять конфиденциальную информацию из логов, записываемых в консоль или в файл логов. К конфиденциальной информации относятся API токены, адреса электронной почты, ID аккаунтов и так далее.
- Возможные варианты:
-
FORCE_COLORstringнеобязательно- Задав этому параметру значение
0, вы можете отключить цветной вывод Wrangler, что облегчает чтение при некоторых настройках терминала. Например,FORCE_COLOR=0.
- Задав этому параметру значение
-
WRANGLER_HTTPS_KEY_PATHstringнеобязательно- Путь к пользовательскому ключу HTTPS-сертификата при запуске
wrangler dev, для использования сWRANGLER_HTTPS_CERT_PATH.
- Путь к пользовательскому ключу HTTPS-сертификата при запуске
-
WRANGLER_HTTPS_CERT_PATHstringнеобязательно- Путь к пользовательскому HTTPS-сертификату при запуске
wrangler dev, для использования сWRANGLER_HTTPS_KEY_PATH.
- Путь к пользовательскому HTTPS-сертификату при запуске
-
DOCKER_HOSTstringнеобязательно- Используется для локальной разработки Containers. Wrangler попытается автоматически найти нужный сокет для взаимодействия с вашим движком контейнеров. Если это не сработает (обычно это проявляется как ошибка
internal errorпри попытке подключения к вашему Container), можно попробовать задать путь к сокету с помощью этой переменной окружения.
- Используется для локальной разработки Containers. Wrangler попытается автоматически найти нужный сокет для взаимодействия с вашим движком контейнеров. Если это не сработает (обычно это проявляется как ошибка
-
WRANGLER_R2_SQL_AUTH_TOKENstringнеобязательно- Токен API, используемый для выполнения запросов с R2 SQL.
-
WRANGLER_OUTPUT_FILE_PATHstringнеобязательно- Задаёт путь к файлу, в который Wrangler запишет выходные данные в формате ND-JSON ↗ (формат JSON, где каждая запись располагается на отдельной строке). Каждая строка файла представляет собой отдельный JSON-объект с информацией об операциях Wrangler, таких как развёртывания, загрузки версий и ошибки. Это удобно для конвейеров CI/CD и инструментов автоматизации, которым нужен программный доступ к данным о развёртывании. Если указаны оба
WRANGLER_OUTPUT_FILE_PATHиWRANGLER_OUTPUT_FILE_DIRECTORYзаданы,WRANGLER_OUTPUT_FILE_PATHимеет приоритет.
- Задаёт путь к файлу, в который Wrangler запишет выходные данные в формате ND-JSON ↗ (формат JSON, где каждая запись располагается на отдельной строке). Каждая строка файла представляет собой отдельный JSON-объект с информацией об операциях Wrangler, таких как развёртывания, загрузки версий и ошибки. Это удобно для конвейеров CI/CD и инструментов автоматизации, которым нужен программный доступ к данным о развёртывании. Если указаны оба
-
WRANGLER_OUTPUT_FILE_DIRECTORYstringнеобязательно- Задаёт каталог, в котором Wrangler создаст файл со случайным именем (формат:
wrangler-output-<timestamp>-<random>.json) для записи выходных данных в ND-JSON ↗ формат. Это полезно, если вы хотите, чтобы выходные файлы были организованы в определённой директории, но при этом точное имя файла вас не волнует. Если обаWRANGLER_OUTPUT_FILE_PATHиWRANGLER_OUTPUT_FILE_DIRECTORYзаданы,WRANGLER_OUTPUT_FILE_PATHимеет приоритет.
- Задаёт каталог, в котором Wrangler создаст файл со случайным именем (формат:
-
WRANGLER_CACHE_DIRstringнеобязательно- Пользовательский каталог для файлов кеша Wrangler. Если задан, он переопределяет расположение кеша по умолчанию (
node_modules/.cache/wrangler). Полезно для сред, не использующих традиционныйnode_modulesкаталог, например Yarn PnP.
- Пользовательский каталог для файлов кеша Wrangler. Если задан, он переопределяет расположение кеша по умолчанию (
-
MINIFLARE_CACHE_DIRstringнеобязательно- Пользовательский каталог для Miniflare
cf.jsonфайл кеша, используемый при локальной разработке сwrangler dev. Если этот параметр задан, он переопределяет расположение кеша по умолчанию (node_modules/.mf). Полезно для сред, не использующих традиционныйnode_modulesкаталог, например Yarn PnP.
- Пользовательский каталог для Miniflare
-
CLOUDFLARE_CF_FETCH_ENABLEDstringнеобязательно- Управляет тем, будет ли Miniflare получает
cf.jsonфайл, содержащийRequest.cfсвойства от Cloudflare при локальной разработке. Установите значение"false"или"0"чтобы полностью отключить получение данных и использовать резервные данные. Никакихnode_modules/.mf/cf.jsonфайл будет создан, если отключено. По умолчанию"true". Это особенно полезно для проектов не на JavaScript (например, Workers на Rust или Go), в которых не нуженnode_modulesкаталог создается автоматически. Явноеcfпараметр в API Miniflare имеет приоритет над этой переменной окружения.
- Управляет тем, будет ли Miniflare получает
-
CLOUDFLARE_CF_FETCH_PATHstringнеобязательно- Задаёт пользовательский путь для кеширования
cf.jsonфайл, переопределяя значение по умолчаниюnode_modules/.mf/cf.jsonрасположение. Это полезно для конфигураций с несколькими проектами, где нужно общее расположение кеша, или для проектов, которым нужно хранить кеш внеnode_modules. Явныйcfпараметр в API Miniflare имеет приоритет над этой переменной окружения, аCLOUDFLARE_CF_FETCH_ENABLED=falseимеет приоритет над этой переменной.
- Задаёт пользовательский путь для кеширования
Пример выходного файла
Когда эти переменные окружения заданы, Wrangler построчно записывает в выходной файл по одному объекту JSON. Каждая запись включает timestamp поле и type поле, указывающее тип операции. Вот пример того, что может содержать файл после выполнения wrangler deploy:
{"type":"wrangler-session","version":1,"wrangler_version":"3.78.0","command_line_args":["deploy"],"log_file_path":"/path/to/logs/wrangler-2024-11-03_12-00-00_abc.log","timestamp":"2024-11-03T12:00:00.000Z"}
{"type":"deploy","version":1,"worker_name":"my-worker","worker_tag":"abc123def456","version_id":"v1-abc123","targets":["https://my-worker.example.workers.dev"],"worker_name_overridden":false,"wrangler_environment":"production","timestamp":"2024-11-03T12:00:05.000Z"} wrangler-session запись создаётся при запуске Wrangler и содержит информацию о выполняемой команде. deploy запись создаётся при успешном завершении деплоя и включает имя Worker, ID версии и URL-адреса деплоя.
К другим типам точек входа относятся:
version-upload- Написаноwrangler versions uploadс идентификатором версии и URL для предпросмотраversion-deploy- Написаноwrangler versions deployс информацией о развертыванииpages-deploy- Написаноwrangler pages deployс данными о развертывании Pagescommand-failed- Записывается при сбое команды, включая код ошибки и сообщение
Пример .env файл
Ниже приведён пример .env файле:
CLOUDFLARE_ACCOUNT_ID=<YOUR_ACCOUNT_ID_VALUE>
CLOUDFLARE_API_TOKEN=<YOUR_API_TOKEN_VALUE>
CLOUDFLARE_EMAIL=<YOUR_EMAIL>
WRANGLER_SEND_METRICS=true
CLOUDFLARE_API_BASE_URL=https://api.cloudflare.com/client/v4
WRANGLER_LOG=debug
WRANGLER_LOG_PATH=../Desktop/my-logs/my-log-file.log
WRANGLER_R2_SQL_AUTH_TOKEN=<YOUR_R2_API_TOKEN_VALUE>
CLOUDFLARE_CF_FETCH_ENABLED=falseУстаревшие глобальные переменные
Следующие переменные считаются устаревшими. Используйте новые переменные, перечисленные выше, чтобы избежать проблем и нежелательных сообщений.
CF_ACCOUNT_IDCF_API_TOKENCF_API_KEYCF_EMAILCF_API_BASE_URL