AWS Cloudfront 在使 s3 源失效后提供 503

AWS Cloudfront giving 503 after invalidating s3 origin

提问人:vagabond492 提问时间:4/19/2023 更新时间:4/20/2023 访问量:124

问:

我的设置很简单,我让 Cloudfront 提供 s3 静态网站源。该行为设置为仅 http,建议使用 s3 缓存策略,建议使用 cors 标头 s3。但是,对于这个问题,我认为这些事情并不重要,因为没有其他任何变化,只是发生了无效。

我使用通配符 (*) 使源失效,以允许 Cloudfront 使用新上传的文件。我的 s3 存储桶具有公共访问权限,并且事先正常工作。怎么了?

amazon-web-services amazon-s3 amazon-cloudfront 失效

评论


答:

1赞 kala 4/20/2023 #1

这可能是因为您的 s3 存储桶策略。您的 Cloudfront 能够在失效之前获取对象,但不知道对象的版本,因此无法确定对象是否为新对象。

我建议你试试这个桶策略:

    {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::your-bucket-name-here/*"
        }
    ]
}

这允许 Cloudfront(以及其他所有内容)查看存储桶的版本,以便在失效后扣除是否有更新的版本。如果您只想让 Cloudfront 看到存储桶中的文件,则可能需要对此进行微调。