默认情况下,Workers 和 Pages Functions 在离请求接收位置最近的数据中心调用。如果你在 Pages Function 中运行后端逻辑,将 Pages Function 运行在更靠近后端基础设施的位置可能比靠近最终用户更性能更优。Smart Placement(Beta)会自动将工作负载放置在最小化延迟并加速应用的最佳位置。
Smart Placement 适用于 Pages Functions 和中间件。通常,资源始终在全球范围内部署,并尽可能靠近用户。
Pages 上的 Smart Placement 目前有一些注意事项。虽然资源始终应尽可能靠近用户提供服务,但有两种例外情况:
-
如果为每个请求使用中间件(
functions/_middleware.js)且启用了 Smart Placement,所有资源将从最靠近后端基础设施的位置提供。这可能导致延迟意外增加。 -
使用
env.ASSETS.fetch时,通过 Pages Function 的ASSETSfetcher 提供的资源与 Function 位于同一位置。这可能是最靠近后端基础设施而非用户的位置。
Smart Placement 在所有计划上可用。
要通过仪表板启用 Smart Placement:
-
在 Cloudflare 仪表板中,前往 Workers & Pages 页面。
Go to Workers & Pages ↗ -
选择你的 Pages 项目。
-
选择 Settings(设置) > Runtime(运行时)。
-
在 Placement(放置) 下,选择 Smart(智能)。
-
向 Pages Functions 发送一些初始流量(约 20-30 个请求)。向 Pages Function 发送流量后,Smart Placement 需要几分钟才能生效。
-
在 Functions Metrics 下查看 Pages Function 的请求持续时间指标。
Smart Placement 处于 Beta 阶段。要分享你对 Smart Placement 的想法和体验,请加入 Cloudflare Developer Discord ↗。