Rechnungskonten erstellen und verknüpfen

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 Rolle organization-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 Rolle organization-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 Rolle organization-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:

  1. Melden Sie sich an und generieren Sie die kubeconfig-Datei für den Management API-Server, falls Sie noch keine haben.

  2. 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:

  1. 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".
  2. 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üssel payment-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 der cloudBillingConfig-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"
    
  3. 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.

In diesem Abschnitt finden Sie eine Reihe von Schritten zum Verknüpfen einer Organisation oder eines Projekts mit einem BillingAccount.

So verknüpfen Sie ein Projekt mit einer BillingAccount:

  1. Fügen Sie der Datei billingaccountbinding.yaml den folgenden Inhalt hinzu:

    • Füllen Sie im Abschnitt billingAccountRef das Feld name mit dem Inhalt des Felds name in der BillingAccount aus, die Sie verknüpfen möchten.
    • Füllen Sie im Abschnitt metadata das Feld namespace mit dem Inhalt des identischen Felds in der Ressource BillingAccount 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.

  2. Führen Sie den folgenden kubectl-Befehl aus, um die Datei billingaccountbinding.yaml anzuwenden:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
    

So verknüpfen Sie eine Organisation mit einer BillingAccount:

  1. Fügen Sie der YAML-Datei billingaccountbinding.yaml den folgenden Inhalt hinzu:

    • Füllen Sie im Bereich billingAccountRef das Feld name mit dem Inhalt des Felds name in der BillingAccount aus, die Sie verknüpfen möchten.
    • Füllen Sie im Abschnitt metadata das Feld namespace mit dem Inhalt des identischen Felds in der Ressource BillingAccount aus. In diesem Beispiel lautet der Organisations-Namespace platform:
    apiVersion: billing.gdc.goog/v1
    kind: BillingAccountBinding
    metadata:
      name: billing
      namespace: platform
    spec:
      billingAccountRef:
        name: BIL_ACCOUNT_NAME
        namespace: platform
    
  2. Führen Sie den folgenden kubectl-Befehl aus, um die Datei billingaccountbinding.yaml anzuwenden:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
    

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:

  1. Erstellen Sie eine neue BillingAccount, die mit dem Projekt verknüpft werden soll. Dieses Konto ersetzt das alte Konto.

  2. Suchen Sie die YAML-Datei für die BillingAccountBinding-Ressource im Projekt oder im Namespace platform und ändern Sie die folgenden Felder:

    • Geben Sie im Abschnitt billingAccountRef im Feld name einen neuen BillingAccount-Namen ein.

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