AWS CLI CloudFront Invalidate All Files
Я пытаюсь сделать недействительным весь статический сайт. Следующая команда, по-видимому, не делает недействительной /index.html
и дает нечетный вывод элементов, которые должны быть недействительными, как показано ниже. Это поведение AWS CLI нормально или я что-то упустил? Спасибо!
aws cloudfront create-invalidation --distribution-id $DISTRIBUTION_ID --paths /*
Выход:
{
"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
},
Ответы
Ответ 1
Что ваша оболочка делает расширение локальных имен файлов.
Это то, о чем вы просите, поскольку *
не цитируется.
Либо --paths '*'
, либо Задание --paths '/*'
& sup1; будет делать то, что вы намерены. Цитирование шаблона сохраняет его как литеральную строку, а не то, что вы видите.
& sup1; консоль CloudFront позволяет указать либо *
, либо /*
, чтобы аннулировать весь дистрибутив; напротив, CLI ожидает /*
. Это, в свою очередь, связано с тем, что базовый API также ожидает /*
. Когда вы используете *
в консоли, ведущая косая черта тихо добавляется консолью, прежде чем консоль сделает запрос к API CloudFront.
Ответ 2
Пример аннулирования распространения облачного фронта через aws cli:
aws cloudfront create-invalidation --distribution-id <DistributionID> --paths "/*"
Пример:
aws cloudfront create-invalidation --distribution-id E1B1A4GHK9TTE --paths "/*"
Для получения списка или получения идентификатора распространения Cloudfront вы можете использовать консоль или через cli:
aws cloudfront list-distributions
aws cloudfront list-distributions | grep Id