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

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

9 min read

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

Разгортванне трыгераў робіць пацяпленне часткай дастаўкі. Калі ваша разгортванне атрымоўваецца паспяхова, ваша платформа выклікае 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 з такімі ж загалоўкамі ключоў API./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.

Next.js прыкладанні

Калі вы выкарыстоўваеце @cacherocket/next, вы таксама можаце выставіць onVercelDeploy() на /api/cacherocket/deploy і накіраваць гачок разгортвання наваша ўласнае прыкладанне замест агульнадаступнага URL-адраса вебхука.

Tip

Netlify

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

Shopify

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

Любы канвеер CI

У запыце няма нічога спецыфічнага для платформы — гэта HTTP POST. Дадайце яго як апошні этап любога канвеера.

У запыце няма нічога спецыфічнага для платформы — гэта 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"}'

Ніколі не закадзіруйце сакрэтны ключ у канвеерным файле

Альтэрнатыва: 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

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

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

Занадта ранняе пацяпленне - класічная памылка

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

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

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