設定
Wrangler はオプションで wrangler.toml 設定ファイルを使用して、Worker の開発およびデプロイメント設定をカスタマイズします。
wrangler.toml を Worker の設定の 真実のソース として扱うことがベストプラクティスです。
# トップレベルの設定name = "my-worker"main = "src/index.js"compatibility_date = "2022-07-12"
workers_dev = falseroute = { pattern = "example.org/*", zone_name = "example.org" }
kv_namespaces = [ { binding = "<MY_NAMESPACE>", id = "<KV_ID>" }]
[env.staging]name = "my-worker-staging"route = { pattern = "staging.example.org/*", zone_name = "example.org" }
kv_namespaces = [ { binding = "<MY_NAMESPACE>", id = "<STAGING_KV_ID>" }]Worker の設定は、異なる 環境 を定義すると複雑になる可能性があり、各環境には独自の設定があります。 デフォルトの(トップレベルの)環境と、環境固有の設定を提供する名前付き環境があります。
これらは [env.name] キーの下に定義されており、例えば [env.staging] のように、wrangler コマンドで -e / --env フラグを使用してプレビューまたはデプロイできます。例えば npx wrangler deploy --env staging のように。
ほとんどのキーは継承可能であり、トップレベルの設定を環境で使用できます。バインディング、例えば vars や kv_namespaces は継承できず、明示的に定義する必要があります。
さらに、トップレベルにのみ現れるキーがいくつかあります。
トップレベルのキーは Worker 全体に適用され(したがってすべての環境に)、名前付き環境内で定義することはできません。
-
keep_varsboolean optional- デプロイ時にダッシュボードで設定された変数を Wrangler が保持するかどうか。 真実のソース を参照してください。
-
send_metricsboolean optional- Wrangler がこのプロジェクトの使用状況メトリクスを Cloudflare に送信するかどうか。
-
siteobject optional- 詳細については、下記の Workers Sites セクションを参照してください。このアプローチよりも Cloudflare Pages が推奨されます。
継承可能なキーはトップレベルで設定可能であり、環境固有の設定によって継承(または上書き)できます。
-
namestring required- Worker の名前。英数字(
a,b,cなど)とダッシュ(-)のみ使用可能。アンダースコア(_)は使用しないでください。
- Worker の名前。英数字(
-
mainstring required- 実行される Worker のエントリポイントへのパス。例えば:
./src/index.ts。
- 実行される Worker のエントリポイントへのパス。例えば:
-
compatibility_datestring requiredyyyy-mm-dd形式の日付で、使用される Workers ランタイムのバージョンを決定するために使用されます。互換性の日付を参照してください。
-
account_idstring optional- ゾーンに関連付けられたアカウントの ID です。複数のアカウントを持っている場合があるため、提供するゾーン/ルートに関連付けられたアカウントの ID を使用してください。また、
CLOUDFLARE_ACCOUNT_ID環境変数を通じて指定することもできます。
- ゾーンに関連付けられたアカウントの ID です。複数のアカウントを持っている場合があるため、提供するゾーン/ルートに関連付けられたアカウントの ID を使用してください。また、
-
compatibility_flagsstring[]optional- Workers ランタイムの今後の機能を有効にするフラグのリストで、通常は
compatibility_dateと一緒に使用されます。互換性の日付を参照してください。
- Workers ランタイムの今後の機能を有効にするフラグのリストで、通常は
-
workers_devboolean optional*.workers.devサブドメインを使用して Worker をテストおよびデプロイすることを有効にします。scheduledイベント専用の Worker がある場合は、これをfalseに設定できます。デフォルトはtrueです。
-
routeRoute optional- Worker をデプロイするルート。
routesまたはrouteのいずれか一方が必要です。ルートの種類を参照してください。
- Worker をデプロイするルート。
-
routesRoute[]optional- Worker をデプロイするルートの配列。
routesまたはrouteのいずれか一方が必要です。ルートの種類を参照してください。
- Worker をデプロイするルートの配列。
-
tsconfigstring optional- カスタム
tsconfigへのパス。
- カスタム
-
triggersobject optional- Worker の
scheduled関数をトリガーする Cron 定義。 トリガーを参照してください。
- Worker の
-
rulesRule optional- インポートするモジュールとそのインポートタイプを定義する順序付きリスト。
Text、Data、CompiledWasmモジュールを使用するためにルールを指定する必要があります。また、.jsファイルをCommonJSではなくESModuleとして扱う場合にもルールを指定する必要があります。
- インポートするモジュールとそのインポートタイプを定義する順序付きリスト。
-
buildBuild optional- Worker をビルドする際に Wrangler によって実行されるカスタムビルドステップを設定します。カスタムビルドを参照してください。
-
no_bundleboolean optional- 内部ビルドステップをスキップし、Worker スクリプトを直接デプロイします。依存関係のないプレーンな JavaScript Worker が必要です。
-
minifyboolean optional- アップロード前に Worker スクリプトを最小化します。
-
node_compatboolean optional- 非推奨 — 代わりに、
nodejs_compat_v2互換性フラグを有効にするを使用してください。これにより、組み込みの Node.js API が有効になり、必要に応じてポリフィルが追加されます。node_compat = trueを設定すると、Node.js の組み込みモジュールとグローバルのポリフィルが Worker のコードに追加されます。これは Wrangler とバンドルされます。 これは@esbuild-plugins/node-globals-polyfillによって提供され、さらに rollup-plugin-node-polyfills ↗ によって支えられています。
- 非推奨 — 代わりに、
-
preserve_file_namesboolean optional- Wrangler が Worker とバンドルされた追加モジュールのファイル名を保持するかどうかを決定します。
デフォルトは、ファイル名の前にコンテンツハッシュを追加することです。
例えば、
34de60b44167af5c5a709e62a4e20c4f18c9e3b6-favicon.icoのようになります。
- Wrangler が Worker とバンドルされた追加モジュールのファイル名を保持するかどうかを決定します。
デフォルトは、ファイル名の前にコンテンツハッシュを追加することです。
例えば、
-
logpushboolean optional- Worker のための Workers Trace Events Logpush を有効にします。このプロパティを持つスクリプトは、アカウントに設定された Workers Logpush ジョブによって自動的に取得されます。デフォルトは
falseです。
- Worker のための Workers Trace Events Logpush を有効にします。このプロパティを持つスクリプトは、アカウントに設定された Workers Logpush ジョブによって自動的に取得されます。デフォルトは
-
limitsLimits optional- 実行時に課せられる制限を設定します。制限を参照してください。
2024年3月1日以降、Worker の wrangler.toml に設定された 使用モデル は無視されます。スタンダード 使用モデルが適用されます。
一部の Workers Enterprise 顧客は、使用モデルを変更する能力を維持しています。使用モデルは、Cloudflare ダッシュボードで Workers & Pages > Worker を選択 > 設定 > 使用モデル に移動することで設定する必要があります。
非継承可能なキーはトップレベルで設定可能ですが、環境によって継承することはできず、各環境に対して指定する必要があります。
-
defineRecord<string, string>optional- Worker をデプロイする際に置き換える値のマップ。
-
varsobject optional- Worker をデプロイする際に設定する環境変数のマップ。環境変数を参照してください。
-
durable_objectsobject optional- Worker がバインドされる Durable Objects のリスト。Durable Objectsを参照してください。
-
kv_namespacesobject optional- Worker がバインドされる KV 名前空間のリスト。KV 名前空間を参照してください。
-
r2_bucketsobject optional- Worker がバインドされる R2 バケットのリスト。R2 バケットを参照してください。
-
vectorizeobject optional- Worker がバインドされる Vectorize インデックスのリスト。Vectorize インデックスを参照してください。
-
servicesobject optional- Worker がバインドされるサービスバインディングのリスト。サービスバインディングを参照してください。
-
tail_consumersobject optional- Worker がデータを送信する Tail Workers のリスト。Tail Workersを参照してください。
ルートには、カスタムドメイン、ルート、および workers.dev の3種類があります。
カスタムドメインを使用すると、DNS 設定を変更したり、証明書管理を行ったりすることなく、Worker をドメインまたはサブドメインに接続できます。
-
patternstring required- Worker が実行されるパターン。例えば、
"example.com"。
- Worker が実行されるパターン。例えば、
-
custom_domainboolean optional- Worker がルートではなくカスタムドメイン上で実行されるかどうか。デフォルトは
falseです。
- Worker がルートではなくカスタムドメイン上で実行されるかどうか。デフォルトは
例:
route = { pattern = "example.com", custom_domain = true }
# または
routes = [ { pattern = "shop.example.com", custom_domain = true }]ルートを使用すると、ユーザーは URL パターンを Worker にマッピングできます。ルートは、ゾーン ID ルート、ゾーン名ルート、または単純なルートとして構成できます。
-
patternstring required- Worker が実行されるパターン。例えば、
"example.com/*"。
- Worker が実行されるパターン。例えば、
-
zone_idstring requiredpatternに関連付けられたゾーンの ID。ゾーンおよびアカウント ID を見つけるを参照してください。
例:
routes = [ { pattern = "subdomain.example.com/*", zone_id = "<YOUR_ZONE_ID>" }]-
patternstring required- Worker が実行されるパターン。例えば、
"example.com/*"。
- Worker が実行されるパターン。例えば、
-
zone_namestring requiredpatternに関連付けられたゾーンの名前。API トークンを使用している場合、これにはAccountスコープが必要です。
例:
routes = [ { pattern = "subdomain.example.com/*", zone_name = "example.com" }]これは、パターンのみが必要な単純なルートです。
例:
route = "example.com/*"Cloudflare Workers アカウントには、Cloudflare ダッシュボードで設定可能な workers.dev サブドメインが付属しています。
-
workers_devboolean optional- Worker がカスタム
workers.devアカウントサブドメインで実行されるかどうか。デフォルトはtrueです。
- Worker がカスタム
workers_dev = falseトリガーを使用すると、Worker の scheduled 関数を呼び出すための cron 式を定義できます。サポートされている cron 式を参照してください。
-
cronsstring[]requiredcron式の配列。- Cron トリガーを無効にするには、
crons = []に設定します。cronsキーをコメントアウトしても Cron トリガーは無効になりません。
例:
[triggers]crons = ["* * * * *"]Worker がデプロイされる前に実行されるカスタムビルドステップを設定できます。カスタムビルドを参照してください。
-
commandstring optional- Worker をビルドするために使用されるコマンド。Linux および macOS では、コマンドは
shシェルで実行され、Windows ではcmdシェルで実行されます。&&および||シェル演算子を使用できます。
- Worker をビルドするために使用されるコマンド。Linux および macOS では、コマンドは
-
cwdstring optional- コマンドが実行されるディレクトリ。
-
watch_dirstring |string[]optionalwrangler devを使用している間に変更を監視するディレクトリ。デフォルトは現在の作業ディレクトリです。
例:
[build]command = "npm run build"cwd = "build_cwd"watch_dir = "build_watch_dir"Worker の動作に制限を課すことができます。制限は スタンダード使用モデル のみサポートされています。制限は Cloudflare のネットワークにデプロイされたときのみ適用され、ローカル開発では適用されません。CPU 制限は最大 30,000 ミリ秒(30 秒)に設定できます。
Each isolate has some built-in flexibility to allow for cases where your Worker infrequently runs over the configured limit. If your Worker starts hitting the limit consistently, its execution will be terminated according to the limit configured.
-
cpu_msnumber optional- 各呼び出しごとに許可される最大 CPU 時間(ミリ秒単位)。
例:
[limits]cpu_ms = 100Workers Browser Rendering API を使用すると、開発者はヘッドレスブラウザインスタンスをプログラムで制御し、アプリケーションや製品の自動化フローを作成できます。
ブラウザバインディングは、Worker に専用の Chromium ブラウザインスタンスと対話するための認証されたエンドポイントを提供します。
-
bindingstring required -
D1データベースを参照するために使用されるバインディング名。設定した値(文字列)は、Worker内でこのデータベースを参照するために使用されます。バインディングは、有効なJavaScript変数名 ↗でなければなりません。例えば、
binding = "MY_DB"やbinding = "productionDB"は、どちらもバインディングの有効な名前です。
例:
browser = { binding = "<BINDING_NAME>" }
# または
[browser]binding = "<BINDING_NAME>"D1はCloudflareのサーバーレスSQLデータベースです。Workerは、D1のクライアントAPIのために各データベースへのbindingを作成することで、D1データベース(またはデータベース)をクエリできます。
D1データベースをWorkerにバインドするには、以下のオブジェクトの配列を[[d1_databases]]キーに割り当てます。
-
bindingstring required- D1データベースを参照するために使用されるバインディング名。設定した値(文字列)は、Worker内でこのデータベースを参照するために使用されます。バインディングは、有効なJavaScript変数名 ↗でなければなりません。例えば、
binding = "MY_DB"やbinding = "productionDB"は、どちらもバインディングの有効な名前です。
- D1データベースを参照するために使用されるバインディング名。設定した値(文字列)は、Worker内でこのデータベースを参照するために使用されます。バインディングは、有効なJavaScript変数名 ↗でなければなりません。例えば、
-
database_namestring required- データベースの名前。これは異なるデータベースを区別するための人間が読みやすい名前で、データベースを最初に作成する際に設定されます。
-
database_idstring required- データベースのID。データベースIDは、最初に
wrangler d1 createを使用したときや、wrangler d1 listを呼び出したときに利用可能で、データベースを一意に識別します。
- データベースのID。データベースIDは、最初に
-
preview_database_idstring optional-
このD1データベースのプレビューID。提供された場合、
wrangler devはこのIDを使用します。そうでない場合は、database_idを使用します。このオプションは、wrangler dev --remoteを使用する際に必要です。 -
データベースのID。データベースIDは、最初に
wrangler d1 createを使用したときや、wrangler d1 listを呼び出したときに利用可能で、データベースを一意に識別します。
-
例:
d1_databases = [ { binding = "<BINDING_NAME>", database_name = "<DATABASE_NAME>", database_id = "<DATABASE_ID>" }]
# または
[[d1_databases]]binding = "<BINDING_NAME>"database_name = "<DATABASE_NAME>"database_id = "<DATABASE_ID>"ディスパッチネームスペースバインディングは、動的ディスパッチWorkerとディスパッチネームスペース間の通信を可能にします。ディスパッチネームスペースバインディングは、プラットフォーム用Workerで使用されます。プラットフォーム用Workerは、顧客の代わりにサーバーレス関数をプログラム的にデプロイするのに役立ちます。
-
bindingstring required- バインディング名。設定した値(文字列)は、Worker内でこのデータベースを参照するために使用されます。バインディングは、有効なJavaScript変数名 ↗でなければなりません。例えば、
binding = "MY_NAMESPACE"やbinding = "productionNamespace"は、どちらもバインディングの有効な名前です。
- バインディング名。設定した値(文字列)は、Worker内でこのデータベースを参照するために使用されます。バインディングは、有効なJavaScript変数名 ↗でなければなりません。例えば、
-
namespacestring required- ディスパッチネームスペースの名前。
-
outboundobject optionalservicestring required バインドするアウトバウンドWorkerの名前。parametersarray optional データを動的ディスパッチWorkerからアウトバウンドWorkerに渡すためのパラメータのリスト。
[[dispatch_namespaces]]binding = "<BINDING_NAME>"namespace = "<NAMESPACE_NAME>"outbound = {service = "<WORKER_NAME>", parameters = ["params_object"]}デュラブルオブジェクトは、Workersプラットフォームのための低遅延の調整と一貫したストレージを提供します。
デュラブルオブジェクトをWorkerにバインドするには、以下のオブジェクトの配列をdurable_objects.bindingsキーに割り当てます。
-
namestring required- デュラブルオブジェクトを参照するために使用されるバインディングの名前。
-
class_namestring required- デュラブルオブジェクトのエクスポートされたクラス名。
-
script_namestring optional- デュラブルオブジェクトがこのWorkerの外部に定義されている場合、そのWorkerの名前。このオプションは、ローカルおよびリモート開発の両方で使用できます。ローカル開発では、外部Workerを別のプロセスで実行する必要があります(
wrangler devを介して)。リモート開発では、適切なリモートバインディングを使用する必要があります。
- デュラブルオブジェクトがこのWorkerの外部に定義されている場合、そのWorkerの名前。このオプションは、ローカルおよびリモート開発の両方で使用できます。ローカル開発では、外部Workerを別のプロセスで実行する必要があります(
-
environmentstring optional- バインドする
script_nameの環境。
- バインドする
例:
durable_objects.bindings = [ { name = "<BINDING_NAME>", class_name = "<CLASS_NAME>" }]
# または
[[durable_objects.bindings]]name = "<BINDING_NAME>"class_name = "<CLASS_NAME>"デュラブルオブジェクトクラスに変更を加える際は、マイグレーションを実行する必要があります。デュラブルオブジェクトのマイグレーションを参照してください。
-
tagstring required- このマイグレーションの一意の識別子。
-
new_classesstring[]optional- 定義されている新しいデュラブルオブジェクト。
-
renamed_classes{from: string, to: string}[]optional- 名前が変更されたデュラブルオブジェクト。
-
deleted_classesstring[]optional- 削除されるデュラブルオブジェクト。
例:
[[migrations]]tag = "v1" # 各エントリに対して一意である必要がありますnew_classes = ["DurableObjectExample"] # 新しいクラスの配列
[[migrations]]tag = "v2"renamed_classes = [{from = "DurableObjectExample", to = "UpdatedName" }] # 名前変更指示の配列deleted_classes = ["DeprecatedClass"] # 削除されたクラス名の配列You can send an email about your Worker’s activity from your Worker to an email address verified on Email Routing. This is useful for when you want to know about certain types of events being triggered, for example.
Before you can bind an email address to your Worker, you need to enable Email Routing and have at least one verified email address. 次に、必要なメールバインディングのタイプでオブジェクト(send_email)に配列を割り当てます。
-
namestring required- バインディング名。
-
destination_addressstring optional- メールを送信する選択したメールアドレス。
-
allowed_destination_addressesstring[]optional- メールを送信する許可リストのメールアドレス。
You can add one or more types of bindings to your wrangler.toml file. However, each attribute must be on its own line:
send_email = [ {name = "<NAME_FOR_BINDING1>"}, {name = "<NAME_FOR_BINDING2>", destination_address = "<YOUR_EMAIL>@example.com"}, {name = "<NAME_FOR_BINDING3>", allowed_destination_addresses = ["<YOUR_EMAIL>@example.com", "<YOUR_EMAIL2>@example.com"]},]環境変数は、テキスト文字列やJSON値をWorkerに添付するためのバインディングの一種です。
例:
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 }ハイパードライブバインディングを使用すると、Worker内から任意のPostgresデータベースと対話し、クエリを実行できます。
-
bindingstring required- バインディング名。
-
idstring required- ハイパードライブ構成のID。
例:
# データベースドライバが機能するために必要compatibility_flags = ["nodejs_compat_v2"]
[[hyperdrive]]binding = "<BINDING_NAME>"id = "<ID>"Workers KVは、グローバルで低遅延のキー・バリューデータストアです。データは少数の集中データセンターに保存され、その後、アクセス後にCloudflareのデータセンターにキャッシュされます。
KVネームスペースをWorkerにバインドするには、以下のオブジェクトの配列をkv_namespacesキーに割り当てます。
-
bindingstring required- KVネームスペースを参照するために使用されるバインディング名。
-
idstring required- KVネームスペースのID。
-
preview_idstring optional- このKVネームスペースのプレビューID。このオプションは、リモートリソースに対して開発するために
wrangler dev --remoteを使用する際に必要です。ローカルで開発する場合(--remoteなし)、これはオプションのフィールドです。wrangler devはこのIDをKVネームスペースに使用します。そうでない場合、wrangler devはidを使用します。
- このKVネームスペースのプレビューID。このオプションは、リモートリソースに対して開発するために
例:
kv_namespaces = [ { binding = "<BINDING_NAME1>", id = "<NAMESPACE_ID1>" }, { binding = "<BINDING_NAME2>", id = "<NAMESPACE_ID2>" }]
# または
[[kv_namespaces]]binding = "<BINDING_NAME1>"id = "<NAMESPACE_ID1>"
[[kv_namespaces]]binding = "<BINDING_NAME2>"id = "<NAMESPACE_ID2>"キューはCloudflareのグローバルメッセージキューサービスで、配信保証とメッセージバッチ処理を提供します。Workerを使用してキューと対話するには、メッセージをキューに送信するプロデューサーWorkerと、キューからメッセージのバッチを引き出すコンシューマーWorkerが必要です。単一のWorkerは、複数のキューに対して生産および消費を行うことができます。
プロデューサーWorkerにキューをバインドするには、以下のオブジェクトの配列を[[queues.producers]]キーに割り当てます。
-
queuestring required- Cloudflareダッシュボードで使用されるキューの名前。
-
bindingstring required- Worker内でキューを参照するために使用されるバインディング名。バインディングは、有効なJavaScript変数名 ↗でなければなりません。例えば、
binding = "MY_QUEUE"やbinding = "productionQueue"は、どちらもバインディングの有効な名前です。
- Worker内でキューを参照するために使用されるバインディング名。バインディングは、有効なJavaScript変数名 ↗でなければなりません。例えば、
-
delivery_delaynumber optional- デフォルトでキューに送信されるメッセージを遅延させる秒数。この値は、メッセージまたはバッチごとにオーバーライドできます。
例:
[[queues.producers]] binding = "<BINDING_NAME>" queue = "<QUEUE_NAME>" delivery_delay = 60 # メッセージを消費者に配信する前に60秒遅延させるコンシューマーWorkerにキューをバインドするには、以下のオブジェクトの配列を[[queues.consumers]]キーに割り当てます。
-
queuestring required- Cloudflareダッシュボードで使用されるキューの名前。
-
max_batch_sizenumber optional- 各バッチで許可される最大メッセージ数。
-
max_batch_timeoutnumber optional- バッチが消費者Workerに送信される前に、メッセージがバッチを満たすのを待つ最大秒数。
-
max_retriesnumber optional- メッセージが失敗した場合、または
retryAll()が呼び出された場合の最大再試行回数。
- メッセージが失敗した場合、または
-
dead_letter_queuestring optional- メッセージが少なくとも
max_retries回処理に失敗した場合に送信される別のキューの名前。 dead_letter_queueが定義されていない場合、繰り返し処理に失敗したメッセージは破棄されます。- 指定された名前のキューが存在しない場合、自動的に作成されます。
- メッセージが少なくとも
-
max_concurrencynumber optional- 一度に実行される最大同時コンシューマー数。この値を設定しないと、呼び出しの数は現在サポートされている最大数にスケールします。
- メッセージが再試行されるときのコンシューマーの自動スケーリングに関する詳細は、コンシューマーの同時実行性を参照してください。
-
retry_delaynumber optional- 再試行されたメッセージを遅延させる秒数。この値は、メッセージまたはバッチごとにオーバーライドできます。
例:
[[queues.consumers]] queue = "my-queue" max_batch_size = 10 max_batch_timeout = 30 max_retries = 10 dead_letter_queue = "my-queue-dlq" max_concurrency = 5 retry_delay = 120 # 再試行されたメッセージを2分遅延させてから再配信を試みるCloudflare R2 Storageは、開発者が通常のクラウドストレージサービスに関連する高額な出口帯域幅料金なしで、大量の非構造化データを保存できるようにします。
R2バケットをWorkerにバインドするには、以下のオブジェクトの配列をr2_bucketsキーに割り当てます。
-
bindingstring required- R2バケットを参照するために使用されるバインディング名。
-
bucket_namestring required- このR2バケットの名前。
-
jurisdictionstring optional- このR2バケットが存在する管轄区域。管轄区域が指定されている場合は、管轄区域の制限を参照してください。
-
preview_bucket_namestring optional- このR2バケットのプレビューネーム。提供された場合、
wrangler devはこの名前をR2バケットに使用します。そうでない場合、bucket_nameを使用します。このオプションは、wrangler dev --remoteを使用する際に必要です。
- このR2バケットのプレビューネーム。提供された場合、
例:
r2_buckets = [ { binding = "<BINDING_NAME1>", bucket_name = "<BUCKET_NAME1>"}, { binding = "<BINDING_NAME2>", bucket_name = "<BUCKET_NAME2>"}]
# または
[[r2_buckets]]binding = "<BINDING_NAME1>"bucket_name = "<BUCKET_NAME1>"
[[r2_buckets]]binding = "<BINDING_NAME2>"bucket_name = "<BUCKET_NAME2>"ベクトル化インデックスを使用すると、セマンティック検索、分類、その他のベクトル検索ユースケースのためにベクトル埋め込みを挿入およびクエリできます。
ベクトル化インデックスをWorkerにバインドするには、以下のオブジェクトの配列をvectorizeキーに割り当てます。
-
binding文字列 必須- Workerコードからバインドされたインデックスを参照するために使用されるバインディング名。
-
index_name文字列 必須- バインドするインデックスの名前。
例:
vectorize = [ { binding = "<BINDING_NAME>", index_name = "<INDEX_NAME>"}]
# または
[[vectorize]]binding = "<BINDING_NAME>"index_name = "<INDEX_NAME>"サービスバインディングを使用すると、HTTPリクエストを別のWorkerに送信できますが、そのリクエストはインターネットを経由しません。リクエストはすぐに下流のWorkerを呼び出し、サードパーティサービスへのリクエストと比較してレイテンシを減少させます。サービスバインディングについてを参照してください。
他のWorkerを自分のWorkerにバインドするには、以下のオブジェクトの配列をservicesキーに割り当てます。
-
binding文字列 必須- バインドされたWorkerを参照するために使用されるバインディング名。
-
service文字列 必須- Workerの名前。
-
entrypoint文字列 任意- バインドするエントリポイントの名前。エントリポイントを指定しない場合、Workerのデフォルトエクスポートが使用されます。
例:
services = [ { binding = "<BINDING_NAME>", service = "<WORKER_NAME>", entrypoint = "<ENTRYPOINT_NAME>" }]
# または
[[services]]binding = "<BINDING_NAME>"service = "<WORKER_NAME>"entrypoint = "<ENTRYPOINT_NAME>"Workers Analytics Engineは、Workersからの分析、可観測性、およびデータロギングを提供します。データポイントをWorkerバインディングに書き込み、SQL APIを使用してデータをクエリします。
アナリティクスエンジンデータセットをWorkerにバインドするには、以下のオブジェクトの配列をanalytics_engine_datasetsキーに割り当てます。
-
binding文字列 必須- データセットを参照するために使用されるバインディング名。
-
dataset文字列 任意- 書き込むデータセット名。指定しない場合、バインディングと同じ名前がデフォルトになります。
例:
analytics_engine_datasets = [{ binding = "<BINDING_NAME>", dataset = "<DATASET_NAME>" }]
# または
[[analytics_engine_datasets]]binding = "<BINDING_NAME>"dataset = "<DATASET_NAME>"クライアント認証を必要とするオリジンと通信するために、WorkerはサブリクエストでmTLSの証明書を提示できます。Wranglerは、これらの証明書をアップロードおよび管理するためのmtls-certificate コマンドを提供します。
WorkerのmTLS証明書へのバインディングを作成するには、以下の形のオブジェクトの配列をmtls_certificatesキーに割り当てます。
-
binding文字列 必須- 証明書を参照するために使用されるバインディング名。
-
certificate_id文字列 必須- 証明書のID。Wranglerはこれを
mtls-certificate uploadおよびmtls-certificate listコマンドを介して表示します。
- 証明書のID。Wranglerはこれを
mTLS証明書バインディングを含むwrangler.toml構成の例:
mtls_certificates = [ { binding = "<BINDING_NAME1>", certificate_id = "<CERTIFICATE_ID1>" }, { binding = "<BINDING_NAME2>", certificate_id = "<CERTIFICATE_ID2>" }]
# または
[[mtls_certificates]]binding = "<BINDING_NAME1>"certificate_id = "<CERTIFICATE_ID1>"
[[mtls_certificates]]binding = "<BINDING_NAME2>"certificate_id = "<CERTIFICATE_ID2>"mTLS証明書バインディングは、実行時にfetchメソッドを介してセキュアなオリジンと通信するために使用できます。
Workers AIを使用すると、Cloudflareネットワーク上で自分のコードから機械学習モデルを実行できます。これには、Workers、Pages、またはREST APIを介しての実行が含まれます。
他のバインディングとは異なり、このバインディングはWorkerプロジェクトごとに1つのAIバインディングに制限されています。
-
binding文字列 必須- バインディング名。
例:
ai = { binding = "<AI>" }
# または
[ai]binding = "AI" # Workerコード内の`env.AI`で利用可能rulesキーを使用して、Workerにアセットをバンドルできます。これにより、Workerが呼び出されたときにこれらのアセットをインポートできるようになります。rulesキーは以下のオブジェクトの配列になります。
-
type文字列 必須- アセットのタイプ。
ESModule、CommonJS、CompiledWasm、TextまたはDataのいずれかでなければなりません。
- アセットのタイプ。
-
globsstring[]必須- グロブルールの配列(例:
["**/*.md"])。グロブ ↗を参照してください。
- グロブルールの配列(例:
-
fallthroughブール値 任意- ルールに
trueが設定されている場合、同じTypeの複数のルールを持つことができます。
- ルールに
例:
rules = [ { type = "Text", globs = ["**/*.md"], fallthrough = true }]Worker内でこれらのアセットをインポートして参照することができます。次のようにします:
import markdown from './example.md'
export default { async fetch() { return new Response(markdown) }}ローカルプロトコルやポートなど、ローカル開発のさまざまな側面を構成できます。
-
ip文字列 任意- ローカル開発サーバーがリッスンするIPアドレス。デフォルトは
localhostです。
- ローカル開発サーバーがリッスンするIPアドレス。デフォルトは
-
port数値 任意- ローカル開発サーバーがリッスンするポート。デフォルトは
8787です。
- ローカル開発サーバーがリッスンするポート。デフォルトは
-
local_protocol文字列 任意- ローカル開発サーバーがリクエストをリッスンするプロトコル。デフォルトは
httpです。
- ローカル開発サーバーがリクエストをリッスンするプロトコル。デフォルトは
-
upstream_protocol文字列 任意- ローカル開発サーバーがリクエストを転送するプロトコル。デフォルトは
httpsです。
- ローカル開発サーバーがリクエストを転送するプロトコル。デフォルトは
-
host文字列 任意- リクエストを転送するホスト。Workerの最初の
routeのホストがデフォルトです。
- リクエストを転送するホスト。Workerの最初の
例:
[dev]ip = "192.168.1.1"port = 8080local_protocol = "http"シークレットは、Workerに暗号化されたテキスト値を添付できるバインディングの一種です。
When developing your Worker or Pages Function, create a .dev.vars file in the root of your project to define secrets that will be used when running wrangler dev or wrangler pages dev, as opposed to using environment variables in wrangler.toml. This works both in local and remote development modes.
The .dev.vars file should be formatted like a dotenv file, such as KEY="VALUE":
SECRET_KEY="value"API_TOKEN="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"特定のパッケージのインポート呼び出しを、選択したモジュールに置き換えるようにWranglerを構成できます。aliasフィールドを設定します:
[alias]"foo" = "./replacement-module-filepath"export const bar = "baz";上記の構成により、fooモジュールのインポートまたはrequire()の呼び出しは、置き換えモジュールを指すようにエイリアスされます:
import { bar } from "foo";
console.log(bar); // "baz"を返しますモジュールエイリアスを使用して、Workersで動作しないNPMパッケージの実装を提供できます。これは、依存関係の依存関係としてNPMパッケージに間接的に依存している場合でも適用されます。
たとえば、一部のNPMパッケージはnode-fetch ↗に依存しています。このパッケージは、Node.jsに組み込まれる前にfetch() APIのポリフィルを提供しました。
Workersではnode-fetchは必要ありません。なぜなら、fetch() APIはWorkersランタイムによって提供されるからです。また、node-fetchは、http/httpsモジュールの現在サポートされていないNode.js APIに依存しているため、Workersでは動作しません。
すべてのnode-fetchのインポートを、Workersランタイムに組み込まれたfetch() APIに直接指すようにエイリアスできます:
[alias]"node-fetch" = "./fetch-nolyfill"export default fetch;モジュールエイリアスを使用して、Workersランタイムでまだ利用できないNode.js APIの独自のポリフィル実装を提供できます。
たとえば、依存しているNPMパッケージがfs.readFile ↗を呼び出すとします。次のように、fsモジュールをエイリアスできます:
[alias]"fs" = "./fs-polyfill"export function readFile() { // ...}多くの場合、これにより依存関係を機能させるために必要なAPIを提供できます。Cloudflare WorkersのNode.js APIサポートについては、Cloudflare Workers Node.js APIドキュメントページを参照してください。
ソースマップは、コンパイルおよびミニファイされたコードを元のコードに戻します。ソースマップは、JavaScriptランタイムから返されるスタックトレースと組み合わされて、スタックトレースを表示します。
-
upload_source_mapsブール値upload_source_mapsがtrueに設定されている場合、Wranglerはwrangler deployまたはwrangler versions deployを実行するときにソースマップファイルを自動的に生成してアップロードします。
例:
upload_source_maps = trueWorkers Sitesを使用すると、静的ウェブサイトや、VueやReactなどのフレームワークを使用した動的ウェブサイトをWorkers上でホストできます。
-
bucket文字列 必須- 静的アセットを含むディレクトリ。
wrangler.tomlファイルに対して相対的なパスでなければなりません。
- 静的アセットを含むディレクトリ。
-
includestring[]任意- バケットの場所からファイルまたはディレクトリ名に一致する
.gitignoreスタイルのパターンの排他的リスト。一致した項目のみがアップロードされます。
- バケットの場所からファイルまたはディレクトリ名に一致する
-
excludestring[]任意- アップロードから除外すべきバケット内のファイルまたはディレクトリに一致する
.gitignoreスタイルのパターンのリスト。
- アップロードから除外すべきバケット内のファイルまたはディレクトリに一致する
例:
[site]bucket = "./public"include = ["upload_dir"]exclude = ["ignore_dir"]企業ネットワークには、プロキシが存在することが多く、これが接続の問題を引き起こすことがあります。Wranglerを適切なプロキシの詳細で構成するには、以下の環境変数を使用します:
https_proxyHTTPS_PROXYhttp_proxyHTTP_PROXY
macOSでこれを構成するには、Wranglerコマンドの前にHTTP_PROXY=http://<YOUR_PROXY_HOST>:<YOUR_PROXY_PORT>を追加します。
例:
$ HTTP_PROXY=http://localhost:8080 wrangler devITチームがコンピュータのプロキシ設定を構成している場合、Wranglerが外部リクエストを行う際に、このリストの最初の非空の環境変数が使用されることに注意してください。
たとえば、https_proxyとhttp_proxyの両方が設定されている場合、Wranglerは外部リクエストに対してhttps_proxyのみを使用します。
wrangler.tomlファイルをWorker構成の真実の源として扱うことをお勧めします。Wranglerを使用している場合、Cloudflareダッシュボードを介してWorkerに変更を加えることは避けてください。
CloudflareダッシュボードからWorkerに変更を加える必要がある場合、ダッシュボードはwrangler.tomlファイルにコピーするためのTOMLスニペットを生成します。これにより、wrangler.tomlファイルが常に最新の状態に保たれます。
Cloudflareダッシュボードで環境変数を変更すると、次回デプロイ時にWranglerがそれらを上書きします。この動作を無効にしたい場合は、wrangler.tomlにkeep_vars = trueを追加します。
ダッシュボードでルートを変更すると、Wranglerは次回のデプロイ時にwrangler.tomlに設定されたルートで上書きします。Cloudflareダッシュボードのみでルートを管理するには、wrangler.tomlファイルからすべてのrouteおよびroutesキーを削除します。その後、wrangler.tomlファイルにworkers_dev = falseを追加します。詳細については、非推奨事項を参照してください。
Wranglerは、wrangler secret delete <key>を実行しない限り、シークレット(暗号化された環境変数)を削除しません。