Os ambientes isolados do Google Distributed Cloud (GDC) exigem uma conta de faturamento para rastrear custos de projetos e organizações. Se você não vincular uma conta de faturamento a uma organização ou projeto, vai perder os dados de custo associados ao recurso.
Para cobrar o uso do serviço do cliente, todas as contas de faturamento em uma organização usam uma única tabela de preços.
Antes de começar
Peça ao administrador do IAM da organização para conceder a você os seguintes papéis obrigatórios. Esses papéis são vinculados ao namespace do projeto para faturamento no nível do projeto ou ao namespace da plataforma para faturamento no nível da organização:
Administrador da conta de faturamento da organização: cria, gerencia e vincula o recurso
BillingAccount. Peça ao administrador do IAM da organização para conceder a você o papelorganization-billing-account-admin.Usuário da conta de faturamento da organização: lê, lista e vincula o recurso
BillingAccount. Peça ao administrador do IAM da organização para conceder a você o papelorganization-billing-account-user.Gerente de contas de faturamento da organização: lê, lista, cria e atualiza o recurso
BillingAccountBinding. Peça ao administrador do IAM da organização para conceder a você o papelorganization-billing-manager.
Receber o arquivo kubeconfig
Para executar comandos no servidor da API Management, verifique se você tem os seguintes recursos:
Faça login e gere o arquivo kubeconfig para o servidor da API Management se você não tiver um.
Use o caminho para o arquivo kubeconfig do servidor da API Management para substituir
MANAGEMENT_API_SERVER_KUBECONFIGnestas instruções.
Criar uma nova conta de faturamento
Uma conta de faturamento é identificada exclusivamente pelo name e pelo namespace. Para criar uma conta de faturamento, use um recurso personalizado para estabelecer o name e o namespace:
Crie um arquivo YAML e adicione o recurso personalizado
BillingAccounte o conteúdo a seguir: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 faturamento.
Por exemplo,
test-billing-account. - BIL_DISPLAY_NAME: o nome de exibição da conta de faturamento.
Por exemplo,
"Test Billing Account".
- BIL_ACCOUNT_NAME: o nome da conta de faturamento.
Por exemplo,
Verifique o tipo de configuração de pagamento. As contas de faturamento do Distributed Cloud precisam ter uma das seguintes configurações de pagamento:
cloudBillingConfig: a configuração de pagamento padrão. Essa configuração armazena um ID da conta do Cloud Billing.customConfig: uma configuração personalizada para que os parceiros armazenem a configuração de pagamento para faturar a organização.customConfigé compatível com um dicionário de strings de chave-valor, com uma chave obrigatóriapayment-config-type.
Os exemplos a seguir mostram snippets de arquivos YAML
BillingAccountpara diferentes configurações de pagamento:cloudBillingConfigspec: paymentSystemConfig: cloudBillingConfig: accountID: CLOUD_BILLING_ACCOUNT_IDSubstitua
CLOUD_BILLING_ACCOUNT_IDpelo ID da sua conta de faturamentoGoogle Cloud .customConfigspec: paymentSystemConfig: customConfig: "payment-config-type": PAYMENT_CONFIG_TYPESubstitua
PAYMENT_CONFIG_TYPEpelo tipo de configuração de pagamento escolhido para sua configuração de faturamento personalizada.Se você não tiver as informações da configuração
customConfigda sua organização, insira os seguintes detalhes:spec: paymentSystemConfig: customConfig: "payment-config-type": "N/A"O arquivo YAML a seguir mostra um recurso
BillingAccountcompleto com a configuraçãocloudBillingConfig: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"Salve o arquivo YAML. Execute a CLI
kubectlpara aplicar o recurso no servidor da API Management da organização ou do projeto específico que você quer faturar:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccount.yamlSubstitua
MANAGEMENT_API_SERVER_KUBECONFIGpelo arquivo kubeconfig do servidor da API Management.
Vincular uma organização ou um projeto a uma conta de faturamento
Esta seção fornece uma série de etapas para vincular uma organização ou um projeto a um
BillingAccount.
Vincular um projeto
Para vincular um projeto a um BillingAccount, faça o seguinte:
Adicione o seguinte conteúdo ao arquivo:
billingaccountbinding.yaml:- Na seção
billingAccountRef, preencha o camponamecom o conteúdo do camponamenoBillingAccountque você quer vincular. - Na seção
metadata, preencha o camponamespacecom o conteúdo do campo idêntico no recursoBillingAccount.
Neste exemplo, o namespace do projeto é PROJECT_NAME:
apiVersion: billing.gdc.goog/v1 kind: BillingAccountBinding metadata: name: billing namespace: PROJECT_NAME spec: billingAccountRef: name: BIL_ACCOUNT_NAME namespace: platformSubstitua
PROJECT_NAMEpelo nome do projeto vinculado à conta de faturamento.- Na seção
Execute o seguinte comando
kubectlpara aplicar o arquivobillingaccountbinding.yaml:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
Vincular uma organização
Para vincular uma organização a um BillingAccount, faça o seguinte:
Adicione o seguinte conteúdo ao arquivo YAML
billingaccountbinding.yaml:- Na seção
billingAccountRef, preencha o camponamecom o conteúdo do camponamenoBillingAccountque você quer vincular. - Na seção
metadata, preencha o camponamespacecom o conteúdo do campo idêntico no recursoBillingAccount. Neste exemplo, o namespace da organização éplatform:
apiVersion: billing.gdc.goog/v1 kind: BillingAccountBinding metadata: name: billing namespace: platform spec: billingAccountRef: name: BIL_ACCOUNT_NAME namespace: platform- Na seção
Execute o seguinte comando
kubectlpara aplicar o arquivobillingaccountbinding.yaml:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
Desvincular contas de faturamento de uma organização ou projeto
No Distributed Cloud, não é possível excluir uma conta de faturamento. Se você precisar mudar a configuração de faturamento, desvincule uma organização ou um projeto de uma conta de faturamento atual modificando o BillingAccountBinding. Alguns cenários para esse caso de uso incluem os seguintes exemplos:
- As regras de contabilidade da sua empresa exigem que você divida as cobranças associadas a cargas de trabalho de desenvolvedor e de produção em contas separadas.
- Você cria uma conta de faturamento para cobrar um contrato de cliente por um período de um ano. Quando o contrato expirar, você precisará cobrar pelo período restante que exceder um ano.
Para desvincular uma conta de faturamento de uma organização ou projeto, faça o seguinte:
Crie um novo
BillingAccountpara vincular ao projeto. Ela vai substituir a conta antiga.Localize o arquivo YAML do recurso
BillingAccountBindingno projeto ou namespaceplatforme modifique os seguintes campos:- Na seção
billingAccountRef, preencha o camponamecom um novo nome deBillingAccount.
- Na seção
O exemplo a seguir mostra um arquivo YAML BillingAccountBinding com a conta
expired-billing-account vinculada 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 a seguir mostra o arquivo YAML BillingAccountBinding do exemplo anterior modificado para vincular uma nova conta chamada 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