Wrangler は、一度に 1 人のユーザーとして認証します。プロファイルは名前付きの OAuth ログインで、選んだアカウント群にスコープを付け、ディレクトリへバインドできます。
プロファイルを使うと、プロジェクトごとにアカウントを切り替えても wrangler login を再実行する必要はありません。プロファイルは wrangler auth 配下にあります。
同じマシンで複数の Cloudflare アカウントを扱うときに、プロファイルを使います。
- 代理店とクライアントの作業 — クライアントアカウントごとにログインを分け、そのクライアントのプロジェクトディレクトリへバインドします。各ディレクトリで実行したコマンドは、対応するプロファイルを自動で使います。
- アカウントを分けた環境 — ステージングと本番を別アカウントに置き、それぞれにプロファイルをバインドします。プロファイルを Wrangler 設定ファイル の
account_idと組み合わせると、コマンドが誤ったアカウントへ届くのを防げます。
プロファイルは次の 2 つを組み合わせます。
- OAuth で作るログイン。OAuth フロー中に、プロファイルが到達できるアカウントを選びます。1 つのプロファイルは、そのユーザーが持つ複数のアカウントへのアクセスを持てます。
- ディレクトリへのバインド。ディレクトリでプロファイルを有効にすると、そのディレクトリとサブディレクトリがそのプロファイルを使います。
各コマンドで、Wrangler は次の順(優先度の高いものから)でプロファイルを選びます。
CLOUDFLARE_API_TOKEN環境変数。設定されていると、すべてのプロファイルを上書きします。--profileフラグ。1 回のコマンド実行にだけ適用されます。- 有効になっている最も近い祖先ディレクトリ。
--configを渡した場合は設定ファイルがあるディレクトリから、それ以外は作業ディレクトリから解決します。 wrangler loginとwrangler logoutが管理する既定のプロファイル。
解決したプロファイル内で、Wrangler は次の順で対象アカウントを選びます。
- Wrangler 設定ファイル の
account_id、またはCLOUDFLARE_ACCOUNT_ID環境変数。 - それ以外は、ログイン時にプロファイルで選んだアカウント。
コマンドの対象アカウントに、有効なプロファイルが到達できない場合、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 -
プロファイルをクライアントのプロジェクトディレクトリへバインドします。
wrangler auth activate client-a ~/clients/client-a -
2 つ目のクライアントでも同じ手順を繰り返します。
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 フラグを使うと、ディレクトリのバインドを変えずに、特定のプロファイルで 1 つのコマンドを実行できます。
wrangler deploy --profile staging--profile フラグは、auth、login、logout、whoami コマンドでは使えません。
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 を実行する を参照してください。
環境変数がある場合は、次の 2 つの規則が適用されます。
CLOUDFLARE_API_TOKENが設定されていると、Wrangler はどのプロファイルよりもそれを使います。設定中は、プロファイルの作成、有効化、無効化、削除はできません。CLOUDFLARE_ACCOUNT_IDと Wrangler 設定ファイルのaccount_idは、有効なプロファイル内でも常に尊重されます。