如何检查 CloudFront 是否正在故障转移到另一个活动分配?

How to check if CloudFront is failing over to another active distribution?

我有一个网站 s3post.cf that gets a .json.gz from an AWS CloudFront distribution that has an S3 bucket 作为来源。

我已经使用 another bucket and set up a second CloudFront distribution.

为该存储桶启用了跨区域复制

在 Route 53 上,我创建了与第一个存储桶中的文件关联的运行状况检查 cloudfront.s3post.cf 并设置了 CloudFront 故障转移 -

为了测试此设置,我从运行状况检查文件中删除了 public 权限。健康检查失败,我的网站仍然存在。但是,两个存储桶中的.json.gz文件都是public,所以我不确定故障转移是否成功。

如何测试 post.s3post.cf 是否真的故障转移到 backup.s3post.cf?由于跨区域复制,我不能只删除 .json.gz 文件,因为它在第二个存储桶中也被删除了。

检查您的 CloudFront 访问日志将显示请求仍在从主要分配中得到处理。您尝试的操作没有考虑到 CloudFront 如何决定哪个分配处理给定请求——它不是通过 DNS。

CloudFront 使用 浏览器发送的 Host: header 来决定每个传入请求的分发服务。

只要 DNS CNAME 解析为 any CloudFront 分发,请求仍会到达 CloudFront——但 CloudFront 就像任何 Web 服务器或代理一样,仍然不知道解析路径。它只知道浏览器 认为您想要哪个站点 -- 地址栏中显示的主机名。这是将为您的请求提供服务的分配,无论 DNS 如何配置。

这个策略行不通。

我认为您现在可以使用源组和 CloudFront 源故障转移来完成此操作。 https://aws.amazon.com/about-aws/whats-new/2018/11/amazon-cloudfront-announces-support-for-origin-failover/