查找最接近的 AWS 区域
为什么?
使用 lambda@ execution 您的代码运行在任何可用数据中 其它服务.
例如,如果我使用Dynamodb全球表 和我的数据存在于
eu-west-1, (中文(简体) ), us-east-2 财务报告和审定财务报表 ap-southeast-1, 当我的 lambda @ edge 函数时
使用 process.env.AWS_REGION,该值为
这个环境变量可能是任何可用的AWS区域,也许
eu-central-1。 。 。 .
这意味着文档客户端将无法从中获取数据
试图从Dynamodb公司 eu-central-1 因为它还没有
推广到该区域.
而不是硬编码 或选择我所在的三个区域之一
使用这个软件包 我就能确定哪个区域
包含我的数据最接近 process.env.AWS_REGION (或至少拥有
最低潜伏度).
安装
npm install @benswinburne/closest-aws-region
进口/要求
常见JS :
var closestAWSRegion = require('@benswinburne/closest-aws-region')
ES模块:
import closestAWSRegion from '@benswinburne/closest-aws-region'
快速启动
// AWS_REGION = eu-central-1
const region = findClosestAWSRegion(process.env.AWS_REGION, {
filters: ['eu-west-1', 'us-east-1', 'ap-southeast-1'],
}); // eu-west-1
API 密码
closestAWSRegion(to, [options])
查找最接近于 to。 。 。 .
注:如果 options.filters 没有设定,最接近的区域将永远是 to。 。 。 .
选项
default
在找不到区域时选择的默认区域 。 这个
默认为 us-east-1 如果没有设置.
filters
指定区域以限制搜索.
// AWS_REGION = eu-central-1
const region = findClosestAWSRegion(process.env.AWS_REGION, {
filters: ['eu-west-1', 'us-east-1']
}); // eu-west-1
excludeTo (默认为虚假)
例如,如果您正在寻找最接近于eu-west-1的区域,则无
应用的过滤器显然为eu-west-1,是块状区域。 通过排除 to, (中文(简体) ),
返回值将是最接近于eu-west-1,而不是eu-west-1的区域.
data
此选项允许覆盖静态数据源 。 格式必须 跟着云平.co使用的结构.
注意: 不建议使用 lambda@ dedge 的远程数据源 因为找到最接近的区域而节省下来的时间在 绕行到外部来源
// AWS_REGION = eu-central-1
const response = await fetch('https://api.cloudping.co/averages');
const data = await response.json();
const region = findClosestAWSRegion(process.env.AWS_REGION, {
data: data
});