https://vercel.com/docs/concepts/functions/edge-functions

Edge Functions 的一个优点是它们可以在地理位置靠近您的访问者的数据中心中执行,从而减少网络请求时间。然而,如果函数依赖于远离您的访问者的数据源,则此优点会被减弱

例如,想象一位在中国的访客调用一个依赖于位于美国的数据库的函数。

该函数将在中国的边缘网络上的机器上调用,但最终响应需要从中国->美国->中国进行往返,使得对访客的整体响应时间变慢

为确保 Edge Function 的有效路由,可以指定函数应在哪个区域执行

在区域性故障期间,会自动切换到其他区域以保持正常运行时间

这意味着边缘函数将在下一个最近的区域中执行。这适用于全局和区域指定的边缘函数

设置 Edge Function的区域:

可以通过从文件中导出一个 config 对象来指定函数的区域

config 对象添加一个 regions 键,将首选地区的 ID 分配为字符串

这是一个 Edge API 路由的示例,其区域设置为 'iad1' ,即 Vercel 的区域位于美国华盛顿特区附近

export const config = {
  runtime: 'edge', // this is a pre-requisite
  regions: ['iad1'], // only execute this function on iad1
};
 
export default (req: Request) => {
  return new Response(`Hello, from ${req.url} I'm now an Edge Function!`);
};

Vercel Edge Function支持的区域:

https://vercel.com/docs/concepts/edge-network/regions

REGION CODE

REGION NAME

REFERENCE LOCATION 参考位置

arn1

eu-north-1

Stockholm, Sweden

bom1

ap-south-1

Mumbai, India

bru1

eu-central-1

Brussels, Belgium

cdg1

eu-west-3

Paris, France

cle1

us-east-2

Cleveland, USA

cpt1

af-south-1

Cape Town, South Africa 南非开普敦

dub1

eu-west-1

Dublin, Ireland

fra1

eu-central-1

Frankfurt, Germany 德国法兰克福

gru1

sa-east-1

São Paulo, Brazil 巴西圣保罗

hkg1

ap-east-1

Hong Kong

hnd1

ap-northeast-1

Tokyo, Japan

iad1

us-east-1

Washington, D.C., USA 华盛顿特区,美国

icn1

ap-northeast-2

Seoul, South Korea 韩国首尔

kix1

ap-northeast-3

Osaka, Japan

lhr1

eu-west-2

London, United Kingdom 伦敦,英国。

pdx1

us-west-2

Portland, USA

sfo1

us-west-1

San Francisco, USA 美国旧金山

sin1

ap-southeast-1

Singapore

syd1

ap-southeast-2

Sydney, Australia

如果首选 区域不可用, 边缘函数哦会自动按照规则表路由到一个新的区域执行

这个规则表 可以在 Vercel的官网进行查询

当然你也可以手动建立一个规则表 让边缘函数在首选区域不可用的时候 按照你定义的规则表进行路由

其实完全不设置区域也行 他会自动选择最优区域的