跳转到内容
搜索文档

身份验证配置文件

最后更新 查看 MarkdownAgent 设置

Wrangler 一次以一个用户身份进行身份验证。配置文件(profile)是一个命名的 OAuth 登录,你可以将其作用域限定为一组选定的账户,并绑定到目录。

使用配置文件在同一台机器上的不同 Cloudflare 账户之间切换,而无需重新运行 wrangler login。配置文件位于 wrangler auth 下。

何时使用配置文件

当你在同一台机器上跨多个 Cloudflare 账户工作时,请使用配置文件:

  • 代理和客户工作 — 为每个客户账户保留单独的登录,并将其绑定到该客户的项目目录。在每个目录中运行的命令会自动使用匹配的配置文件。
  • 账户隔离的环境 — 将预发布和生产保留在不同账户中,然后为每个账户绑定配置文件。在 Wrangler 配置文件 中将配置文件与 account_id 配对,这样命令就无法访问错误的账户。

配置文件的工作原理

配置文件结合了两件事:

  • 通过 OAuth 创建的登录。在 OAuth 流程中,你选择配置文件可以访问哪些账户。一个配置文件可以包含你的用户拥有的多个账户的访问权限。
  • 目录绑定。当你在目录中激活配置文件时,该目录及其子目录将使用该配置文件。

解析顺序

对于每个命令,Wrangler 按以下顺序选择配置文件,优先级从高到低:

  1. CLOUDFLARE_API_TOKEN 环境变量。设置时,它将覆盖所有配置文件。
  2. --profile 标志,适用于单次命令运行。
  3. 最近的已激活祖先目录。当你传递 --config 时,Wrangler 从包含配置文件的目录解析,否则从工作目录解析。
  4. wrangler loginwrangler logout 管理的默认配置文件。

账户选择

在已解析的配置文件内,Wrangler 按以下顺序选择目标账户:

  1. Wrangler 配置文件 中的 account_id,或 CLOUDFLARE_ACCOUNT_ID 环境变量。
  2. 否则,登录时为配置文件选择的账户。

如果命令目标账户是活动配置文件无法访问的,Wrangler 将失败并显示命名账户和配置文件的错误。Wrangler 不会回退到另一个账户。

创建配置文件

使用名称运行 wrangler auth create。Wrangler 启动 OAuth 流程,你可以在其中选择配置文件可以访问哪些账户。

wrangler auth create work

使用相同名称再次运行命令以重新验证现有配置文件,例如在其令牌过期后。

在目录中激活配置文件

运行 wrangler auth activate 将配置文件绑定到目录。绑定适用于该目录及其子目录。目录默认为当前工作目录。

wrangler auth activate work ~/projects/work

子目录可以通过激活不同的配置文件来覆盖其上方的配置文件。

跨多个客户账户工作

此示例为代理工作设置每个客户一个配置文件。

  1. 为第一个客户创建配置文件。在 OAuth 流程中,选择此配置文件可以访问的账户。

    wrangler auth create client-a
  2. 将配置文件绑定到客户的项目目录。

    wrangler auth activate client-a ~/clients/client-a
  3. 为第二个客户重复上述步骤。

    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 充当故障保护,即使配置文件可以访问两个账户,命令也无法部署到错误的账户。

  1. 为每个环境创建并激活配置文件。

    wrangler auth create staging
    wrangler auth activate staging ~/projects/staging
    
    wrangler auth create production
    wrangler auth activate production ~/projects/production
  2. 在每个项目的 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 staging

authloginlogoutwhoami 命令不支持 --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 始终受尊重,包括在活动配置文件内。

这篇文档对您有帮助吗?