Les environnements Google Distributed Cloud (GDC) isolés nécessitent un compte de facturation pour suivre les coûts des projets et des organisations. Si vous n'associez pas de compte de facturation à une organisation ou à un projet, vous perdrez les données de coûts associées à la ressource.
Pour facturer l'utilisation des services au client, tous les comptes de facturation d'une organisation utilisent une seule et même grille tarifaire.
Avant de commencer
Demandez à l'administrateur IAM de votre organisation de vous accorder les rôles requis suivants. Ces rôles sont associés à l'espace de noms du projet pour la facturation au niveau du projet, ou à l'espace de noms de la plate-forme pour la facturation au niveau de l'organisation :
Administrateur de compte de facturation de l'organisation : crée, gère et associe la ressource
BillingAccount
. Demandez à l'administrateur IAM de votre organisation de vous attribuer le rôleorganization-billing-account-admin
.Utilisateur du compte de facturation de l'organisation : lire, lister et associer la ressource
BillingAccount
. Demandez à l'administrateur IAM de votre organisation de vous attribuer le rôleorganization-billing-account-user
.Gestionnaire de compte de facturation de l'organisation : lecture, liste, création et mise à jour de la ressource
BillingAccountBinding
. Demandez à l'administrateur IAM de votre organisation de vous attribuer le rôleorganization-billing-manager
.
Obtenir le fichier kubeconfig
Pour exécuter des commandes sur le serveur de l'API Management, assurez-vous de disposer des ressources suivantes :
Connectez-vous et générez le fichier kubeconfig pour le serveur d'API Management si vous n'en avez pas.
Utilisez le chemin d'accès au fichier kubeconfig du serveur de l'API Management pour remplacer
MANAGEMENT_API_SERVER_KUBECONFIG
dans ces instructions.
Créer un compte de facturation
Un compte de facturation est identifié de manière unique par son name
et son namespace
. Pour créer un compte de facturation, utilisez une ressource personnalisée pour établir name
et namespace
:
Créez un fichier YAML, puis ajoutez la ressource personnalisée
BillingAccount
et le contenu suivant :apiVersion: billing.gdc.goog/v1 kind: BillingAccount metadata: namespace: platform name: BIL_ACCOUNT_NAME spec: displayName: BIL_DISPLAY_NAME paymentSystemConfig: cloudBillingConfig: accountID: "012345-6789AB-CDEF01"
Remplacez les variables suivantes :
- BIL_ACCOUNT_NAME : nom du compte de facturation.
Exemple :
test-billing-account
- BIL_DISPLAY_NAME : nom à afficher du compte de facturation.
Exemple :
"Test Billing Account"
- BIL_ACCOUNT_NAME : nom du compte de facturation.
Exemple :
Vérifiez votre type de configuration de paiement. Les comptes de facturation Distributed Cloud doivent disposer de l'une des configurations de paiement suivantes :
cloudBillingConfig
: configuration de paiement par défaut. Cette configuration stocke un ID de compte de facturation Cloud.customConfig
: configuration personnalisée permettant aux partenaires de stocker leur configuration de paiement pour facturer l'organisation.customConfig
accepte un dictionnaire de chaînes clé/valeur, avec une clé obligatoirepayment-config-type
.
Les exemples suivants montrent des extraits de fichier YAML
BillingAccount
pour différentes configurations de paiement :cloudBillingConfig
spec: paymentSystemConfig: cloudBillingConfig: accountID: CLOUD_BILLING_ACCOUNT_ID
Remplacez
CLOUD_BILLING_ACCOUNT_ID
par l'ID de votre compte de facturationGoogle Cloud .customConfig
spec: paymentSystemConfig: customConfig: "payment-config-type": PAYMENT_CONFIG_TYPE
Remplacez
PAYMENT_CONFIG_TYPE
par le type de configuration de paiement de votre choix pour votre configuration de facturation personnalisée.Si vous ne disposez pas des informations de configuration
customConfig
de votre organisation, saisissez les informations suivantes :spec: paymentSystemConfig: customConfig: "payment-config-type": "N/A"
Le fichier YAML suivant montre une ressource
BillingAccount
complète avec la configurationcloudBillingConfig
:apiVersion: billing.gdc.goog/v1 kind: BillingAccount metadata: namespace: platform name: test-billing-account spec: displayName: "Test Billing Account" paymentSystemConfig: cloudBillingConfig: accountID: "012345-6789AB-CDEF01"
Enregistrez le fichier YAML. Exécutez l'CLI
kubectl
pour appliquer la ressource dans le serveur de l'API Management pour l'organisation ou le projet spécifique que vous souhaitez facturer :kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccount.yaml
Remplacez
MANAGEMENT_API_SERVER_KUBECONFIG
par le fichier kubeconfig du serveur de l'API Management.
Associer une organisation ou un projet à un compte de facturation
Cette section fournit une série d'étapes pour associer une organisation ou un projet à un BillingAccount
.
Associer un projet
Pour associer un projet à un BillingAccount
, procédez comme suit :
Ajoutez le contenu suivant au fichier :
billingaccountbinding.yaml
:- Dans la section
billingAccountRef
, remplissez le champname
avec le contenu du champname
de l'BillingAccount
que vous souhaitez associer. - Dans la section
metadata
, remplissez le champnamespace
avec le contenu du champ identique dans la ressourceBillingAccount
.
Dans cet exemple, l'espace de noms du projet est PROJECT_NAME :
apiVersion: billing.gdc.goog/v1 kind: BillingAccountBinding metadata: name: billing namespace: PROJECT_NAME spec: billingAccountRef: name: BIL_ACCOUNT_NAME namespace: platform
Remplacez
PROJECT_NAME
par le nom du projet associé au compte de facturation.- Dans la section
Exécutez la commande
kubectl
suivante pour appliquer le fichierbillingaccountbinding.yaml
:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
Associer une organisation
Pour associer une organisation à un BillingAccount
, procédez comme suit :
Ajoutez le contenu suivant au fichier YAML
billingaccountbinding.yaml
:- Dans la section
billingAccountRef
, remplissez le champname
avec le contenu du champname
de l'BillingAccount
que vous souhaitez associer. - Dans la section
metadata
, renseignez le champnamespace
avec le contenu du champ identique dans la ressourceBillingAccount
. Dans cet exemple, l'espace de noms de l'organisation estplatform
:
apiVersion: billing.gdc.goog/v1 kind: BillingAccountBinding metadata: name: billing namespace: platform spec: billingAccountRef: name: BIL_ACCOUNT_NAME namespace: platform
- Dans la section
Exécutez la commande
kubectl
suivante pour appliquer le fichierbillingaccountbinding.yaml
:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
Dissocier des comptes de facturation d'une organisation ou d'un projet
Dans Distributed Cloud, vous ne pouvez pas supprimer de compte de facturation. Si vous devez modifier votre configuration de facturation, vous devez dissocier une organisation ou un projet d'un compte de facturation existant en modifiant le BillingAccountBinding
. Voici quelques exemples de scénarios pour ce cas d'utilisation :
- Les règles comptables de votre entreprise vous demandent de répartir les frais associés aux charges de travail de développement et de production dans des comptes distincts.
- Vous créez un compte de facturation pour facturer un contrat client sur une période d'un an. Lorsque le contrat expire, vous devez facturer la période restante qui dépasse un an.
Pour dissocier un compte de facturation d'une organisation ou d'un projet, procédez comme suit :
Créez un
BillingAccount
pour l'associer au projet. Ce compte remplacera l'ancien.Localisez le fichier YAML de la ressource
BillingAccountBinding
dans l'espace de noms du projet ouplatform
, puis modifiez les champs suivants :- Dans la section
billingAccountRef
, renseignez le champname
avec un nouveau nomBillingAccount
.
- Dans la section
L'exemple suivant montre un fichier YAML BillingAccountBinding
avec le compte expired-billing-account
associé au projet project-one
:
apiVersion: billing.gdc.goog/v1
kind: BillingAccountBinding
metadata:
# The name of a BillingAccountBinding will typically always be `billing`.
name: billing
# This is the project.
namespace: project-one
spec:
billingAccountRef:
# This is an example of a BillingAccount that has expired.
name: expired-billing-account
namespace: platform
L'exemple suivant montre le fichier YAML BillingAccountBinding
de l'exemple précédent, modifié pour associer un nouveau compte appelé new billing account
:
apiVersion: billing.gdc.goog/v1
kind: BillingAccountBinding
metadata:
name: billing
# This is the project.
namespace: project-one
spec:
billingAccountRef:
# This is the example of the new BillingAccount.
name: new-billing-account
namespace: platform