Проблема с аннулированием кэша дистрибутива Cloudfront - PullRequest
1 голос
/ 29 марта 2019

У меня возникла проблема с аннулированием кэша моего дистрибутива CloudFront.

Я сопоставил доменное имя с подстановочными знаками с моим дистрибутивом CloudFront; затем я создал Lamba @ Edge, который изменяет источник запроса, перенаправляя каждый поддомен в свою подпапку.

Работает следующим образом:

aaa.mydomain.com => mydomain.com/aaa
bbb.mydomain.com => mydomain.com/bbb
ccc.mydomain.com => mydomain.com/ccc
...

Я не могу сделать кэш недействительным : если я аннулирую путь /bbb/*, он не будет работать. Вместо этого с путем /* работает, но таким образом я лишаю законной силы все S3 Bucket, и я хотел бы избежать этого.

Любая помощь?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 31 мая 2019

Я столкнулся с той же проблемой.Сначала я исследовал написание функции Lambda @ Edge, которая проверяла бы, должен ли контент быть признан недействительным, а затем ломала кеш, добавляя параметр запроса в URL.Но это казалось таким же проблематичным (и дорогостоящим), как и аннулирование всей корзины S3.Вместо этого я решил использовать заголовок Cache-Control: no-cache для конкретных ресурсов, которые не должны кэшироваться CloudFront, а затем просто сделать недействительными другие кэшированные ресурсы с параметрами запроса.И этот метод не требует выдачи каких-либо недействительных CloudFront .

Так, например, если я размещаю статический сайт в CloudFront / S3, который выглядит следующим образом:

- index.html
- header.jpg
- site.css

Я загружаю его на S3 следующим образом:

- index.html // Cache-Control: no-cache
- header.jpg // Linked with <img src='header.jpg?uniquedigest' />
- site.css // Linked with <link href='site.css?uniquedigest' />

Таким образом, все обновляется в CloudFrontL. Только index.html не кэшируется, и все ресурсы все еще кэшируются после первоначальногополучить из источника S3 ведро.Единственным недостатком является то, что index.html всегда выбирается из источника, но HTML должен быть достаточно маленьким, чтобы это не оказывало большого влияния на производительность.

0 голосов
/ 29 марта 2019

Я полагаю, что в настоящее время вы используете лямбда-функцию запроса источника, и она не включает измененный путь к ключу кэша, я знаю, что запрос средства просмотра поможет в его достижении, но, к сожалению, тогда вам нужно написать запрос средства просмотра (изменить путь) изапрос источника для выбора источника.

...