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-adminzuzuweisen.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-userzuzuweisen.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-managerzuzuweisen.
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_KUBECONFIGin 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
BillingAccountund 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.customConfigunterstü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:cloudBillingConfigspec: paymentSystemConfig: cloudBillingConfig: accountID: CLOUD_BILLING_ACCOUNT_IDErsetzen Sie
CLOUD_BILLING_ACCOUNT_IDdurch IhreGoogle Cloud Abrechnungskonto-ID.customConfigspec: paymentSystemConfig: customConfig: "payment-config-type": PAYMENT_CONFIG_TYPEErsetzen Sie
PAYMENT_CONFIG_TYPEdurch 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
kubectlCLI 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.yamlErsetzen Sie
MANAGEMENT_API_SERVER_KUBECONFIGdurch 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.yamlden folgenden Inhalt hinzu:- Füllen Sie im Abschnitt
billingAccountRefdas Feldnamemit dem Inhalt des Feldsnamein derBillingAccountaus, die Sie verknüpfen möchten. - Füllen Sie im Abschnitt
metadatadas Feldnamespacemit dem Inhalt des identischen Felds in der RessourceBillingAccountaus.
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: platformErsetzen Sie
PROJECT_NAMEdurch 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.yamlanzuwenden: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.yamlden folgenden Inhalt hinzu:- Füllen Sie im Bereich
billingAccountRefdas Feldnamemit dem Inhalt des Feldsnamein derBillingAccountaus, die Sie verknüpfen möchten. - Füllen Sie im Abschnitt
metadatadas Feldnamespacemit dem Inhalt des identischen Felds in der RessourceBillingAccountaus. 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.yamlanzuwenden: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 Namespaceplatformund ändern Sie die folgenden Felder:- Geben Sie im Abschnitt
billingAccountRefim Feldnameeinen 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