デフォルトでは、Workers と Pages Functions は、リクエストを受け取った場所に最も近いデータセンターで呼び出されます。Pages Function でバックエンドロジックを実行している場合は、エンドユーザーではなくバックエンドインフラに近い場所でその Pages Function を実行した方がパフォーマンスが良くなることがあります。Smart Placement(ベータ)は、レイテンシを最小化し、アプリケーションを高速化する最適な場所にワークロードを自動配置します。
Smart Placement は Pages Functions とミドルウェアに適用されます。通常、アセットは常にグローバルに、ユーザーに最も近い場所から配信されます。
Pages の Smart Placement には、現時点でいくつかの注意点があります。アセットは常にユーザーに最も近い場所から配信される想定ですが、この動作には 2 つの例外があります。
-
Smart Placement が有効なときにすべてのリクエストでミドルウェア(
functions/_middleware.js)を使う場合、すべてのアセットがバックエンドインフラに最も近い場所から配信されます。その結果、想定外にレイテンシが増えることがあります。 -
env.ASSETS.fetch↗ を使う場合、Pages Function からASSETSfetcher 経由で配信されるアセットは、Function と同じ場所から配信されます。これはバックエンドインフラに最も近い場所であり、ユーザーに最も近い場所ではないことがあります。
Smart Placement はすべてのプランで利用できます。
ダッシュボードから Smart Placement を有効にするには、次の手順を実行します。
-
Cloudflare ダッシュボードで Workers & Pages ページを開きます。
Workers & Pages を開く ↗ -
Pages プロジェクトを選びます。
-
Settings > Runtime を選びます。
-
Placement で Smart を選びます。
-
Pages Functions に初期トラフィック(おおよそ 20〜30 リクエスト)を送ります。トラフィックを送ったあと、Smart Placement が有効になるまで数分かかります。
-
Functions Metrics で、Pages Function の リクエスト所要時間メトリクス を確認します。
Smart Placement はベータです。Smart Placement についての意見や体験を共有するには、Cloudflare Developer Discord ↗ に参加してください。