Cloudfront分发版批量失效的JSON是什么样的?

时间:2015-03-06 08:22:56

标签: amazon-web-services amazon-cloudfront aws-cli

我正在尝试使用(截至目前)实验性aws cloudfront CLI tool使AWS Cloudfront发行版上的单个文件无效。我无法弄清楚如何格式化它希望传递给--invalidation-batch参数的JSON。

我发现的唯一文档只解释了它所期望的XML,但我很难将其转换为JSON:http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/CreateInvalidation.html

我试过了:

{
   "Paths" : {
       "Quantity" : 1,
       "Items" : ["/foobar.js"]
   },
   "CallerReference" : "foo-bar-baz"
}

有没有人使用过这个并想出格式化JSON?

2 个答案:

答案 0 :(得分:10)

您可以使用以下命令生成示例JSON。

  

$ aws cloudfront create-invalidation --generate-cli-skeleton | vi -

输出:

{
"DistributionId": "",
"InvalidationBatch": {
    "Paths": {
        "Quantity": 0,
        "Items": [
            ""
        ]
    },
    "CallerReference": ""
}
}

答案 1 :(得分:8)

这是一个从Bash脚本执行此操作的完整实用示例,包括处理为每个失效创建唯一ID的需要(此处我的目的非常独特):

INVALIDATION_ID=$(date +"%S")
INVALIDATION_JSON="{
    \"DistributionId\": \"YOUR_ID\",
    \"InvalidationBatch\": {
        \"Paths\": {
            \"Quantity\": 2,
            \"Items\": [
                \"/foo.png\",
                \"/bar.jpg\"
            ]
        },
        \"CallerReference\": \"$INVALIDATION_ID\"
    }
}"

aws cloudfront create-invalidation --cli-input-json "$INVALIDATION_JSON"