我正在尝试使用(截至目前)实验性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?
答案 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"