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

m90*_*m90 5 amazon-web-services amazon-cloudfront aws-cli

我正在尝试使用(截至目前)实验性aws cloudfront CLI工具使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"
}
Run Code Online (Sandbox Code Playgroud)

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

imp*_*lix 10

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

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

输出:

{
"DistributionId": "",
"InvalidationBatch": {
    "Paths": {
        "Quantity": 0,
        "Items": [
            ""
        ]
    },
    "CallerReference": ""
}
}
Run Code Online (Sandbox Code Playgroud)


Cla*_*ler 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"
Run Code Online (Sandbox Code Playgroud)

  • 感谢批处理脚本,这就像下载并去喝咖啡一样. (3认同)