Трыгеры дэплою
Прагравайце аўтаматычна пасля кожнага рэлізу — з Vercel, Netlify, Shopify або любога CI-канвеера.
9 хв чытання
Разгортванне - гэта адзіны самы надзейны спосаб астудзіць увесь сайт адначасова. Рэліз анулюе кэшы ў цэлым, і кожны наведвальнік у наступныя хвіліны адначасова аплачвае кошт перабудовы - менавіта тады, калі вы, хутчэй за ўсё, будзеце назіраць за праблемамі.
Разгортванне трыгераў робіць пацяпленне часткай дастаўкі. Калі ваша разгортванне атрымоўваецца паспяхова, ваша платформа выклікае Cache Rocket, і пачынаецца разагрэў без адкрыцця прыборнай панэлі.
URL-адрасы Webhook і прыклады знаходзяцца ў раздзеле Уліковы запіс → Разгарнуць інтэграцыю.
Як гэта працуе
Вы даяце сваёй хостынгавай платформе або CI URL для выкліку пасля паспяховага разгортвання. Запыт нясе вашы ключы API ў выглядзе загалоўкаў, а таксама невялікае цела JSON, у якім паведамляецца, што трэба абагрэць.
curl -X POST https://api.cacherocket.com/web/v1/public/webhooks/vercel \
-H "Content-Type: application/json" \
-H "X-Public-Key: YOUR_PUBLIC_KEY" \
-H "X-Secret-Key: YOUR_SECRET_KEY" \
-d '{"hostname":"www.example.com"}'| Платформа | Шлях вэб-хука |
|---|---|
| Vercel | /web/v1/public/webhooks/vercel |
| Netlify | /web/v1/public/webhooks/netlify |
| Shopify | /web/v1/public/webhooks/shopify |
Note
Дакладны базавы URL для вашага ўліковага запісу паказаны на старонцы разгортвання інтэграцый разам з гатовым да капіравання прыкладам curl для кожнай платформы.
Выбар карыснай нагрузкі
Цела JSON вырашае, што будзе награвацца. Тры варыянты, ад шырокага да хірургічнага:
| Цела | Эфект | Выкарыстоўвайце калі |
|---|---|---|
{"hostname":"www.example.com"} | Пачынаецца кожны warmer, які супадае з hostname | Нармальны поўны выпуск. Звычайны выбар. |
{"crawlerId":"…"} | Пачынае адзін пэўны warmer | У вас ёсць некалькі warmers на сайт, і толькі адзін мае дачыненне да гэтага разгортвання. |
{"urls":["https://…"]} | Прыярытэт абагравае менавіта гэтыя URL-адрасы | Частковая публікацыя або некалькі старонак, якія вы ведаеце, зменены. |
curl -X POST https://api.cacherocket.com/web/v1/public/webhooks/netlify \
-H "Content-Type: application/json" \
-H "X-Public-Key: YOUR_PUBLIC_KEY" \
-H "X-Secret-Key: YOUR_SECRET_KEY" \
-d '{"urls":["https://www.example.com/","https://www.example.com/pricing"]}'Vercel
Дадайце URL-адрас Cache Rocket як хук разгортвання або вэб-хук інтэграцыі ў наладах вашага праекта, які запускаецца пры паспяховым разгортванні вытворчасці. Прайдзіце аўтэнтыфікацыю з дапамогай загалоўкаў X-Public-Key і X-Secret-Key.
Tip
Агонь толькі на вытворчасці. Разгортванні папярэдняга прагляду маюць уласныя URL-адрасы, не знаходзяцца на вашым правераным hostname, і іх разагрэў марнуе ваш бюджэт.
Netlify
Выкарыстоўвайце вэб-хук апавяшчэння аб падзеі разгортванне паспяховае, паказваючы на шлях Netlify з такімі ж загалоўкамі ключоў API.
Shopify
Накіруйце публікацыю тэмы або вэб-хукі праграмы на шлях Shopify, таму змены вітрыны аднаўляюцца, як толькі яны запускаюцца.
Любы канвеер CI
У запыце няма нічога спецыфічнага для платформы — гэта HTTP POST. Дадайце яго як апошні этап любога канвеера.
- name: Warm Cache Rocket after deploy
run: |
curl -X POST https://api.cacherocket.com/web/v1/public/webhooks/vercel \
-H "Content-Type: application/json" \
-H "X-Public-Key: ${{ secrets.CACHEROCKET_PUBLIC_KEY }}" \
-H "X-Secret-Key: ${{ secrets.CACHEROCKET_SECRET_KEY }}" \
-d '{"hostname":"www.example.com"}'Ніколі не закадуйце сакрэтны ключ у файл канвеера
Выкарыстоўвайце зашыфраванае сховішча сакрэтаў вашага правайдэра CI, як паказана вышэй. Вызначэнні канвеера знаходзяцца ў вашым сховішчы, а зафіксаваны сакрэт - гэта сакрэт, які прасачыўся.
Альтэрнатыва: triggerWarm
Існуе таксама больш простая канчатковая кропка, якая прымае ключы ў целе, а не ў загалоўках, што падыходзіць для асяроддзяў, дзе ўсталёўваць карыстальніцкія загалоўкі няёмка:
curl -X POST https://cacherocket.com/api/wordpress/triggerWarm \
-H 'Content-Type: application/json' \
-d '{"publicKey":"YOUR_KEY","secretKey":"YOUR_SECRET","hostname":"example.com"}'Спадарожная канчатковая кропка warmUrls прыярытэтна абагравае відавочны спіс URL-адрасоў.
Правільны парадак
Паслядоўнасць мае большае значэнне, чым людзі чакаюць:
- 1
Разгортванне завершана, і новая версія працуе
Пацяпленне выпуску, які не скончыўся, проста кэшуе стары.
- 2
Ачысціце CDN, калі разгортванне змяніла кэшаваны вывад
У адваротным выпадку пацяпленне перачытвае тое, што ўжо кэшавана, і нічога не паляпшаецца.
- 3
Затым запусціце прагрэў
Цяпер цёплы запуск здабывае сапраўды новы кантэнт і запаўняе ім кэш.
Ранняе пацяпленне - класічная памылка
Калі трыгер спрацоўвае да таго, як разгортванне цалкам запрацуе або да таго, як CDN будзе ачышчана, вы старанна разагрэеце папярэднюю версію. Падключыцеся да *паспяховай* падзеі, а не да *пачатай*.
Агульныя праблемы
- Вэбхук вяртае
401. - Ключы няправільныя, пратэрмінаваныя або заменены на больш новую пару. Праверце, каб абодва назвы загалоўкаў былі дакладна
X-Public-KeyіX-Secret-Key, і шукайце ўсечаныя значэнні ў вашым сховішчы сакрэтаў. - Гэта вяртае поспех, але нічога не грэе.
- hostname у целе, верагодна, не адпавядае ніякаму актыўнаму warmer. Пацвердзіце дакладнае hostname, уключаючы
www, і тое, што адпаведны warmer актыўны. - Пацяпленне працягвалася, але наведвальнікі ўсё яшчэ трапляюць на халодныя старонкі.
- Амаль заўсёды загадваюць - альбо ён спрацоўваў да таго, як разгортванне было ажыўлена, альбо CDN быў ачышчаны пасля пацяплення, а не раней. Дадайце крок ачысткі перад трыгерам.
- Разгортванні папярэдняга прагляду спажываюць мой бюджэт URL.
- Абмежаваць вэб-хук толькі для разгортвання ў вытворчасці.
- Гэта тое самае, што ачыстка CDN?
- Няма. Трыгеры разгортвання пачынаюць награвацца; яны нічога не анулююць. [Інтэграцыі CDN] (/documentation/cdn-integrations) ачышчаюць, а затым разаграваюць. Многія каманды выкарыстоўваюць абодва.