Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Ce document explique comment configurer des notifications d'anomalies de budget et de coûts automatisés (Aperçu) à l'aide de Pub/Sub.
Les budgets et les anomalies de coût sont généralement configurés pour envoyer des notifications par e-mail. Si vous utilisez des budgets ou la détection d'anomalies de coût comme outil de contrôle des coûts, les notifications par e-mail ne sont peut-être pas la meilleure méthode pour vous assurer que vous prenez rapidement les mesures nécessaires pour contrôler vos coûts.
Vous pouvez configurer et utiliser des notifications programmatiques pour automatiser les réponses de contrôle des coûts. Voici quelques exemples de réponses automatiques de contrôle des coûts:
Les budgets se basent sur une estimation des données Cloud Billing, susceptibles de changer avant que la facture ne soit finalisée.
Si vous définissez des règles d'administration pour limiter le partage de ressources par domaine (par exemple, en activant enforceInTransit sur les sujets Pub/Sub), une erreur risque de se produire lorsque vous essayez de configurer ou de connecter des sujets Pub/Sub. Dans ce cas, vous devrez peut-être forcer l'accès au compte pour associer correctement un sujet Pub/Sub à un budget. Pour forcer l'accès au compte, procédez comme suit:
Supprimez la règle d'administration contenant la contrainte de restriction de domaine en utilisant l'une des méthodes suivantes :
Pour configurer des notifications budgétaires automatisées, vous devez disposer des autorisations nécessaires pour créer ou modifier des budgets et des sujets Pub/Sub. Vous avez besoin d'un ensemble d'autorisations différent en fonction de votre niveau d'accès.
Utilisateurs disposant des autorisations associées au compte de facturation Cloud
Utilisateurs disposant uniquement d'autorisations au niveau du projet (bêta)
Si votre organisation utilise des rôles personnalisés pour l'authentification, vous devez disposer des autorisations suivantes dans les rôles personnalisés:
pubsub.topics.setIamPolicy sur le projet cible contenant les sujets Pub/Sub que vous souhaitez utiliser.
pubsub.topics.list sur le projet cible contenant les sujets Pub/Sub que vous souhaitez utiliser.
Pour que des rôles personnalisés puissent modifier un budget Cloud Billing existant afin de l'associer à un sujet Pub/Sub existant, vous avez besoin des autorisations suivantes:
pubsub.topics.list sur le projet cible contenant les sujets Pub/Sub que vous souhaitez utiliser.
Pour obtenir les autorisations nécessaires à l'aide de rôles prédéfinis, demandez à votre administrateur de vous attribuer l'un des rôles IAM Cloud Billing prédéfinis suivants sur votre compte de facturation Cloud:
Si votre organisation utilise des rôles personnalisés pour l'authentification, vous devez disposer des autorisations suivantes dans les rôles personnalisés:
pubsub.topics.setIamPolicy sur le projet cible contenant les sujets Pub/Sub que vous souhaitez utiliser.
pubsub.topics.list sur le projet cible contenant les sujets Pub/Sub que vous souhaitez utiliser.
Pour obtenir les autorisations nécessaires à l'aide de rôles prédéfinis, demandez à votre administrateur de vous attribuer l'un des rôles IAM Cloud Billing prédéfinis suivants sur le projet:
Pour configurer des notifications d'anomalies programmatiques, vous devez disposer des autorisations nécessaires pour créer ou modifier des anomalies et des sujets Pub/Sub. Vous devez disposer d'autorisations pour le compte de facturation Cloud.
Utilisateurs disposant des autorisations associées au compte de facturation Cloud (version Preview)
Pour obtenir les autorisations nécessaires à l'aide de rôles prédéfinis, demandez à votre administrateur de vous attribuer l'un des rôles IAM Cloud Billing prédéfinis suivants sur votre compte de facturation Cloud:
Pour configurer des notifications sur les budgets automatisés ou les anomalies, vous devez d'abord créer un sujet Pub/Sub.
Si vous avez déjà configuré un sujet Pub/Sub pour les anomalies de budget ou de coût, vous pouvez ignorer cette étape.
Accédez à la page Pub/Sub de la Google Cloud console.
Sélectionnez un projet contenant le sujet Pub/Sub.
Lorsque vous configurez des sujets Pub/Sub pour les notifications de facturation, nous vous recommandons d'utiliser un projet d'administration FinOps pour y inclure vos sujets Pub/Sub liés à la facturation.
Cliquez sur add_boxCréer un sujet.
Dans le champ ID du sujet, indiquez un nom de sujet.
Conservez les paramètres d'abonnement et de chiffrement par défaut, puis cliquez sur Créer.
Associer votre sujet Pub/Sub
Pour permettre aux notifications automatisées de recevoir des messages Pub/Sub avec l'état actuel de votre budget ou de votre anomalie, vous devez associer votre budget ou votre anomalie à votre sujet Pub/Sub.
Notifications sur le budget
Pour associer un sujet Pub/Sub à un budget Cloud Billing, procédez comme suit:
Utilisateurs disposant des autorisations associées au compte de facturation Cloud
Utilisateurs disposant uniquement d'autorisations au niveau du projet (bêta)
Connectez-vous à la page Budgets et alertes de la Google Cloud console.
Sélectionnez le projet pour lequel vous souhaitez gérer les budgets.
Accédez à la section Facturation: ouvrez le menu de navigationmenu de la console Google Cloud , puis sélectionnez Facturation.
Si vous êtes invité à choisir le compte de facturation que vous souhaitez afficher et gérer, cliquez sur Accéder au compte de facturation associé pour afficher le compte de facturation associé au projet sélectionné.
La page Vue d'ensemble de la facturation s'ouvre pour le compte de facturation sélectionné.
Dans la section Gestion des coûts du menu de navigation "Facturation", sélectionnez Budgets et alertes.
Sélectionnez le budget que vous souhaitez associer ou créez-en un.
Dans la section Actions, sous Gérer les notifications, sélectionnez Associer un sujet Pub/Sub à ce budget.
Dans le champ Projet, cliquez sur Sélectionner un projet et choisissez le projet contenant les sujets Pub/Sub que vous avez configurés.
Sous Sélectionner un sujet Pub/Sub, sélectionnez un sujet existant ou créez-en un en cliquant sur Créer un sujet.
Si vous créez un sujet, indiquez un nom de sujet dans le champ ID du sujet, puis cliquez sur Créer un sujet.
Une fois le sujet créé, il est automatiquement sélectionné.
Cliquez sur Enregistrer.
Notifications d'anomalies
Pour associer un sujet Pub/Sub à une anomalie de coût, procédez comme suit:
Utilisateurs disposant des autorisations associées au compte de facturation Cloud (version Preview)
Accédez à la page Anomalies dans la console Google Cloud .
Lorsque l'invite s'affiche, choisissez le compte de facturation Cloud pour lequel vous souhaitez gérer les anomalies.
La page Anomalies s'ouvre pour le compte de facturation sélectionné.
Cliquez sur settingsGérer les anomalies.
Saisissez une valeur pour le seuil d'anomalie dans Impact sur les coûts. Ce montant correspond à la valeur du seuil qui déclenche les notifications. Si vous ne fournissez pas de valeur, le seuil est défini sur zéro, et des notifications sont envoyées pour toutes les anomalies.
Dans la section Notifications Pub/Sub, sélectionnez Associer un sujet Pub/Sub pour recevoir des mises à jour automatisées concernant les anomalies.
Dans le menu déroulant qui s'affiche, sélectionnez le sujet Pub/Sub que vous souhaitez associer pour recevoir des notifications.
Les sujets sont listés par projet. Vous devrez peut-être changer le projet que vous consultez pour trouver le sujet que vous souhaitez sélectionner.
Si vous souhaitez créer un sujet, avant de cliquer sur Créer un sujet, sélectionnez le projet de votre choix.
Cliquez sur Enregistrer.
Format des notifications
Les notifications envoyées au sujet Pub/Sub comprennent deux parties :
Attributs : ensemble de paires valeur/clé décrivant l'événement.
Données : chaîne contenant un objet JSON qui rassemble les détails de l'alerte budgétaire.
Notifications sur le budget
Attributs
Les attributs sont des paires valeur/clé présentes dans toutes les notifications que Cloud Billing envoie à votre sujet Pub/Sub. Les notifications comportent toujours l'ensemble de paires valeur-clé suivant, quelle que soit leur charge utile.
Nom de l'attribut
Exemple
Description
billingAccountId
01D4EE-079462-DFD6EC
Identifiant du compte Cloud Billing propriétaire du budget.
budgetId
de72f49d-779b-4945-a127-4d6ce8def0bb
Identifiant de l'alerte budgétaire dans le compte Cloud Billing.
schemaVersion
1.0
Version du schéma des notifications.
Données
Les détails de l'alerte budgétaire sont renvoyés dans une chaîne UTF-8 avec un code en base64 qui contient un objet JSON avec les propriétés suivantes:
Données
Exemple
Description
budgetDisplayName
"My Personal Budget"
Nom lisible par l'humain attribué au budget.
costAmount
140.321
Montant des coûts accumulés. Le type de coûts suivis dépend des filtres et des paramètres du budget.
costIntervalStart
"2021-02-01T08:00:00Z"
Début de la période de l'alerte budgétaire. "costAmount" inclut des coûts d'utilisation à partir de ce moment. Il s'agit du premier jour de la période budgétaire (mois, trimestre, année ou période personnalisée) au cours de laquelle le budget a été utilisé.
budgetAmount
152.557
Montant du budget.
budgetAmountType
"SPECIFIED_AMOUNT"
Type du montant du budget. Il peut s'agir de l'une des valeurs suivantes :
"SPECIFIED_AMOUNT" : montant fixe.
"LAST_MONTH_COST": coûts totaux encourus au cours du dernier mois calendaire.
"LAST_PERIODS_COST": coûts encourus au cours de la dernière période calendaire non mensuelle, telle qu'un trimestre ou une année.
alertThresholdExceeded
0.9
Le seuil maximal de l'alerte configurée relative aux coûts réels a été franchi. La valeur est un pourcentage au format décimal (par exemple, 0,9 correspond à 90 %). Cette clé n'est pas présente si le coût ne dépasse aucun seuil.
forecastThresholdExceeded
0.2
Le seuil d'alerte de coût prévu le plus élevé a été dépassé. La valeur est un pourcentage au format décimal (par exemple, 0,2 correspond à 20 %). Cette clé n'est pas présente si le coût prévu ne dépasse aucun seuil.
currencyCode
"USD"
Devise de l'alerte budgétaire. Tous les coûts et les montants de l'alerte budgétaire sont présentés dans cette devise.
Notifications d'anomalies
Attributs
Les attributs sont des paires clé/valeur présentes dans toutes les notifications que Cloud Billing envoie à votre sujet Pub/Sub. Les notifications comportent toujours l'ensemble de paires clé-valeur suivant, quelle que soit leur charge utile.
Nom de l'attribut
Exemple
Description
portée
scope_project
Champ d'application de l'anomalie.
billingAccountName
billingAccounts/01D4EE-079462-DFD6EC
Identifiant du compte de facturation Cloud où l'anomalie s'est produite.
resourceDisplayName
My project
Nom à afficher de la ressource dans laquelle l'anomalie s'est produite.
resourceName
projects/123456
Identifiant de la ressource dans laquelle l'anomalie s'est produite.
SchemaVersion
1.0
Version du schéma Pub/Sub.
Données
Les détails de l'alerte d'anomalie sont renvoyés dans une chaîne UTF-8 avec un code en base64 qui contient un objet JSON avec les propriétés suivantes:
Champ répété contenant des informations sur l'origine de l'anomalie.
Garanties de distribution pour les notifications à Pub/Sub
Une fois que vous avez associé votre budget ou votre anomalie à un sujet Pub/Sub, vous pouvez vous attendre à recevoir des notifications automatisées comme suit:
Notifications sur le budget
Les notifications de budget sont envoyées plusieurs fois par jour au sujet Pub/Sub avec l'état actuel de votre budget. Cette fréquence est différente de celle des e-mails d'alerte budgétaire, qui ne sont envoyés que lorsqu'un seuil budgétaire est atteint.
Les notifications Pub/Sub sont envoyées même si le compte Cloud Billing n'est pas utilisé.
La réception de la première notification Pub/Sub peut prendre plusieurs heures.
Pub/Sub garantit une distribution sans faute au minimum d'une fois. Vous pouvez recevoir les messages plusieurs fois ou dans le désordre.
Si la distribution échoue en raison d'une mauvaise configuration du sujet Pub/Sub, vous n'en serez pas informé.
La distribution peut échouer pour l'une des raisons suivantes :
Le sujet Pub/Sub n'existe plus.
Cloud Billing n'est plus autorisé à publier dans le sujet Pub/Sub.
Pour en savoir plus sur l'utilisation des notifications programmatiques, consultez les exemples suivants de réponses de contrôle des coûts programmatiques:
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[[["\u003cp\u003eThis guide teaches how to set up automated responses to Cloud Billing budget and cost anomaly notifications using Pub/Sub.\u003c/p\u003e\n"],["\u003cp\u003eYou can automate cost control responses by integrating with platforms like Slack, managing resource consumption, or even disabling billing when a budget is reached.\u003c/p\u003e\n"],["\u003cp\u003eTo set up these programmatic notifications, you'll need specific permissions for creating or modifying budgets/anomalies and Pub/Sub topics, varying based on your access level (Cloud Billing account or project).\u003c/p\u003e\n"],["\u003cp\u003eBudget notifications are sent multiple times daily via Pub/Sub with the budget's status, while anomaly notifications are sent only when a predefined cost impact threshold is met.\u003c/p\u003e\n"],["\u003cp\u003eThe tutorial covers creating a Pub/Sub topic, connecting it to budgets or anomalies, and understanding the notification format, which includes attributes and data describing the event and budget/anomaly details.\u003c/p\u003e\n"]]],[],null,["# Set up programmatic notifications\n\n\u003cbr /\u003e\n\n| #### Interactive tutorials: Set up automated responses to Cloud Billing\n| budget notifications (30 minutes)\n|\n| In this interactive tutorial, you'll learn how to do the following:\n|\n| - Set up a Pub/Sub topic\n| - Create a budget on a billing account that's connected to the Pub/Sub topic\n| - Create a Cloud Run function that listens for updates from the Pub/Sub topic\n| - Test your Cloud Run function\n|\n| [**Launch the tutorial**](https://console.cloud.google.com/home/dashboard?walkthrough_tutorial_id=billing--budget--cost_enforcement)\n\nThis document explains how to set up programmatic budget and cost anomaly\n([Preview](/products#product-launch-stages))\nnotifications using\n[Pub/Sub](/pubsub/docs/pubsub-basics).\n\n[Budgets](/billing/docs/how-to/budgets#manage-notifications)\nand [cost anomalies](/billing/docs/how-to/manage-anomalies#set-notifications)\nare typically configured to send email notifications. If you use budgets or\ncost anomaly detection as a cost control tool, email notifications might not be\nthe best method to use to ensure timely action to control your costs.\nYou can set up and use programmatic notifications to automate cost control\nresponses. Examples of automated cost control responses include the following:\n\n- [Integrate with Slack for faster response](/billing/docs/how-to/send-notifications-to-slack)\n- [Manage resource consumption to reduce costs](/billing/docs/how-to/control-usage)\n- [Limit spending by disabling billing when you reach your budget](/billing/docs/how-to/disable-billing-with-notifications)\n\nLimitations\n-----------\n\n- Budgets use estimated Cloud Billing data which is subject to\n change until your invoice is finalized.\n\n- If you set [organization policies](/resource-manager/docs/organization-policy/overview)\n to [limit resource sharing by domain](/resource-manager/docs/organization-policy/restricting-domains)\n (for example, enabling `enforceInTransit` on Pub/Sub topics),\n you might encounter an error when you try to set up or connect Pub/Sub\n topics. In this situation, you might need to\n [force account access](/resource-manager/docs/organization-policy/restricting-domains#forcing_access)\n to successfully connect a Pub/Sub topic to a budget. To force\n account access, complete the following steps:\n\n 1. Remove the organization policy containing the domain restriction constraint using one of the following methods:\n - Temporarily [remove the organization policy](/resource-manager/docs/organization-policy/using-constraints#delete_an_organization_policy).\n - [Override the organization policy for the project](/resource-manager/docs/organization-policy/using-constraints#override_the_organization_policy_for_a_project) that contains the [Pub/Sub topic](#pub-sub-topic).\n 2. Follow the steps to [connect a Pub/Sub topic](#connect-topic).\n 3. Reinstate the [organization policy](/resource-manager/docs/organization-policy/using-constraints#set_up_enforcement_on_the_organization_resource) for the organization or project (optional).\n\nPermissions required for this task\n----------------------------------\n\n### Budget notifications\n\nTo set up programmatic budget notifications, you need permissions to create or\nmodify budgets and Pub/Sub topics. You need a different set of\npermissions depending on your level of access.\n\n### Anomaly notifications\n\nTo set up programmatic anomaly notifications, you need permissions to create\nor modify anomalies and Pub/Sub topics. You must have\nCloud Billing account permissions.\n\nCreate a Pub/Sub topic\n----------------------\n\nTo set up programmatic budget or anomaly notifications, you must first\n[create a Pub/Sub topic](/pubsub/docs/create-topic).\nIf you already configured a Pub/Sub\ntopic for budgets or cost anomalies, you can skip this step.\n\n1. Go to the Google Cloud console **Pub/Sub** page.\n\n [Sign in to Google Cloud console Pub/Sub](https://console.cloud.google.com/cloudpubsub/)\n2. Select a project to contain the Pub/Sub topic.\n\n When configuring Pub/Sub topics for billing notifications, we\n recommend you use a\n [FinOps administration project](/billing/docs/how-to/create-billing-account#set-up-billing-project)\n to contain your billing-related Pub/Sub topics.\n3. Click add_box\n **Create topic**.\n\n4. In the **Topic ID** field, provide a topic name.\n\n5. Retain the default subscription and encryption settings, and click\n **Create**.\n\n| **Note:** You must have permission to grant the Pub/Sub Publisher role on the topic to allow Cloud Billing to publish messages to it.\n\nConnect your Pub/Sub topic\n--------------------------\n\nTo enable programmatic notifications to receive Pub/Sub\nmessages with the current status of your budget or anomaly, you must connect\nyour budget or anomaly to your Pub/Sub topic. \n\n### Budget notifications\n\nTo connect a Pub/Sub topic to a Cloud Billing budget,\ncomplete the following steps:\n\n### Anomaly notifications\n\nTo connect a Pub/Sub topic to a cost anomaly, complete the\nfollowing steps:\n\nNotification format\n-------------------\n\nNotifications sent to the Pub/Sub topic consist of two parts:\n\n- **Attributes**: A set of key-value pairs describing the event.\n- **Data**: A string containing a JSON object that describes the budget alert\n details.\n\n### Budget notifications\n\n### Attributes\n\nAttributes are key-value pairs contained in all notifications sent\nby Cloud Billing to your Pub/Sub topic. Notifications always\ncontain the following set of key-value pairs, regardless of the\nnotification payload.\n\n### Data\n\nBudget alert details are returned in a base64-encoded UTF-8 string containing\na JSON object with the following properties:\n\n| **Note:** To test an example budget notification, follow the steps in [Listen to your notifications](/billing/docs/how-to/listen-to-notifications).\n\n### Anomaly notifications\n\n### Attributes\n\nAttributes are key-value pairs contained in all notifications sent by\nCloud Billing to your Pub/Sub topic. Notifications always\ncontain the following set of key-value pairs, regardless of the notification\npayload.\n\n### Data\n\nAnomaly alert details are returned in a base64-encoded UTF-8 string containing\na JSON object with the following properties:\n\nDelivery guarantees for notifications to Pub/Sub\n------------------------------------------------\n\nAfter you connect your budget or anomaly to a Pub/Sub topic, you\ncan expect to receive programmatic notifications as follows: \n\n### Budget notifications\n\n- Budget notifications are sent to the Pub/Sub topic multiple times per day with the current status of your budget. This cadence is different than the cadence for budget alert emails, which are only sent when a [budget threshold](/billing/docs/how-to/budgets#alert-thresholds) is met.\n- Pub/Sub notifications are sent even if the Cloud Billing account has no usage.\n- It may take several hours before you receive the first Pub/Sub notification.\n- Pub/Sub only guarantees at-least-once delivery. You might receive a message multiple times, and messages might arrive out of order.\n- If delivery fails due to Pub/Sub topic misconfiguration, you won't be notified.\n\nDelivery might fail for one of the following reasons:\n\n- The Pub/Sub topic no longer exists.\n- The Cloud Billing no longer has permission to publish to the Pub/Sub topic.\n- You exceeded your notification quota.\n- You have [organization policies](/resource-manager/docs/organization-policy/overview) in place that [limit resource sharing by domain](/resource-manager/docs/organization-policy/restricting-domains).\n\n### Anomaly notifications\n\n- Anomaly notifications are sent to the Pub/Sub topic only when the [threshold](/billing/docs/how-to/manage-anomalies#set-anomaly-threshold) is reached.\n- Pub/Sub only guarantees an at-least-once delivery. You might receive a message multiple times, and messages might arrive out of order.\n- If delivery fails due to Pub/Sub topic misconfiguration, you won't be notified.\n\nDelivery might fail for one of the following reasons:\n\n- The Pub/Sub topic no longer exists.\n- The Cloud Billing account no longer has permission to publish to the Pub/Sub topic.\n- You exceeded your notification quota.\n- You have [organization policies](/resource-manager/docs/organization-policy/overview) in place that [limit resource sharing by domain](/resource-manager/docs/organization-policy/restricting-domains).\n\nFor more information, see\n[Publish and receive messages in Pub/Sub](/pubsub/docs/publish-receive-messages-console).\n\nWhat's next\n-----------\n\nTo learn more about how you can use programmatic notifications, review the\nfollowing examples of programmatic cost control responses:\n\n- [Listen to your notifications](/billing/docs/how-to/listen-to-notifications)\n- [Send notifications to Slack](/billing/docs/how-to/send-notifications-to-slack)\n- [Control resource usage with notifications](/billing/docs/how-to/control-usage)\n- [Disable billing usage with notifications](/billing/docs/how-to/disable-billing-with-notifications)"]]