微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何调用AWS Cloudfront Update-CFDistribution Powershell Cmdlet

如何解决如何调用AWS Cloudfront Update-CFDistribution Powershell Cmdlet

我已经编写了脚本来更改CloudFront中特定发行版上特定原始的原始路径。更改路径后,尝试使用更改来更新发行版时出现错误。我不想更改任何内容除了“原始路径”之外,还有其他分布,因此,我如何调用Update-CFdistribution理想地进行这些更改而不必设置每个参数(API的未来更新可能会导致此脚本失败,甚至最糟糕的是使脚本不完整修改

$distributions = Get-CFdistributionList 

foreach($distribution in $distributions) {
    if($distribution.Id -eq "$CloudfrontdistributionId") {
        foreach ($origin in $distribution.Origins) {
            foreach($item in $origin.Items) {
                if($item.Id -eq "OriginName") {
                    $item.OriginPath = "/$($S3BucketPrefix)"
                    Update-CFdistribution -Id $CloudfrontdistributionId -Origins_Item @($item)
                }
            }
        }
    }
}

错误

InvalidOperation:检测到5个验证错误:值为null 'distributionConfig.defaultCacheBehavior'无法满足 约束:成员不能为空;值为null 'distributionConfig.enabled'无法满足约束条件:成员必须 不为空; “ distributionConfig.callerReference”处的值为null失败 满足约束条件:Member不能为null;值为null 'distributionConfig.origins.quantity'无法满足约束: 成员不能为空; “ distributionConfig.comment”处的值失败 满足约束条件:成员不能为空

解决方法

我没有声誉,只能添加评论,因此我不得不将其作为答案,但更适合作为评论。

根据文档,即使您只是尝试更新一件东西,发布更新时也会有许多必填字段:

https://docs.aws.amazon.com/powershell/latest/reference/items/Update-CFDistribution.html

更新发行版时,必填字段比 创建发行版时。当您通过以下方式更新您的分配时 使用此API操作,请按照此处的步骤获取最新的 配置,然后进行更新,以确保您 包括所有必填字段。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。