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的官网进行查询
当然你也可以手动建立一个规则表 让边缘函数在首选区域不可用的时候 按照你定义的规则表进行路由
其实完全不设置区域也行 他会自动选择最优区域的