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.
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"}'| Platform | Webhook-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:
| Lichaam | Effect | Gebruik als |
|---|---|---|
{"hostname":"www.example.com"} | Start elke warmer die bij die hostname past | Een normale volledige release. De gebruikelijke keuze. |
{"crawlerId":"…"} | Start één specifieke warmer | Je hebt meerdere warmers per site en maar één is relevant voor deze deploy. |
{"urls":["https://…"]} | Warmt precies die URL's met voorrang op | Een gedeeltelijke publicatie, of een handvol pagina's waarvan je weet dat ze veranderd zijn. |
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.
- 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:
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
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
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
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-KeyenX-Secret-Keyzijn, 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.