9

Ich versuche eine ganze statische Website ungültig zu machen. Der folgende Befehl scheint /index.html nicht ungültig zu machen und gibt eine ungerade Ausgabe von Elementen, die ungültig werden sollen, wie unten gezeigt. Ist dieses AWS CLI-Verhalten normal oder fehlt mir etwas? Vielen Dank!AWS CLI CloudFront alle Dateien ungültig machen

aws cloudfront create-invalidation --distribution-id $DISTRIBUTION_ID --paths /* 

Ausgang:

{ "Invalidation": { "Status": "InProgress", "InvalidationBatch": { "Paths": { "Items": [ "/lib32", "/home", "/vmlinuz", "/core", "/proc", "/var", "/dev", "/usr", "/etc", "/initrd.img", "/cdrom", "/lost+found", "/root", "/tmp", "/lib", "/dead.letter", "/lib64", "/boot", "/sys", "/run", "/bin", "/sbin", "/mnt", "/opt", "/snap", "/media", "/copyright", "/srv" ], "Quantity": 28 },

Antwort

18

Das Shell ist expansion of local filenames tun.

Das ist, was Sie im Wesentlichen verlangen, da die * nicht zitiert wird.

Entweder --paths '*' oder Angeben --paths '/*' ¹ wird tun, was Sie beabsichtigen. Wenn Sie das Platzhalterzeichen verwenden, wird es als eine literale Zeichenfolge und nicht als das, was Sie sehen, gespeichert.


¹ Die Cloudfront-Konsole ermöglicht es Ihnen, die gesamte Verteilung angeben entweder * oder /* ungültig zu machen; Im Gegensatz dazu erwartet das CLI /*. Dies liegt daran, dass die zugrunde liegende API auch /* erwartet. Wenn Sie in der Konsole * verwenden, wird der führende Schrägstrich automatisch von der Konsole hinzugefügt, bevor die Konsole die Anforderung an die CloudFront-API sendet.

+1

Das hat den Trick für mich getan. Danke Michael. Um weiter beizutragen, gibt es bei der Version 'aws-cli/1.11.36 Python/2.7.12 Darwin/16.4.0 botocore/1.4.93 'mit dem' --paths' * ''Wert den Fehler:' Ein Fehler ist aufgetreten (InvalidArgument) beim Aufruf der CreateInvalidation-Operation: Ihre Anfrage enthält einen oder mehrere ungültige Invalidationspfade. Sie sollten '--paths '/ *' stattdessen für eine erfolgreiche Antwort verwenden – damusix

+1

@damusix danke für den Hinweis auf die Notwendigkeit das führende '/'. Entsprechend aktualisiert. –