为 AWS Lambda@Edge 选择边缘位置

Selecting edge location for AWS Lambda@Edge

我在 AWS S3 中有数据想要使用 AWS Lambda 函数进行处理。但是,这些数据不能出境。这不是 AWS S3 的问题,因为我可以选择我所在国家/地区的区域。是否可以 select 我想 运行 使用 Lambda@Edge 的 lambda 函数的特定边缘位置?

不,遗憾的是无法从 Lambda@Edge 服务中过滤掉边缘位置。

如您所知,它的本质是在构成 CloudFront 的 150 多个边缘位置中的任何一个中执行的计算资源的全球分布。因此它必然会跨越您所在的国家/地区。

但是,您可以通过将地理定位代码写入您的 Lambda 来实现数据位置合规性,因此如果从不合规的位置(即您所在国家/地区以外)调用它,它只会忽略该请求并且不会从 S3 中提取数据。

出于合规原因,这会产生 Lambda 过滤自身的效果。

在任何情况下,大多数边缘请求都可能来自您所在的国家/地区。但这种逻辑会阻止机器人程序或其他随机调用导致数据从您所需的 S3 区域传输出去。

既然你提到了 Lambda@Edge,我假设你是 运行 Cloudfront。

在 Cloudfront 中,您可以启用地理分布限制。由于 Cloudfront 不在您所在国家/地区之外提供数据,因此 Lambda@Edge 将不会在您所在国家/地区之外处理数据。

Cloudfront Geo Restrictions Document