Cloudfront 限制到特定区域

Cloudfront limit to specific region

我有一个应用程序只能在印度使用。我正在使用 Cloudfront 分发来提供资产。我已经实施了版本控制策略来更改为构建而更改的资产的名称。

考虑到所有这些,我只需要使 index.html 无效,它负责使用版本化的其他资产。

我正在使用云端失效来使 index.html 失效。我观察到使这个单个文件无效总是需要 2 分钟以上的时间。我理解它是因为它使 42 个边缘位置的文件无效。我不需要将文件放置在 42 边缘位置并使其失效。如果有任何配置将文件仅保留在印度的边缘位置,我想失效会更快。

是否有类似的配置来限制在特定边缘位置复制文件。

Amazon CloudFront 使用拉取模型,因此只有在从缓存位置请求文件后,才会将文件缓存在某些位置。

例如:

  • Internet 上的用户从您的 CloudFront 分配请求文件(例如 dxxx.cloudfront.net/index.html
  • 用户被定向到最近的边缘位置(例如金奈)
  • 如果缓存不包含文件的副本,则 CloudFront 会从源(例如 Amazon S3、Amazon EC2 服务器或其他地方)获取文件
  • 如果缓存确实包含文件的副本,但已过期,CloudFront 将查询来源以确定自上次检索以来文件是否已被修改。如果已被修改,则获取更新的文件。
  • 然后文件返回给用户。

无法指示 CloudFront 仅将文件存储在单个边缘位置。最接近的功能是使用 价格 Class.

来自Amazon CloudFront pricing

  • 价格Class100:美国、欧洲
  • 价格Class200:美国、欧洲、香港、菲律宾、韩国、新加坡、台湾、日本、印度
  • 价格Class全部:美国、欧洲、香港、菲律宾、韩国、新加坡、台湾、日本、印度、南美、澳大利亚

这些价格 类 可用于限制 Amazon CloudFront 提供内容的位置,以降低成本(例如,南美和澳大利亚的每 GB 数据传输成本最高)。

但是,它们不能用于指示 CloudFront 仅将内容存储在一个位置,也不能用于加速失效过程。

您可以根据请求 header 缓存内容,并进行更精细的控制,即基于 geo-location。 Amazon CloudFront 添加了额外的地理定位 headers 以实现更精细的地理定位。以前,您可以将 Amazon CloudFront 配置为在 CloudFront 发送到您的来源的请求 header 中提供查看者的国家/地区代码。新的 header 可让您更精细地控制缓存行为以及您对查看者的国家/地区名称、地区、城市、邮政编码、纬度和经度的来源访问,所有这些都基于查看者的 IP 地址。

这是 link 对此的描述 - https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-cloudfront-headers.html#cloudfront-headers-viewer-location

您可以使用这些额外的地理位置 header 以及现有受支持的 CloudFront header 来个性化您提供给观众的内容。