Crie e associe contas de faturação

Os ambientes isolados do Google Distributed Cloud (GDC) requerem uma conta de faturação para acompanhar os custos de projetos e organizações. Se não associar uma conta de faturação a uma organização ou a um projeto, perde os dados de custos associados ao recurso.

Para cobrar a utilização dos serviços ao cliente, todas as contas de faturação numa organização usam uma única lista de preços.

Antes de começar

Peça ao administrador de IAM da organização para lhe conceder as seguintes funções obrigatórias. Estas funções estão associadas ao espaço de nomes do projeto para a faturação ao nível do projeto ou ao espaço de nomes da plataforma para a faturação ao nível da organização:

  • Administrador da conta de faturação da organização: crie, faça a gestão e associe o recurso BillingAccount. Peça ao administrador de IAM da organização para lhe conceder a função organization-billing-account-admin.

  • Utilizador da conta de faturação da organização: ler, listar e associar o recurso.BillingAccount Peça ao administrador de IAM da organização para lhe conceder a função organization-billing-account-user.

  • Gestor da conta de faturação da organização: ler, listar, criar e atualizar o recurso BillingAccountBinding. Peça ao administrador de IAM da organização para lhe conceder a função organization-billing-manager.

Obtenha o ficheiro kubeconfig

Para executar comandos no servidor da API Management, certifique-se de que tem os seguintes recursos:

  1. Inicie sessão e gere o ficheiro kubeconfig para o servidor da API Management, se não tiver um.

  2. Use o caminho para o ficheiro kubeconfig do servidor da API de gestão para substituir MANAGEMENT_API_SERVER_KUBECONFIG nestas instruções.

Crie uma nova conta de faturação

Uma conta de faturação é identificada de forma exclusiva pelo respetivo name e namespace. Para criar uma conta de faturação, use um recurso personalizado para estabelecer o name e o namespace:

  1. Crie um ficheiro YAML e adicione o recurso personalizado BillingAccount e o seguinte conteúdo:

    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"
    

    Substitua as seguintes variáveis:

    • BIL_ACCOUNT_NAME: o nome da conta de faturação. Por exemplo, test-billing-account.
    • BIL_DISPLAY_NAME: o nome a apresentar da conta de faturação. Por exemplo, "Test Billing Account".
  2. Valide o tipo de configuração de pagamento. As contas de faturação do Distributed Cloud têm de ter uma das seguintes configurações de pagamento:

    • cloudBillingConfig: a configuração de pagamento predefinida. Esta configuração armazena um ID da conta do Cloud Billing.

    • customConfig: uma configuração personalizada para os parceiros armazenarem a respetiva configuração de pagamento para faturar à organização. customConfig suporta um dicionário de strings de chave-valor, com uma chave obrigatória payment-config-type.

    Os exemplos seguintes mostram fragmentos de ficheiros YAML para diferentes configurações de pagamento:BillingAccount

    cloudBillingConfig

    spec:
      paymentSystemConfig:
        cloudBillingConfig:
          accountID: CLOUD_BILLING_ACCOUNT_ID
    

    Substitua CLOUD_BILLING_ACCOUNT_ID pelo ID da sua conta de faturação.Google Cloud

    customConfig

    spec:
     paymentSystemConfig:
       customConfig:
          "payment-config-type": PAYMENT_CONFIG_TYPE
    

    Substitua PAYMENT_CONFIG_TYPE pelo tipo de configuração de pagamento escolhido para a sua configuração de faturação personalizada.

    Se não tiver as informações de customConfigconfiguração da sua organização, introduza os seguintes detalhes:

    spec:
     paymentSystemConfig:
       customConfig:
          "payment-config-type": "N/A"
    

    O ficheiro YAML seguinte mostra um recurso BillingAccount completo com a configuração cloudBillingConfig:

    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. Guarde o ficheiro YAML. Execute a CLI kubectl para aplicar o recurso no servidor da API Management para a organização ou o projeto específico que quer faturar:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccount.yaml
    

    Substitua MANAGEMENT_API_SERVER_KUBECONFIG pelo ficheiro kubeconfig do servidor da API Management.

Esta secção fornece uma série de passos para associar uma organização ou um projeto a um BillingAccount.

Para associar um projeto a um BillingAccount, faça o seguinte:

  1. Adicione o seguinte conteúdo ao ficheiro: billingaccountbinding.yaml:

    • Na secção billingAccountRef, preencha o campo name com o conteúdo do campo name no BillingAccount que quer associar.
    • Na secção metadata, preencha o campo namespace com o conteúdo do campo idêntico no recurso BillingAccount.

    Neste exemplo, o espaço de nomes do projeto é PROJECT_NAME:

    apiVersion: billing.gdc.goog/v1
    kind: BillingAccountBinding
    metadata:
      name: billing
      namespace: PROJECT_NAME
    spec:
      billingAccountRef:
        name: BIL_ACCOUNT_NAME
        namespace: platform
    

    Substitua PROJECT_NAME pelo nome do projeto associado à conta de faturação.

  2. Execute o seguinte comando kubectl para aplicar o ficheiro billingaccountbinding.yaml:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
    

Para associar uma organização a uma BillingAccount, faça o seguinte:

  1. Adicione o seguinte conteúdo ao ficheiro YAML billingaccountbinding.yaml:

    • Na secção billingAccountRef, preencha o campo name com o conteúdo do campo name no BillingAccount que quer associar.
    • Na secção metadata, preencha o campo namespace com o conteúdo do campo idêntico no recurso BillingAccount. Neste exemplo, o espaço de nomes da organização é platform:
    apiVersion: billing.gdc.goog/v1
    kind: BillingAccountBinding
    metadata:
      name: billing
      namespace: platform
    spec:
      billingAccountRef:
        name: BIL_ACCOUNT_NAME
        namespace: platform
    
  2. Execute o seguinte comando kubectl para aplicar o ficheiro billingaccountbinding.yaml:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
    

No Distributed Cloud, não pode eliminar uma conta de faturação. Se precisar de alterar a configuração de faturação, tem de desassociar uma organização ou um projeto de uma conta de faturação existente modificando o BillingAccountBinding. Alguns cenários para este exemplo de utilização incluem os seguintes exemplos:

  • As regras de contabilidade da sua empresa exigem que divida os custos associados a cargas de trabalho ao nível de produção e de programador em contas separadas.
  • Cria uma conta de faturação para cobrar um contrato de cliente durante um período de um ano. Quando o contrato expira, tem de cobrar o período restante que excede um ano.

Para desassociar uma conta de faturação de uma organização ou um projeto, faça o seguinte:

  1. Crie um novo BillingAccount para associar ao projeto. Esta conta vai substituir a conta antiga.

  2. Localize o ficheiro YAML do recurso BillingAccountBinding no projeto ou no platform espaço de nomes e modifique os seguintes campos:

    • Na secção billingAccountRef, preencha o campo name com um novo nome BillingAccount.

O exemplo seguinte mostra um BillingAccountBindingficheiro YAML com a conta expired-billing-account associada ao projeto 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

O exemplo que se segue mostra o ficheiro BillingAccountBinding YAML do exemplo anterior modificado para associar uma nova conta denominada 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