Für Google Distributed Cloud-Umgebungen (GDC) ohne Internetverbindung ist ein Rechnungskonto erforderlich, um die Kosten für Projekte und Organisationen zu erfassen. Wenn Sie kein Rechnungskonto mit einer Organisation oder einem Projekt verknüpfen, gehen die Kostendaten für die Ressource verloren.
Wenn die Dienstnutzung dem Kunden in Rechnung gestellt werden soll, wird für alle Rechnungskonten innerhalb einer Organisation eine einzige Preistabelle verwendet.
Hinweise
Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die folgenden erforderlichen Rollen zuzuweisen. Diese Rollen sind entweder an den Projektnamespace für die Abrechnung auf Projektebene oder an den Plattformnamespace für die Abrechnung auf Organisationsebene gebunden:
Rechnungskontoadministrator der Organisation: Er kann die
BillingAccount
-Ressource erstellen, verwalten und binden. Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolleorganization-billing-account-admin
zuzuweisen.Nutzer des Abrechnungskontos der Organisation: Die
BillingAccount
-Ressource kann gelesen, aufgelistet und gebunden werden. Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolleorganization-billing-account-user
zuzuweisen.Organization Billing Account Manager: Berechtigung zum Lesen, Auflisten, Erstellen und Aktualisieren der
BillingAccountBinding
-Ressource. Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolleorganization-billing-manager
zuzuweisen.
kubeconfig-Datei abrufen
Damit Sie Befehle für den Management API-Server ausführen können, benötigen Sie die folgenden Ressourcen:
Melden Sie sich an und generieren Sie die kubeconfig-Datei für den Management API-Server, falls Sie noch keine haben.
Verwenden Sie den Pfad zur kubeconfig-Datei des Management API-Servers, um
MANAGEMENT_API_SERVER_KUBECONFIG
in dieser Anleitung zu ersetzen.
Neues Rechnungskonto erstellen
Ein Abrechnungskonto wird eindeutig durch seine name
und namespace
identifiziert. Wenn Sie ein Rechnungskonto erstellen möchten, verwenden Sie eine benutzerdefinierte Ressource, um name
und namespace
festzulegen:
Erstellen Sie eine YAML-Datei und fügen Sie die benutzerdefinierte Ressource
BillingAccount
und den folgenden Inhalt hinzu: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"
Ersetzen Sie die folgenden Variablen:
- BIL_ACCOUNT_NAME: der Name des Rechnungskontos.
Beispiel:
test-billing-account
. - BIL_DISPLAY_NAME: der Anzeigename des Abrechnungskontos.
Beispiel:
"Test Billing Account"
.
- BIL_ACCOUNT_NAME: der Name des Rechnungskontos.
Beispiel:
Prüfen Sie den Typ Ihrer Zahlungskonfiguration. Für Distributed Cloud-Rechnungskonten muss eine der folgenden Zahlungskonfigurationen festgelegt sein:
cloudBillingConfig
: die Standardkonfiguration für die Zahlung. In dieser Konfiguration wird eine Cloud-Rechnungskonto-ID gespeichert.customConfig
: Eine benutzerdefinierte Konfiguration für Partner zum Speichern ihrer Zahlungskonfiguration für die Abrechnung der Organisation.customConfig
unterstützt ein Dictionary mit Schlüssel/Wert-Strings und dem obligatorischen Schlüsselpayment-config-type
.
Die folgenden Beispiele zeigen
BillingAccount
-YAML-Dateischnipsel für verschiedene Zahlungskonfigurationen:cloudBillingConfig
spec: paymentSystemConfig: cloudBillingConfig: accountID: CLOUD_BILLING_ACCOUNT_ID
Ersetzen Sie
CLOUD_BILLING_ACCOUNT_ID
durch IhreGoogle Cloud Abrechnungskonto-ID.customConfig
spec: paymentSystemConfig: customConfig: "payment-config-type": PAYMENT_CONFIG_TYPE
Ersetzen Sie
PAYMENT_CONFIG_TYPE
durch den von Ihnen ausgewählten Zahlungskonfigurationstyp für Ihre benutzerdefinierte Abrechnungskonfiguration.Wenn Sie die Informationen für die
customConfig
-Konfiguration Ihrer Organisation nicht haben, geben Sie die folgenden Details ein:spec: paymentSystemConfig: customConfig: "payment-config-type": "N/A"
Die folgende YAML-Datei zeigt eine vollständige
BillingAccount
-Ressource mit dercloudBillingConfig
-Konfiguration: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"
Speichern Sie die YAML-Datei. Führen Sie die
kubectl
CLI aus, um die Ressource auf dem Management API-Server für die spezifische Organisation oder das spezifische Projekt anzuwenden, für die bzw. das Sie die Abrechnung durchführen möchten:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccount.yaml
Ersetzen Sie
MANAGEMENT_API_SERVER_KUBECONFIG
durch die kubeconfig-Datei des Management API-Servers.
Organisation oder Projekt mit einem Rechnungskonto verknüpfen
In diesem Abschnitt finden Sie eine Reihe von Schritten zum Verknüpfen einer Organisation oder eines Projekts mit einem BillingAccount
.
Projekt verknüpfen
So verknüpfen Sie ein Projekt mit einer BillingAccount
:
Fügen Sie der Datei
billingaccountbinding.yaml
den folgenden Inhalt hinzu:- Füllen Sie im Abschnitt
billingAccountRef
das Feldname
mit dem Inhalt des Feldsname
in derBillingAccount
aus, die Sie verknüpfen möchten. - Füllen Sie im Abschnitt
metadata
das Feldnamespace
mit dem Inhalt des identischen Felds in der RessourceBillingAccount
aus.
In diesem Beispiel ist der Projekt-Namespace PROJECT_NAME:
apiVersion: billing.gdc.goog/v1 kind: BillingAccountBinding metadata: name: billing namespace: PROJECT_NAME spec: billingAccountRef: name: BIL_ACCOUNT_NAME namespace: platform
Ersetzen Sie
PROJECT_NAME
durch den Namen des Projekts, das mit dem Rechnungskonto verknüpft ist.- Füllen Sie im Abschnitt
Führen Sie den folgenden
kubectl
-Befehl aus, um die Dateibillingaccountbinding.yaml
anzuwenden:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
Organisation verknüpfen
So verknüpfen Sie eine Organisation mit einer BillingAccount
:
Fügen Sie der YAML-Datei
billingaccountbinding.yaml
den folgenden Inhalt hinzu:- Füllen Sie im Bereich
billingAccountRef
das Feldname
mit dem Inhalt des Feldsname
in derBillingAccount
aus, die Sie verknüpfen möchten. - Füllen Sie im Abschnitt
metadata
das Feldnamespace
mit dem Inhalt des identischen Felds in der RessourceBillingAccount
aus. In diesem Beispiel lautet der Organisations-Namespaceplatform
:
apiVersion: billing.gdc.goog/v1 kind: BillingAccountBinding metadata: name: billing namespace: platform spec: billingAccountRef: name: BIL_ACCOUNT_NAME namespace: platform
- Füllen Sie im Bereich
Führen Sie den folgenden
kubectl
-Befehl aus, um die Dateibillingaccountbinding.yaml
anzuwenden:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
Verknüpfung von Rechnungskonten mit einer Organisation oder einem Projekt aufheben
In Distributed Cloud können Sie kein Rechnungskonto löschen. Wenn Sie eine Änderung an Ihrer Abrechnungskonfiguration vornehmen möchten, müssen Sie die Verknüpfung einer Organisation oder eines Projekts mit einem vorhandenen Rechnungskonto aufheben, indem Sie die BillingAccountBinding
ändern. Hier einige Beispiele für Szenarien für diesen Anwendungsfall:
- Die Buchhaltungsvorschriften Ihres Unternehmens sehen vor, dass Kosten für Arbeitslasten auf Entwickler- und Produktionsebene auf separate Konten aufgeteilt werden.
- Sie erstellen ein Rechnungskonto, um einen Kundenvertrag für ein Jahr abzurechnen. Wenn der Vertrag ausläuft, müssen Sie den verbleibenden Zeitraum, der über ein Jahr hinausgeht, in Rechnung stellen.
So heben Sie die Verknüpfung eines Rechnungskontos mit einer Organisation oder einem Projekt auf:
Erstellen Sie eine neue
BillingAccount
, die mit dem Projekt verknüpft werden soll. Dieses Konto ersetzt das alte Konto.Suchen Sie die YAML-Datei für die
BillingAccountBinding
-Ressource im Projekt oder im Namespaceplatform
und ändern Sie die folgenden Felder:- Geben Sie im Abschnitt
billingAccountRef
im Feldname
einen neuenBillingAccount
-Namen ein.
- Geben Sie im Abschnitt
Das folgende Beispiel zeigt eine BillingAccountBinding
-YAML-Datei mit dem Konto expired-billing-account
, das mit dem Projekt project-one
verknüpft ist:
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
Im folgenden Beispiel wird die YAML-Datei BillingAccountBinding
aus dem vorherigen Beispiel so geändert, dass ein neues Konto namens new billing account
verknüpft wird:
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