系统环境变量是可改变 Wrangler 行为的本地环境变量。有三种设置系统环境变量的方式:
-
在项目目录中创建
.env文件。在.env文件中设置环境变量的值。这是设置这些变量的推荐方式,因为它会在 Wrangler 会话之间保留值。 -
在 Wrangler 命令中内联值。例如,
WRANGLER_LOG="debug" npx wrangler deploy将为此命令执行设置WRANGLER_LOG的值为"debug"。 -
在 shell 环境中设置值。例如,如果你使用 Z shell,将
export CLOUDFLARE_API_TOKEN=...添加到~/.zshrc文件会将此令牌设置为 shell 配置的一部分。
Wrangler 支持以下环境变量:
CLOUDFLARE_ACCOUNT_IDstringoptional- Workers 相关账户的账户 ID。
CLOUDFLARE_API_TOKENstringoptional- Cloudflare 账户的 API 令牌,可用于 CI/CD 和其他自动化等场景的身份验证。
CLOUDFLARE_API_KEYstringoptional- Cloudflare 账户的 API 密钥,通常与
CLOUDFLARE_EMAIL=一起用于较旧的身份验证方法。
- Cloudflare 账户的 API 密钥,通常与
CLOUDFLARE_EMAILstringoptional- 与 Cloudflare 账户关联的电子邮件地址,通常与
CLOUDFLARE_API_KEY=一起用于较旧的身份验证方法。
- 与 Cloudflare 账户关联的电子邮件地址,通常与
CLOUDFLARE_ACCESS_CLIENT_IDstringoptional- Cloudflare Access 服务令牌 的 Client ID,用于在 CI/CD 流水线等非交互式环境中与 Access 保护的域进行身份验证。必须与
CLOUDFLARE_ACCESS_CLIENT_SECRET一起设置。当两个变量都设置时,Wrangler 使用服务令牌进行身份验证,而不是启动cloudflared access login。有关完整的 Access 策略和服务令牌设置,请参阅连接到 Access 保护的 Workers。
- Cloudflare Access 服务令牌 的 Client ID,用于在 CI/CD 流水线等非交互式环境中与 Access 保护的域进行身份验证。必须与
CLOUDFLARE_ACCESS_CLIENT_SECRETstringoptional- Cloudflare Access 服务令牌 的 Client Secret,与
CLOUDFLARE_ACCESS_CLIENT_ID一起用于在非交互式环境中与 Access 保护的域进行身份验证。有关完整的 Access 策略和服务令牌设置,请参阅连接到 Access 保护的 Workers。
- Cloudflare Access 服务令牌 的 Client Secret,与
CLOUDFLARE_AUTH_USE_KEYRINGbooleanoptional- 此选项为
true和false。默认为未设置。覆盖wrangler login --use-keyring/--no-use-keyring设置的持久首选项,仅用于单次调用。当为true时,Wrangler 将 OAuth 凭据存储在加密文件中,加密密钥保存在操作系统密钥链中,如果密钥链后端不可用则退出并报错。当为false时,Wrangler 使用旧版明文 TOML 文件,即使启用了持久首选项。有关详情,请参阅在操作系统密钥链中存储 OAuth 凭据。
- 此选项为
CLOUDFLARE_ENVstringoptional- 用于 Wrangler 命令的环境。这允许你在不使用
--env标志的情况下选择环境。例如,CLOUDFLARE_ENV=production wrangler deploy将部署到production环境。--env命令行参数优先于此环境变量。
- 用于 Wrangler 命令的环境。这允许你在不使用
NODE_ENVstringoptional- 设置 Worker 代码中
process.env.NODE_ENV的值。对于wrangler dev默认为"development",对于wrangler deploy和wrangler versions upload默认为"production"。有关更多信息,请参阅打包。
- 设置 Worker 代码中
WRANGLER_SEND_METRICSbooleanoptional- 此选项为
true和false。默认为true。控制 Wrangler 是否可为此项目向 Cloudflare 发送匿名使用数据。你可以在数据政策 ↗中了解更多信息。
- 此选项为
WRANGLER_SEND_ERROR_REPORTSbooleanoptional- 此选项为
true和false。默认为undefined。控制 Wrangler 是否可为此项目向 Cloudflare 发送非用户错误报告。如果为undefined,Wrangler 将在每次出现非用户错误时询问用户是否发送错误报告。
- 此选项为
CLOUDFLARE_HYPERDRIVE_LOCAL_CONNECTION_STRING_<BINDING_NAME>stringoptional- 在本地开发中使用 Hyperdrive 时数据库的本地连接字符串。例如,如果你的 Hyperdrive 绑定名为
PROD_DB,则为CLOUDFLARE_HYPERDRIVE_LOCAL_CONNECTION_STRING_PROD_DB="postgres://user:password@127.0.0.1:5432/testdb"。每个 Hyperdrive 由绑定名称唯一区分。
- 在本地开发中使用 Hyperdrive 时数据库的本地连接字符串。例如,如果你的 Hyperdrive 绑定名为
CLOUDFLARE_API_BASE_URLstringoptional- 默认值为
"https://api.cloudflare.com/client/v4"。
- 默认值为
WRANGLER_LOGstringoptional- 日志级别选项为
"none"、"error"、"warn"、"info"、"log"和"debug"。级别不区分大小写,默认为"log"。如果指定无效级别,Wrangler 将回退到默认值。日志可以包括对 Cloudflare API 的请求、正在收集的任何使用数据以及更详细的错误日志。
- 日志级别选项为
WRANGLER_LOG_PATHstringoptional- Wrangler 将写入调试日志的文件或目录路径。如果路径以
.log结尾,Wrangler 将视其为所有日志的写入路径。否则,Wrangler 将路径视为目录,并使用时间戳作为文件名写入一个或多个日志文件。
- Wrangler 将写入调试日志的文件或目录路径。如果路径以
WRANGLER_LOG_SANITIZEbooleanoptional- 此选项为
true和false。默认为true。控制 Wrangler 是否将从日志写入控制台或日志文件的任何敏感信息进行脱敏。敏感信息包括 API 令牌、电子邮件地址、账户 ID 等。
- 此选项为
FORCE_COLORstringoptional- 通过将此设置为
0,可以禁用 Wrangler 的彩色输出,这在某些终端设置下更易于阅读。例如FORCE_COLOR=0。
- 通过将此设置为
WRANGLER_HTTPS_KEY_PATHstringoptional- 运行
wrangler dev时自定义 HTTPS 证书密钥的路径,与WRANGLER_HTTPS_CERT_PATH一起使用。
- 运行
WRANGLER_HTTPS_CERT_PATHstringoptional- 运行
wrangler dev时自定义 HTTPS 证书的路径,与WRANGLER_HTTPS_KEY_PATH一起使用。
- 运行
DOCKER_HOSTstringoptional- 用于 Containers 的本地开发。Wrangler 将尝试自动找到与容器引擎通信的正确 socket。如果不起作用(通常在尝试连接 Container 时表现为
internal error),你可以尝试使用此环境变量设置 socket 路径。
- 用于 Containers 的本地开发。Wrangler 将尝试自动找到与容器引擎通信的正确 socket。如果不起作用(通常在尝试连接 Container 时表现为
WRANGLER_R2_SQL_AUTH_TOKENstringoptional- 用于执行 R2 SQL 查询的 API 令牌。
WRANGLER_OUTPUT_FILE_PATHstringoptional- 指定 Wrangler 将以 ND-JSON ↗(换行分隔 JSON)格式写入输出数据的文件路径。文件中的每一行是包含 Wrangler 操作(如部署、版本上传和错误)信息的单独 JSON 对象。这对于需要以编程方式访问部署信息的 CI/CD 流水线和自动化工具很有用。如果同时设置
WRANGLER_OUTPUT_FILE_PATH和WRANGLER_OUTPUT_FILE_DIRECTORY,WRANGLER_OUTPUT_FILE_PATH优先。
- 指定 Wrangler 将以 ND-JSON ↗(换行分隔 JSON)格式写入输出数据的文件路径。文件中的每一行是包含 Wrangler 操作(如部署、版本上传和错误)信息的单独 JSON 对象。这对于需要以编程方式访问部署信息的 CI/CD 流水线和自动化工具很有用。如果同时设置
WRANGLER_OUTPUT_FILE_DIRECTORYstringoptional- 指定 Wrangler 将创建随机命名文件(格式:
wrangler-output-<timestamp>-<random>.json)以 ND-JSON ↗ 格式写入输出数据的目录。当你想在特定目录中组织输出文件但不需要控制确切文件名时很有用。如果同时设置WRANGLER_OUTPUT_FILE_PATH和WRANGLER_OUTPUT_FILE_DIRECTORY,WRANGLER_OUTPUT_FILE_PATH优先。
- 指定 Wrangler 将创建随机命名文件(格式:
WRANGLER_CACHE_DIRstringoptional- Wrangler 缓存文件的自定义目录。设置时,这将覆盖默认缓存位置(
node_modules/.cache/wrangler)。对于不使用传统node_modules目录的环境(如 Yarn PnP)很有用。
- Wrangler 缓存文件的自定义目录。设置时,这将覆盖默认缓存位置(
MINIFLARE_CACHE_DIRstringoptional- Miniflare 的
cf.json缓存文件的自定义目录,在wrangler dev本地开发期间使用。设置时,这将覆盖默认缓存位置(node_modules/.mf)。对于不使用传统node_modules目录的环境(如 Yarn PnP)很有用。
- Miniflare 的
CLOUDFLARE_CF_FETCH_ENABLEDstringoptional- 控制 Miniflare 在本地开发期间是否从 Cloudflare 获取包含
Request.cf属性的cf.json文件。设置为"false"或"0"可完全禁用获取并使用回退数据。禁用时不会创建node_modules/.mf/cf.json文件。默认为"true"。这对于不希望自动创建node_modules目录的非 JavaScript 项目(如 Rust 或 Go Workers)特别有用。Miniflare API 中的显式cf选项优先于此环境变量。
- 控制 Miniflare 在本地开发期间是否从 Cloudflare 获取包含
CLOUDFLARE_CF_FETCH_PATHstringoptional- 指定缓存
cf.json文件的自定义路径,覆盖默认的node_modules/.mf/cf.json位置。这对于想要共享缓存位置的多项目设置,或想要将缓存存储在node_modules之外的项目很有用。Miniflare API 中的显式cf选项优先于此环境变量,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写入,包含版本 ID 和预览 URLversion-deploy- 由wrangler versions deploy写入,包含部署信息pages-deploy- 由wrangler pages deploy写入,包含 Pages 部署详情command-failed- 命令失败时写入,包括错误代码和消息
以下是 .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