Deploy-triggers

Warm automatisch op na elke release, vanuit Vercel, Netlify, Shopify of elke CI-pijplijn.

9 min read

Deploys zijn de betrouwbaarste manier om een hele site in één keer koud te maken. Een release maakt caches massaal ongeldig, en elke bezoeker in de minuten daarna betaalt gelijktijdig de opbouwkosten — precies wanneer je het meest op problemen let.

Deploy-triggers maken opwarmen onderdeel van uitrollen. Slaagt je deploy, dan roept je platform Cache Rocket aan en begint het opwarmen zonder dat iemand een dashboard opent.

Webhook-URL's en voorbeelden staan op Account → Deploy-integraties.

Hoe het werkt

Je geeft je hostingplatform of CI een URL om aan te roepen na een geslaagde deploy. Het request draagt je API-sleutels als headers, plus een kleine JSON-body die zegt wat opgewarmd moet worden.

De algemene vorm
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"}'
PlatformWebhook-pad
Vercel/web/v1/public/webhooks/vercel
Gebruik een notificatiewebhook op de gebeurtenis deploy succeeded, gericht op het Netlify-pad met dezelfde API-sleutelheaders./web/v1/public/webhooks/netlify
Richt webhooks voor themapublicatie of apps op het Shopify-pad, zodat winkelwijzigingen opnieuw opgewarmd worden zodra ze live staan./web/v1/public/webhooks/shopify

Note

De exacte basis-URL voor jouw account staat op de pagina Deploy-integraties, samen met een kant-en-klaar curl-voorbeeld per platform.

Een payload kiezen

De JSON-body bepaalt wat opgewarmd wordt. Drie opties, van breed naar chirurgisch:

LichaamEffectGebruik als
{"hostname":"www.example.com"}Start elke warmer die bij die hostname pastEen normale volledige release. De gebruikelijke keuze.
{"crawlerId":"…"}Start één specifieke warmerJe hebt meerdere warmers per site en maar één is relevant voor deze deploy.
{"urls":["https://…"]}Warmt precies die URL's met voorrang opEen gedeeltelijke publicatie, of een handvol pagina's waarvan je weet dat ze veranderd zijn.
Specifieke URL's met voorrang opwarmen na een gedeeltelijke publicatie
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

Voeg de Cache Rocket-URL toe als Deploy Hook of integratiewebhook in je projectinstellingen, geactiveerd bij geslaagde productie-deploys. Authenticeer met de headers X-Public-Key en X-Secret-Key.

Next.js-apps

Als u @cacherocket/next gebruikt, kunt u onVercelDeploy() ook op /api/cacherocket/deploy weergeven en de Deploy Hook naar uw eigen app verwijzen in plaats van naar de openbare webhook-URL.

Tip

Netlify

Gebruik een notificatiewebhook op de gebeurtenis **deploy succeeded**, gericht op het Netlify-pad met dezelfde API-sleutelheaders.

Shopify

Richt webhooks voor themapublicatie of apps op het Shopify-pad, zodat winkelwijzigingen opnieuw opgewarmd worden zodra ze live staan.

Elke CI-pijplijn

Er is niets platformspecifieks aan het request — het is een HTTP POST. Voeg hem toe als laatste stap van elke pijplijn.

Er is niets platformspecifiek aan het verzoek: het is een HTTP POST.Voeg het toe als de laatste stap van een pijplijn.

GitHub-acties
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"}'

Codeer nooit de geheime sleutel in een pijplijnbestand

Alternatief: triggerWarm

Er is ook een eenvoudiger endpoint dat de sleutels in de body verwacht in plaats van in headers, wat past bij omgevingen waar eigen headers instellen lastig is:

Er is ook een eenvoudiger eindpunt dat de sleutels in de hoofdtekst gebruikt in plaats van headers, wat geschikt is voor omgevingen waar het instellen van aangepaste headers lastig is:

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"}'

Een begeleidende warmUrls-eindpuntprioriteit verwarmt een expliciete lijst met URL's.

De volgorde is belangrijker dan mensen verwachten:

Volgorde is belangrijker dan mensen verwachten:

  1. 1

    De implementatie is voltooid en de nieuwe versie is live

    Als je een release opwarmt die nog niet is uitgerold, wordt alleen de oude in de cache opgeslagen.

  2. 2

    Maak het CDN leeg als de implementatie de cache-uitvoer heeft gewijzigd

    Anders leest de opwarming opnieuw wat al in de cache is opgeslagen en verbetert er niets.

  3. 3

    Activeer dan de opwarming

    Nu haalt de warme run echt nieuwe inhoud op en vult de cache ermee.

Te vroeg opwarmen is de klassieke fout

Veelvoorkomende problemen

Veelvoorkomende problemen

De webhook retourneert 401 .
Sleutels zijn verkeerd, verlopen of vervangen door een nieuwer paar.Controleer of beide headernamen precies X-Public-Key en X-Secret-Key zijn, en zoek naar afgekapte waarden in uw geheimenarchief.
Het levert succes op, maar niets verwarmt.
De hostnaam in de body komt waarschijnlijk niet overeen met een actieve warmer.Bevestig de exacte hostnaam, inclusief www , en dat de overeenkomende warmer Actief is.
De opwarming liep, maar bezoekers raakten nog steeds koude pagina's.
Bijna altijd besteld: het vuurde af voordat de inzet live was, of het CDN werd na het opwarmen gezuiverd in plaats van ervoor.Voeg een opschoonstap toe vóór de trigger.
Preview-implementaties verbruiken mijn URL-budget.
Beperk de webhook alleen tot productie-implementaties.
Is dit hetzelfde als een CDN-opschoning?
Nee. Zet triggers in en begin op te warmen;ze maken niets ongeldig.CDN-integraties leegmaken en vervolgens opnieuw opwarmen.Veel teams gebruiken beide.