Wrangler 一次以一个用户身份进行身份验证。配置文件(profile)是一个命名的 OAuth 登录,你可以将其作用域限定为一组选定的账户,并绑定到目录。
使用配置文件在同一台机器上的不同 Cloudflare 账户之间切换,而无需重新运行 wrangler login。配置文件位于 wrangler auth 下。
当你在同一台机器上跨多个 Cloudflare 账户工作时,请使用配置文件:
- 代理和客户工作 — 为每个客户账户保留单独的登录,并将其绑定到该客户的项目目录。在每个目录中运行的命令会自动使用匹配的配置文件。
- 账户隔离的环境 — 将预发布和生产保留在不同账户中,然后为每个账户绑定配置文件。在 Wrangler 配置文件 中将配置文件与
account_id配对,这样命令就无法访问错误的账户。
配置文件结合了两件事:
- 通过 OAuth 创建的登录。在 OAuth 流程中,你选择配置文件可以访问哪些账户。一个配置文件可以包含你的用户拥有的多个账户的访问权限。
- 目录绑定。当你在目录中激活配置文件时,该目录及其子目录将使用该配置文件。
对于每个命令,Wrangler 按以下顺序选择配置文件,优先级从高到低:
CLOUDFLARE_API_TOKEN环境变量。设置时,它将覆盖所有配置文件。--profile标志,适用于单次命令运行。- 最近的已激活祖先目录。当你传递
--config时,Wrangler 从包含配置文件的目录解析,否则从工作目录解析。 - 由
wrangler login和wrangler logout管理的默认配置文件。
在已解析的配置文件内,Wrangler 按以下顺序选择目标账户:
- Wrangler 配置文件 中的
account_id,或CLOUDFLARE_ACCOUNT_ID环境变量。 - 否则,登录时为配置文件选择的账户。
如果命令目标账户是活动配置文件无法访问的,Wrangler 将失败并显示命名账户和配置文件的错误。Wrangler 不会回退到另一个账户。
使用名称运行 wrangler auth create。Wrangler 启动 OAuth 流程,你可以在其中选择配置文件可以访问哪些账户。
wrangler auth create work使用相同名称再次运行命令以重新验证现有配置文件,例如在其令牌过期后。
运行 wrangler auth activate 将配置文件绑定到目录。绑定适用于该目录及其子目录。目录默认为当前工作目录。
wrangler auth activate work ~/projects/work子目录可以通过激活不同的配置文件来覆盖其上方的配置文件。
此示例为代理工作设置每个客户一个配置文件。
-
为第一个客户创建配置文件。在 OAuth 流程中,选择此配置文件可以访问的账户。
wrangler auth create client-a -
将配置文件绑定到客户的项目目录。
wrangler auth activate client-a ~/clients/client-a -
为第二个客户重复上述步骤。
wrangler auth create client-b wrangler auth activate client-b ~/clients/client-b
在 ~/clients/client-a 中运行的命令现在使用 client-a 配置文件,在 ~/clients/client-b 中的命令使用 client-b 配置文件。你无需再次登录即可在它们之间切换。
当预发布和生产位于不同账户时,为每个环境的目录绑定配置文件,并在每个项目的配置中固定账户。account_id 充当故障保护,即使配置文件可以访问两个账户,命令也无法部署到错误的账户。
-
为每个环境创建并激活配置文件。
wrangler auth create staging wrangler auth activate staging ~/projects/staging wrangler auth create production wrangler auth activate production ~/projects/production -
在每个项目的 Wrangler 配置文件 中设置匹配的
account_id。{ "$schema": "./node_modules/wrangler/config-schema.json", "name": "my-worker", "account_id": "<PRODUCTION_ACCOUNT_ID>" }name = "my-worker" account_id = "<PRODUCTION_ACCOUNT_ID>"
使用 --profile 标志使用特定配置文件运行一个命令,而不更改任何目录绑定。
wrangler deploy --profile stagingauth、login、logout 和 whoami 命令不支持 --profile 标志。
运行 wrangler auth list 查看每个配置文件及其绑定的目录。
wrangler auth list要停止目录使用配置文件,请在该目录中运行 wrangler auth deactivate。目录将返回到其上方的配置文件,或返回到默认配置文件。
wrangler auth deactivate ~/projects/staging要移除配置文件及其所有目录绑定,请运行 wrangler auth delete。
wrangler auth delete staging配置文件是本地机器的便利功能。它们不适用于 CI、容器或其他自动化环境,这些环境通过 CLOUDFLARE_API_TOKEN 按环境进行身份验证。有关更多信息,请参阅在 CI/CD 中运行 Wrangler。
存在环境变量时适用两条规则:
- 设置
CLOUDFLARE_API_TOKEN时,Wrangler 使用它而不是任何配置文件。设置时无法创建、激活、停用或删除配置文件。 CLOUDFLARE_ACCOUNT_ID和 Wrangler 配置文件中的account_id始终受尊重,包括在活动配置文件内。