Purge du cache des CDN de CloudFlare

Lors du déploiement de mises à jour, lorsqu’un site se trouve derrière les CDN de CloudFlare, il est souvent nécessaire de lancer une purge des caches. Pour éviter de le faire manuellement, ces quelques lignes nous permettront d’automatiser ce processus.

Pré-requis:

  1. Avoir un site placé derrière CloudFlare. Le type de compte utilisé est gratuit
  2. Avoir généré une clé d’API (le token, à récupérer une fois)
  3. Connaître notre identifiant de zone (à récupérer une fois)

Récupérer notre identifiant de zone

Remplacer ci-dessous les **xxx** par nos propres informations. A faire qu’une fois, l’identifiant de zone ne changera pas d’une purge à l’autre.

curl -X GET "https://api.cloudflare.com/client/v4/zones" \
    -H "X-Auth-Email: **EMAIL**" \
    -H "X-Auth-Key: **TOKEN**" \
    -H "Content-Type: application/json"

Lancer la purge du cache

En possession de notre identifiant de zone et de notre token, nous pouvons purger tous les caches de la zone. C’est cette commande que nous utiliserons après chaque déploiement.

curl -X POST "https://api.cloudflare.com/client/v4/zones/**ZONE**/purge_cache" \
    -H "X-Auth-Email: **EMAIL**" \
    -H "X-Auth-Key: **TOKEN**" \
    -H "Content-Type: application/json" \
    --data '{"purge_everything":true}'

Obtenir plus d’informations sur la documentation officielle.

Pour aller plus loin

Lors de déploiements avec GitLab-CI, l’email et le token peuvent être stockés dans des variables protégées côté GitLab. Le script de purge, généralement un script bash versionné avec les sources du projet, ne contiendra pas ces informations sensibles, fort pratique !