veilletech.fr
14 nov. Feed du jour
#06 CLOUDFLARE Article

Cloudflare : un plafond de dépense pour Workers

Une alerte prévient, un plafond arrête : choisissez le second.

Cloudflare lance en bêta Spend Management : un plafond de dépense qui met en pause Workers et Durable Objects quand la limite est atteinte, pour les comptes en paiement à l'usage. Le blocage est décidé hors du chemin des requêtes et propagé de façon asynchrone, donc il n'est pas instantané. Les autres produits suivront.

3 min de lectureintermédiairevidéo 1:17
Partager
Sommaire6 sections
  1. Ce qui se passe
  2. Comment s'y prendre
  3. Ce qui se passe au plafond
  4. Pourquoi le blocage n'est pas instantané
  5. Limites
  6. À retenir

Ce qui se passe

Cloudflare avait déjà des notifications d'usage et des alertes de budget pour les offres payantes, mais « informer n'est pas contrôler ». Spend Management, en bêta, ajoute un vrai plafond : vous fixez une limite de dépense, et Cloudflare met le produit en pause quand elle est atteinte, ce qui évite la facture imprévue. Il est ouvert à tout compte en paiement à l'usage, pour commencer avec Workers et Durable Objects. Pour l'inférence, il se combine avec les limites par utilisateur et par modèle d'AI Gateway.

Comment s'y prendre

Dans le tableau de bord, sous Billing puis Spend limits, activez le produit, fixez la limite, un e-mail de notification et un ou plusieurs seuils d'alerte. Même chose par la CLI cf (cf billing spend-policies create) ou par l'API :

Terminal
curl --fail-with-body --request POST \
  "https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/billing/spend-policies" \
  --header "Authorization: Bearer ${CLOUDFLARE_API_TOKEN}" \
  --header "Content-Type: application/json" \
  --data '{
    "name": "Workers spending cap",
    "product_id": "workers",
    "enabled": true,
    "threshold_cents": 10000,
    "action": "usage_block",
    "notification_email": "me@example.com"
  }'

threshold_cents: 10000 fixe le plafond à 10 000 cents, soit 100 dollars ; usage_block est l'action de blocage. Le tableau de bord affiche la dépense du cycle en cours en quasi temps réel (moins de 10 minutes) et un journal d'audit : qui a changé une limite, quand, et quand un plafond a été atteint.

Ce qui se passe au plafond

Les nouvelles invocations du produit sont refusées. Seules les invocations de code client qui coûtent sont suspendues : sur Workers, les Cron Triggers et les consommateurs de Queues s'arrêtent, mais les fichiers statiques restent servis. Pour reprendre :

Le cycle commence à la date de début de l'abonnement payant, pas au premier du mois : un abonnement démarré le 10 octobre court généralement du 10 octobre au 10 novembre.

Pourquoi le blocage n'est pas instantané

Le moteur de calcul n'est pas dans le chemin des requêtes. La décision remonte une chaîne, puis redescend vers les serveurs :

alertelimiteInvocation WorkersAgrégation 1 puis 5 minUsage EngineRating EngineSeuil franchi ?E-mailQuicksilver, asynchroneServeur local : refus
Le plafond est calculé en amont, puis appliqué localement par chaque serveur

L'usage est agrégé près de la source, en fenêtres d'une minute, puis de cinq. Le Rating Engine le convertit en dépense en appliquant les quotas inclus de l'abonnement : un million de millisecondes de CPU n'est pas forcément facturé. Si l'usage arrive avant les informations d'abonnement nécessaires pour le tarifer, il reste en attente au lieu d'être compté comme gratuit. Le plafond est ensuite poussé par Quicksilver, le magasin clé-valeur interne de Cloudflare, et chaque serveur l'applique avec son état local, au rythme de son rafraîchissement périodique.

Limites

Source : Cloudflare, en anglais.