使用awscli更新cloudfront配置

问题描述:

我想用awscli编辑/更新我的CloudFront分配。使用awscli更新cloudfront配置

我使用的是最新的CLI版本:

aws-cli/1.11.56 Python/2.7.10 Darwin/16.4.0 botocore/1.5.19

要awscli使用CloudFront的功能,你需要把它添加到您的AWS配置文件:

[preview] 
cloudfront = true 

我得到的配置我想修改的分布:

aws cloudfront get-distribution-config --id FOO_BAR_ID > cf_config.json

看起来像按预期工作。 Config对我来说看起来不错。现在我试图用相同的配置重新配置我的CF发行版。

aws cloudfront update-distribution --distribution-config file://cf_config.json --id FOO_BAR_ID

和我越来越:

Parameter validation failed: 
Missing required parameter in DistributionConfig: "CallerReference" 
Missing required parameter in DistributionConfig: "Origins" 
Missing required parameter in DistributionConfig: "DefaultCacheBehavior" 
Missing required parameter in DistributionConfig: "Comment" 
Missing required parameter in DistributionConfig: "Enabled" 
Unknown parameter in DistributionConfig: "ETag", must be one of: CallerReference, Aliases, DefaultRootObject, Origins, DefaultCacheBehavior, CacheBehaviors, CustomErrorResponses, Comment, Logging, PriceClass, Enabled, ViewerCertificate, Restrictions, WebACLId, HttpVersion, IsIPV6Enabled 
Unknown parameter in DistributionConfig: "DistributionConfig", must be one of: CallerReference, Aliases, DefaultRootObject, Origins, DefaultCacheBehavior, CacheBehaviors, CustomErrorResponses, Comment, Logging, PriceClass, Enabled, ViewerCertificate, Restrictions, WebACLId, HttpVersion, IsIPV6Enabled 

什么是使用awscli重新配置CF的正确方法?

你必须使用它与update-distribution之前编辑cf_config.json并从文件的开头删除

{ 
    "ETag": "ETag_Value", 
    "DistributionConfig": 

和最后

} 
从文件末尾

然后使用这个命令与从cf_config.json

aws cloudfront update-distribution --distribution-config file://cf_config.json --id FOO_BAR_ID --if-match ETag_Value 
+0

喜删除右边idETag价值,是有办法做到这一切的一个bash脚本内? –