$
← Les deux kill-switch
Le truc GCP - kill-switch de facturationFilet de derniere ligne

Couper la
facture
au plafond

Google Cloud ne coupe rien tout seul quand ton budget explose. Le budget n'est qu'une alerte. Voici le montage qui transforme cette alerte en vrai coupe-circuit : Budget -> Pub/Sub -> une petite fonction qui detache le compte de facturation et eteint le projet.

Budgetalerte seulement
Pub/Subnotification
Cloud Functioncoupe le billing
Projeteteint
En clair - pour debuter

Un extincteur, pas un thermostat

Sur Google Cloud, le "budget" que tu regles dans la console ne bloque aucune depense : il envoie juste un courriel quand tu depasses. Pour vraiment arreter les frais, il faut brancher cette alerte sur un petit robot qui debranche la carte de credit du projet. Resultat : tout s'eteint d'un coup. C'est puissant mais brutal - a garder pour la vraie urgence pendant que tu es a la plage, pas comme frein de tous les jours.

01

Pourquoi il faut ce truc

Fait 01Le budget n'arrete rien

Un budget GCP declenche des alertes a 50 / 90 / 100 %. Il ne coupe, ne bloque et ne plafonne aucune ressource par lui-meme.

Fait 02Pas de plafond dur natif

Contrairement a un forfait prepaye, GCP facture a l'usage. Sans garde-fou, une boucle ou un pic viral facture sans limite.

Fait 03Le seul vrai stop

Detacher le compte de facturation du projet (billingAccountName = "") stoppe la facturation. C'est ca, le truc.

02

Le flux du coupe-circuit

Budget 250 $-> Alerte 100 %-> Sujet Pub/Sub-> Cloud Function-> API Cloud Billing-> Projet eteint

Chaque mise a jour du budget publie un message sur le sujet Pub/Sub. La fonction lit le montant, le compare au plafond, et si on depasse : elle detache le compte de facturation. Le projet s'eteint dans les minutes qui suivent.

03

Le montage, etape par etape

  1. Creer le sujet Pub/Sub qui recevra les notifications de budget.
  2. Creer le budget dans Cloud Billing et le brancher sur ce sujet (case "Connecter un sujet Pub/Sub").
  3. Deployer la Cloud Function declenchee par ce sujet (le code est a la section 04).
  4. Donner le droit a la fonction de modifier la facturation (role Billing Account Administrator sur son compte de service).
  5. Tester avec un faux depassement avant de partir en vacances. Ce filet doit avoir ete arme et verifie, jamais decouvert en catastrophe.
# 1. le sujet qui transporte les alertes de budget gcloud pubsub topics create alertes-budget # 3. deployer la fonction (source dans le dossier courant) gcloud functions deploy couper-facturation \ --runtime=nodejs20 --trigger-topic=alertes-budget \ --entry-point=couperFacturation --region=us-central1 # 4. autoriser la fonction a couper le billing gcloud billing accounts add-iam-policy-binding $COMPTE_FACTURATION \ --member=serviceAccount:$COMPTE_SERVICE_FONCTION \ --role=roles/billing.admin

L'etape 2 (creer le budget et cocher le sujet Pub/Sub) se fait dans la console Cloud Billing : Budgets et alertes -> Creer un budget -> Gerer les notifications -> Connecter un sujet Pub/Sub.

04

La fonction qui coupe

Node.js. Elle lit le message du budget, et si la depense passe le plafond, elle detache le compte de facturation du projet.

const { CloudBillingClient } = require('@google-cloud/billing'); const clientFacturation = new CloudBillingClient(); exports.couperFacturation = async (evenementPubsub) => { const message = JSON.parse( Buffer.from(evenementPubsub.data, 'base64').toString() ); const montantCourant = message.costAmount; const montantPlafond = message.budgetAmount; // pas encore au plafond : on ne touche a rien if (montantCourant <= montantPlafond) return; const nomProjet = `projects/${process.env.GOOGLE_CLOUD_PROJECT}`; const [infoFacturation] = await clientFacturation.getProjectBillingInfo({ name: nomProjet }); // deja coupe : rien a faire if (!infoFacturation.billingEnabled) return; // le truc : compte de facturation vide = billing detache = projet eteint await clientFacturation.updateProjectBillingInfo({ name: nomProjet, projectBillingInfo: { billingAccountName: '' }, }); };
⚠️ Le detachement est destructif. Couper la facturation termine tous les services du projet et peut supprimer des ressources de facon irrecuperable (bases, machines, files). Il y a aussi un delai : des couts continuent d'arriver apres la coupe. C'est un extincteur, pas un thermostat.
05

Le bon ordre des plafonds

Ce truc est le dernier echelon. On l'empile sous des freins non destructifs qui, eux, servent au quotidien :

06

Rayon de souffle