跳转到内容
搜索文档

配置

最后更新 查看 MarkdownAgent 设置

将 Git 仓库连接到 Worker 时,可以自定义构建和部署 Worker 所需的配置。

Workers Builds 的工作原理

当提交推送到已连接的仓库时,Workers Builds 运行两步流程:

  1. Build command(构建命令) (optional) - 编译项目(例如 Next.js 或 Astro 等框架的 npm run build
  2. Deploy command(部署命令) - 将 Worker 部署到 Cloudflare(默认为 npx wrangler deploy

对于预览构建(推送到非生产分支的提交),部署命令会被预览部署命令(默认为 npx wrangler versions upload)替换,该命令创建预览版本而不将其提升为生产版本。

构建设置

构建设置可在 Worker 内的 Settings(设置) > Build(构建) 中找到。

请注意,更新并保存构建设置后,更新的设置将应用于_下一次_构建。当你_重试_构建时,将应用重试构建时存在的构建配置。

概览

Setting Description
Git account(Git 账户) 选择要使用的 Git 账户。初始连接后,你可以继续使用此 Git 账户进行未来的项目。
Git repository(Git 仓库) 选择要连接到 Worker 的 Git 仓库。
Git branch(Git 分支) 选择希望 Cloudflare 监听新提交的分支。默认为 main
Build command(构建命令) (Optional) 如果项目需要构建步骤,请设置构建命令(例如 npm run build)。例如,使用 Next.js 或 Remix 等前端框架 时需要此设置。
Deploy command 部署命令允许你设置用于部署 Worker 的特定 Wrangler 命令。部署命令默认为 npx wrangler deploy,但你可以自定义此命令。Workers Builds 将使用 package json 中设置的 Wrangler 版本。
Non-production branch deploy command 设置在对非生产分支提交执行构建时运行的命令。默认为 npx wrangler versions upload,但你可以自定义此命令。Workers Builds 将使用 package json 中设置的 Wrangler 版本。
Root directory(根目录) (Optional) 指定项目路径。根目录定义构建命令运行的位置,在 monorepo 中有助于隔离仓库中的特定项目进行构建。
API token (Optional) API 令牌用于验证构建请求并授权 Worker 的上传和部署到 Cloudflare。默认情况下,使用 Workers Builds 时 Cloudflare 会自动为你的账户生成 API 令牌,并在所有后续构建中继续使用此 API 令牌。或者,你可以创建自己的 API 令牌,或选择已有的令牌。
Build variables and secrets(构建变量和密钥) (Optional) 添加仅构建时可访问的环境变量和密钥。构建变量在运行时将不可访问。如果要配置运行时变量,可以在 Settings(设置) > Variables & Secrets(变量和密钥) 中进行

部署命令

你可以使用选择的包管理器运行部署命令。

如果你在 package.json 中将 Wrangler 部署命令添加为脚本,可以通过将其设置为部署命令来运行它。例如 npm run deploy

你可以设置的其他部署命令示例包括:

Example Command Description
npx wrangler deploy --assets ./public/ 部署 Worker 以及指定目录中的静态资源。或者,你可以使用 assets 绑定(binding)
npx wrangler deploy --env staging 如果你有 Wrangler environment Worker,应使用环境标志设置部署命令。更多详情,请参阅高级设置

非生产分支部署命令

非生产分支部署命令仅在你启用了非生产分支构建时适用。

它默认为 npx wrangler versions upload,生成预览 URL。与构建和部署命令一样,可以自定义为运行任何命令。

你可以设置的其他非生产分支部署命令示例包括:

Example Command Description
yarn exec wrangler versions upload 你可以自定义用于运行 Wrangler 的包管理器。
npx wrangler versions upload --env staging 如果你有 Wrangler environment Worker,应使用环境标志设置非生产分支部署命令。更多详情,请参阅高级设置

新项目的自动配置

如果你的仓库没有 Wrangler 配置文件,部署命令(wrangler deploy)将触发自动项目配置。这会检测你的框架,创建必要的配置,并打开拉取请求供你审查。合并 PR 后,项目即已配置,后续构建将正常部署。

API 令牌

Workers Builds 中的 API 令牌定义授予 Workers Builds 与账户资源交互的访问权限。目前仅支持用户令牌,账户拥有的令牌支持即将推出。

选择 Create new token(创建新令牌) 时,将自动创建具有以下权限的新 API 令牌:

  • Account: Account Settings (read), Workers Scripts (edit), Workers KV Storage (edit), Workers R2 Storage (edit)
  • Zone: Workers Routes (edit) for all zones on the account
  • User: User Details (read), Memberships (read)

你可以通过导航到 My Profile(我的个人资料) > API Tokens(API 令牌) 来配置此 API 令牌的权限。

建议在所有 Worker 的上传和部署中始终使用相同的 API 令牌,以保持一致访问权限。

框架支持

静态资源框架现已在 Cloudflare Worker 中受支持。在框架指南中学习设置 Worker 项目和每个框架的命令:

环境变量

你可以为构建提供自定义环境变量。

要通过仪表板添加环境变量:

  1. 在 Cloudflare 仪表板中,前往 Workers & Pages 页面。
Go to Workers & Pages ↗
  1. Overview(概览) 中,选择 Worker。
  2. 选择 Settings(设置) > Environment variables(环境变量)

要使用 Wrangler 添加环境变量,在 Wrangler 文件中通过 [vars] 配置定义文本和 JSON。

{
	"$schema": "./node_modules/wrangler/config-schema.json",
	"name": "my-worker-dev",
	"vars": {
		"API_HOST": "example.com",
		"API_ACCOUNT_ID": "example_user",
		"SERVICE_X_DATA": {
			"URL": "service-x-api.dev.example",
			"MY_ID": 123
		}
	}
}
"$schema" = "./node_modules/wrangler/config-schema.json"
name = "my-worker-dev"

[vars]
API_HOST = "example.com"
API_ACCOUNT_ID = "example_user"

  [vars.SERVICE_X_DATA]
  URL = "service-x-api.dev.example"
  MY_ID = 123

默认变量

以下系统环境变量默认注入(但可以覆盖):

Environment Variable Injected value Example use-case
CI true 在 CI 上运行时与本地运行时更改构建行为
WORKERS_CI 1 在 Workers Builds 上运行时与本地运行时更改构建行为
WORKERS_CI_BUILD_UUID <build-uuid-of-current-build> 将 Build UUID 传递给自定义工作流
WORKERS_CI_COMMIT_SHA <sha1-hash-of-current-commit> 将当前提交 ID 传递给错误报告,例如 Sentry
WORKERS_CI_BRANCH <branch-name-from-push-event 根据分支自定义构建,例如在 production 上禁用调试日志

这篇文档对您有帮助吗?