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_KUBECONFIG
nestas 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
BillingAccount
e 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
BillingAccount
para diferentes configurações de pagamento:cloudBillingConfig
spec: paymentSystemConfig: cloudBillingConfig: accountID: CLOUD_BILLING_ACCOUNT_ID
Substitua
CLOUD_BILLING_ACCOUNT_ID
pelo ID da sua conta de faturamentoGoogle Cloud .customConfig
spec: paymentSystemConfig: customConfig: "payment-config-type": PAYMENT_CONFIG_TYPE
Substitua
PAYMENT_CONFIG_TYPE
pelo 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
customConfig
da sua organização, insira os seguintes detalhes:spec: paymentSystemConfig: customConfig: "payment-config-type": "N/A"
O arquivo YAML a seguir mostra um recurso
BillingAccount
completo 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
kubectl
para 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.yaml
Substitua
MANAGEMENT_API_SERVER_KUBECONFIG
pelo 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 camponame
com o conteúdo do camponame
noBillingAccount
que você quer vincular. - Na seção
metadata
, preencha o camponamespace
com 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: platform
Substitua
PROJECT_NAME
pelo nome do projeto vinculado à conta de faturamento.- Na seção
Execute o seguinte comando
kubectl
para 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 camponame
com o conteúdo do camponame
noBillingAccount
que você quer vincular. - Na seção
metadata
, preencha o camponamespace
com 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
kubectl
para 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
BillingAccount
para vincular ao projeto. Ela vai substituir a conta antiga.Localize o arquivo YAML do recurso
BillingAccountBinding
no projeto ou namespaceplatform
e modifique os seguintes campos:- Na seção
billingAccountRef
, preencha o camponame
com 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