Cloudfront - 504 The request could not be satisfied

0

【以下的问题经过翻译处理】 Cloudfront distribution 返回504错误,但origin(s3)返回正常。 当有多个正常工作的distributions时,如果我创建一个新的distribution,并将其origin设置为一个正常工作的distribution,我仍然会收到504错误。 这可能与CF无法连接到S3有关,但Bucket网站端点运行正常。

profile picture
专家
已提问 1 年前99 查看次数
1 回答
0

【以下的回答经过翻译处理】 我从两个Cloudfront获取了config(一个正常运行的和一个无法正常运行的),以便进行比较。

#!/bin/bash

distribution_id=$1

commands=( "get-distribution-config" )

for command in "${commands[@]}"
do
    if [ -z "$distribution_id" ]; then
        echo "Please provide distribution id as first parameter"
        exit 1
    fi
    aws cloudfront $command --id $distribution_id > cf/$1-$command.json
done

在比较时,我注意到一个值出了问题。’Origins.Items[].CustomOriginConfig.OriginProtocolPolicy.‘ 在无法正常运行的Cloudfront上,它被设置为https-only, 当我将值更新为http-only后,它就会按预期一样正常工作。之后我再次使用Web托管端点。

我添加了以下脚本来更新配置:

#!/bin/bash

distribution_id=$1

config_and_etag=$(aws cloudfront get-distribution-config --id $distribution_id)

current_config=$(echo $config_and_etag | jq '.DistributionConfig')

new_config=$(echo $current_config | jq '.Origins.Items[].CustomOriginConfig.OriginProtocolPolicy = "http-only"')

etag=$(echo $config_and_etag | jq -r '.ETag')

aws cloudfront update-distribution --id $distribution_id --distribution-config "$new_config" --if-match "$etag"
profile picture
专家
已回答 1 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则