2015-03-06 7 views
5

J'essaie d'invalider un seul fichier sur une distribution AWS Cloudfront en utilisant le (maintenant) expérimental aws cloudfrontCLI tool. Je n'arrive pas à comprendre comment formater le JSON qu'il s'attend à passer au paramètre --invalidation-batch.À quoi ressemble le JSON pour l'invalidation par lots d'une distribution Cloudfront?

La seule documentation que je trouve explique que le XML qu'il attend, mais je vais avoir du mal à traduire cela en JSON: http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/CreateInvalidation.html

J'ai essayé:

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

Quelqu'un at-il encore utilisé cela et compris out pour formater le JSON?

Répondre

10

Vous pouvez générer un exemple JSON à l'aide de la commande suivante.

$ aws cloudfront créer-invalider --generate-cli-skeleton | vi -

Sortie:

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

Très bien, avez-vous la moindre idée de l'existence d'une documentation pour 'aws cloudfront'? Comment avez-vous découvert cela? – m90

+1

@ m90: essayez d'exécuter 'aws cloudfront help' et' aws cloudfront create-invalidation help'. –

+0

@DmitryGuyvoronsky bien c'était facile. J'ai essayé '--help' et' -h' à pas de chance (-‸ლ) - Merci. – m90

7

Voici un complet, exemple de travail de le faire à partir d'un script Bash, y compris la manipulation de la nécessité de créer un identifiant unique pour chaque infirmation (suffisamment unique ici pour mes besoins):

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" 
+2

Merci pour le script de lot, c'était comme déposer et aller prendre un café. – Christian