2015-03-06 6 views
5

Ich versuche, eine einzelne Datei in einer AWS Cloudfront-Distribution mit dem (jetzt) ​​experimentellen aws cloudfrontCLI tool ungültig zu machen. Ich kann nicht herausfinden, wie man den JSON formatiert, den er für die Übergabe an den Parameter --invalidation-batch erwartet.Wie sieht der JSON für die Stapelinvalidierung einer Cloudfront-Distribution aus?

Die einzige Dokumentation ich nur gefunden erklärt die XML es erwartet, aber ich habe eine harte Zeit, in JSON mit Übersetzung: http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/CreateInvalidation.html

Ich habe versucht:

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

Hat jemand noch verwendet, um dieses und dachte, aus, um den JSON zu formatieren?

Antwort

10

Sie können Beispiel-JSON mit dem folgenden Befehl generieren.

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

Ausgang:

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

Schön, haben Sie irgendeine Ahnung, wenn es irgendeine Art von Dokumentation für 'aws cloudfront' gibt? Wie hast du das herausgefunden? – m90

+1

@ m90: versuchen Sie, 'aws cloudfront help' und' aws cloudfront create-invalidation help' auszuführen. –

+0

@DmitryGuyvoronsky gut, das war einfach. Ich versuchte '--help' und' -h' zu keinem Glück (-∞) - Danke. – m90

7

Hier ist ein komplettes, funktionierendes Beispiel aus einem Bash-Skript zu tun, einschließlich der Notwendigkeit der Handhabung eine eindeutige ID für jede Entwertung (einzigartig genug hier für meine Zwecke zu schaffen):

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

Danke für das Batch-Skript, das war wie Drop-in und gehen Sie zum Kaffee. – Christian