システム環境変数は、Wrangler の動作を変えられるローカル環境変数です。設定方法は次の 3 つです。
-
プロジェクトディレクトリに
.envファイルを作成します。環境変数の値は.envファイルに設定します。Wrangler のセッションをまたいで値が残るため、推奨の方法です。 -
Wrangler コマンドに値をインラインで渡します。たとえば
WRANGLER_LOG="debug" npx wrangler deployは、このコマンド実行中だけWRANGLER_LOGを"debug"にします。 -
シェル環境に値を設定します。たとえば Z shell なら、
~/.zshrcにexport CLOUDFLARE_API_TOKEN=...を追加すると、シェル設定の一部としてトークンが設定されます。
Wrangler は次の環境変数に対応しています。
-
CLOUDFLARE_ACCOUNT_IDstring任意- Workers 関連アカウントの アカウント ID です。
-
CLOUDFLARE_API_TOKENstring任意- Cloudflare アカウントの API トークン です。CI/CD などの自動化での認証に使えます。
-
CLOUDFLARE_API_KEYstring任意- Cloudflare アカウントの API キーです。通常は
CLOUDFLARE_EMAIL=と組み合わせる、古い認証方式で使います。
- Cloudflare アカウントの API キーです。通常は
-
CLOUDFLARE_EMAILstring任意- Cloudflare アカウントに紐づくメールアドレスです。通常は
CLOUDFLARE_API_KEY=と組み合わせる、古い認証方式で使います。
- Cloudflare アカウントに紐づくメールアドレスです。通常は
-
CLOUDFLARE_ACCESS_CLIENT_IDstring任意- 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_SECRETstring任意- Cloudflare Access サービストークン の Client Secret です。対話なしの環境で Access 保護ドメインへ認証するため、
CLOUDFLARE_ACCESS_CLIENT_IDと一緒に使います。Access ポリシーとサービストークンの設定全体は、Access で保護された Workers に接続する を参照してください。
- Cloudflare Access サービストークン の Client Secret です。対話なしの環境で Access 保護ドメインへ認証するため、
-
CLOUDFLARE_AUTH_USE_KEYRINGboolean任意- 値は
trueまたはfalseです。既定は未設定です。1 回の実行について、wrangler login --use-keyring/--no-use-keyringで保存した永続設定を上書きします。trueのとき、Wrangler は OS キーチェーンに暗号鍵を置いた暗号化ファイルへ OAuth 資格情報を保存し、キーチェーンバックエンドが使えない場合はエラーで終了します。falseのとき、永続設定が有効でも、従来の平文 TOML ファイルを使います。詳細は OS キーチェーンへの OAuth 資格情報の保存 を参照してください。
- 値は
-
CLOUDFLARE_ENVstring任意- Wrangler コマンドで使う 環境 です。
--envフラグなしで環境を選べます。たとえばCLOUDFLARE_ENV=production wrangler deployはproduction環境へデプロイします。コマンドラインの--envが、この環境変数より優先されます。
- Wrangler コマンドで使う 環境 です。
-
NODE_ENVstring任意- Worker コード内の
process.env.NODE_ENVの値を設定します。wrangler devでは既定"development"、wrangler deployとwrangler versions uploadでは既定"production"です。詳細は バンドル を参照してください。
- Worker コード内の
-
WRANGLER_SEND_METRICSboolean任意- 値は
trueまたはfalseです。既定はtrueです。このプロジェクトについて、Wrangler が匿名の利用データを Cloudflare へ送れるかどうかを制御します。詳細は データポリシー ↗ を参照してください。
- 値は
-
WRANGLER_SEND_ERROR_REPORTSboolean任意- 値は
trueまたはfalseです。既定はundefinedです。このプロジェクトについて、Wrangler がユーザー起因でないエラー報告を Cloudflare へ送れるかどうかを制御します。undefinedの場合、ユーザー起因でないエラーのたびに、報告を送るかを尋ねます。
- 値は
-
CLOUDFLARE_HYPERDRIVE_LOCAL_CONNECTION_STRING_<BINDING_NAME>string任意- 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_URLstring任意- 既定値は
"https://api.cloudflare.com/client/v4"です。
- 既定値は
-
WRANGLER_LOGstring任意- ログレベルは
"none"、"error"、"warn"、"info"、"log"、"debug"です。大文字小文字は区別せず、既定は"log"です。無効なレベルを指定すると、Wrangler は既定に戻します。ログには Cloudflare API へのリクエスト、収集中の利用データ、より詳細なエラーログなどが含まれることがあります。
- ログレベルは
-
WRANGLER_LOG_PATHstring任意- Wrangler がデバッグログを書き込むファイルまたはディレクトリのパスです。パスが
.logで終わる場合、Wrangler はそれをすべてのログを書き込むファイルのパスとして扱います。それ以外はディレクトリとして扱い、タイムスタンプ付きのファイル名で 1 つ以上のログファイルを書き込みます。
- Wrangler がデバッグログを書き込むファイルまたはディレクトリのパスです。パスが
-
WRANGLER_LOG_SANITIZEboolean任意- 値は
trueまたはfalseです。既定はtrueです。コンソールやログファイルへ書き込むログから、機密情報を除去するかどうかを制御します。機密情報には API トークン、メールアドレス、アカウント ID などが含まれます。
- 値は
-
FORCE_COLORstring任意0にすると Wrangler の色付き出力を無効にでき、一部のターミナル設定で読みやすくなります。例:FORCE_COLOR=0。
-
WRANGLER_HTTPS_KEY_PATHstring任意wrangler dev実行時に使うカスタム HTTPS 証明書の鍵のパスです。WRANGLER_HTTPS_CERT_PATHと一緒に使います。
-
WRANGLER_HTTPS_CERT_PATHstring任意wrangler dev実行時に使うカスタム HTTPS 証明書のパスです。WRANGLER_HTTPS_KEY_PATHと一緒に使います。
-
DOCKER_HOSTstring任意- Containers のローカル開発で使います。Wrangler はコンテナエンジンと通信する正しいソケットを自動検出します。うまくいかない場合(通常は Container への接続時に
internal errorとして現れます)、この環境変数でソケットパスを設定してみてください。
- Containers のローカル開発で使います。Wrangler はコンテナエンジンと通信する正しいソケットを自動検出します。うまくいかない場合(通常は Container への接続時に
-
WRANGLER_R2_SQL_AUTH_TOKENstring任意- R2 SQL でクエリを実行するときに使う API トークンです。
-
WRANGLER_OUTPUT_FILE_PATHstring任意- 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_DIRECTORYstring任意- Wrangler がランダム名のファイル(形式:
wrangler-output-<timestamp>-<random>.json)を作成し、ND-JSON ↗ で出力データを書き込むディレクトリです。出力ファイルを特定のディレクトリにまとめたいが、正確なファイル名は制御しなくてよい場合に便利です。WRANGLER_OUTPUT_FILE_PATHとWRANGLER_OUTPUT_FILE_DIRECTORYの両方を設定した場合は、WRANGLER_OUTPUT_FILE_PATHが優先されます。
- Wrangler がランダム名のファイル(形式:
-
WRANGLER_CACHE_DIRstring任意- Wrangler のキャッシュファイル用のカスタムディレクトリです。設定すると、既定のキャッシュ場所(
node_modules/.cache/wrangler)を上書きします。Yarn PnP など、従来のnode_modulesディレクトリを使わない環境で便利です。
- Wrangler のキャッシュファイル用のカスタムディレクトリです。設定すると、既定のキャッシュ場所(
-
MINIFLARE_CACHE_DIRstring任意wrangler devでのローカル開発時に使う、Miniflare のcf.jsonキャッシュファイル用カスタムディレクトリです。設定すると、既定のキャッシュ場所(node_modules/.mf)を上書きします。Yarn PnP など、従来のnode_modulesディレクトリを使わない環境で便利です。
-
CLOUDFLARE_CF_FETCH_ENABLEDstring任意- ローカル開発中に Miniflare が
Request.cfプロパティを含むcf.jsonを Cloudflare から取得するかどうかを制御します。"false"または"0"にすると取得を完全に無効にし、フォールバックデータを使います。無効時はnode_modules/.mf/cf.jsonは作成されません。既定は"true"です。node_modulesディレクトリを自動作成したくない、Rust や Go の Workers など非 JavaScript プロジェクトで特に便利です。Miniflare API の明示的なcfオプションが、この環境変数より優先されます。
- ローカル開発中に Miniflare が
-
CLOUDFLARE_CF_FETCH_PATHstring任意cf.jsonファイルのキャッシュパスを指定し、既定のnode_modules/.mf/cf.jsonを上書きします。共有キャッシュを置きたいマルチプロジェクト構成や、node_modulesの外にキャッシュを置きたいプロジェクトで便利です。Miniflare API の明示的なcfオプションがこの環境変数より優先され、CLOUDFLARE_CF_FETCH_ENABLED=falseもこの変数より優先されます。
これらの環境変数を設定すると、Wrangler は出力ファイルへ 1 行につき 1 つの 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 とプレビュー URL とともに書き込みますversion-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