Трыгеры дэплою

Прагравайце аўтаматычна пасля кожнага рэлізу — з Vercel, Netlify, Shopify або любога CI-канвеера.

9 хв чытання

Разгортванне - гэта адзіны самы надзейны спосаб астудзіць увесь сайт адначасова. Рэліз анулюе кэшы ў цэлым, і кожны наведвальнік у наступныя хвіліны адначасова аплачвае кошт перабудовы - менавіта тады, калі вы, хутчэй за ўсё, будзеце назіраць за праблемамі.

Разгортванне трыгераў робіць пацяпленне часткай дастаўкі. Калі ваша разгортванне атрымоўваецца паспяхова, ваша платформа выклікае Cache Rocket, і пачынаецца разагрэў без адкрыцця прыборнай панэлі.

URL-адрасы Webhook і прыклады знаходзяцца ў раздзеле Уліковы запіс → Разгарнуць інтэграцыю.

Як гэта працуе

Вы даяце сваёй хостынгавай платформе або CI URL для выкліку пасля паспяховага разгортвання. Запыт нясе вашы ключы API ў выглядзе загалоўкаў, а таксама невялікае цела JSON, у якім паведамляецца, што трэба абагрэць.

Агульная форма
bash
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-адрасыЧастковая публікацыя або некалькі старонак, якія вы ведаеце, зменены.
Прыярытэтныя спецыяльныя URL-адрасы пасля частковай публікацыі
bash
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. Дадайце яго як апошні этап любога канвеера.

Дзеянні GitHub
yaml
- 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

Існуе таксама больш простая канчатковая кропка, якая прымае ключы ў целе, а не ў загалоўках, што падыходзіць для асяроддзяў, дзе ўсталёўваць карыстальніцкія загалоўкі няёмка:

bash
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. 1

    Разгортванне завершана, і новая версія працуе

    Пацяпленне выпуску, які не скончыўся, проста кэшуе стары.

  2. 2

    Ачысціце CDN, калі разгортванне змяніла кэшаваны вывад

    У адваротным выпадку пацяпленне перачытвае тое, што ўжо кэшавана, і нічога не паляпшаецца.

  3. 3

    Затым запусціце прагрэў

    Цяпер цёплы запуск здабывае сапраўды новы кантэнт і запаўняе ім кэш.

Ранняе пацяпленне - класічная памылка

Калі трыгер спрацоўвае да таго, як разгортванне цалкам запрацуе або да таго, як CDN будзе ачышчана, вы старанна разагрэеце папярэднюю версію. Падключыцеся да *паспяховай* падзеі, а не да *пачатай*.

Агульныя праблемы

Вэбхук вяртае 401.
Ключы няправільныя, пратэрмінаваныя або заменены на больш новую пару. Праверце, каб абодва назвы загалоўкаў былі дакладна X-Public-Key і X-Secret-Key, і шукайце ўсечаныя значэнні ў вашым сховішчы сакрэтаў.
Гэта вяртае поспех, але нічога не грэе.
hostname у целе, верагодна, не адпавядае ніякаму актыўнаму warmer. Пацвердзіце дакладнае hostname, уключаючы www, і тое, што адпаведны warmer актыўны.
Пацяпленне працягвалася, але наведвальнікі ўсё яшчэ трапляюць на халодныя старонкі.
Амаль заўсёды загадваюць - альбо ён спрацоўваў да таго, як разгортванне было ажыўлена, альбо CDN быў ачышчаны пасля пацяплення, а не раней. Дадайце крок ачысткі перад трыгерам.
Разгортванні папярэдняга прагляду спажываюць мой бюджэт URL.
Абмежаваць вэб-хук толькі для разгортвання ў вытворчасці.
Гэта тое самае, што ачыстка CDN?
Няма. Трыгеры разгортвання пачынаюць награвацца; яны нічога не анулююць. [Інтэграцыі CDN] (/documentation/cdn-integrations) ачышчаюць, а затым разаграваюць. Многія каманды выкарыстоўваюць абодва.