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çãoorganization-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çãoorganization-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çãoorganization-billing-manager
.
Obtenha o ficheiro kubeconfig
Para executar comandos no servidor da API Management, certifique-se de que tem os seguintes recursos:
Inicie sessão e gere o ficheiro kubeconfig para o servidor da API Management, se não tiver um.
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
:
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"
.
- BIL_ACCOUNT_NAME: o nome da conta de faturação.
Por exemplo,
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óriapayment-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 CloudcustomConfig
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
customConfig
configuraçã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çã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"
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.
Associe uma organização ou um projeto a uma conta de faturação
Esta secção fornece uma série de passos para associar uma organização ou um projeto a um
BillingAccount
.
Associe um projeto
Para associar um projeto a um BillingAccount
, faça o seguinte:
Adicione o seguinte conteúdo ao ficheiro:
billingaccountbinding.yaml
:- Na secção
billingAccountRef
, preencha o camponame
com o conteúdo do camponame
noBillingAccount
que quer associar. - Na secção
metadata
, preencha o camponamespace
com o conteúdo do campo idêntico no recursoBillingAccount
.
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.- Na secção
Execute o seguinte comando
kubectl
para aplicar o ficheirobillingaccountbinding.yaml
:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
Associe uma organização
Para associar uma organização a uma BillingAccount
, faça o seguinte:
Adicione o seguinte conteúdo ao ficheiro YAML
billingaccountbinding.yaml
:- Na secção
billingAccountRef
, preencha o camponame
com o conteúdo do camponame
noBillingAccount
que quer associar. - Na secção
metadata
, preencha o camponamespace
com o conteúdo do campo idêntico no recursoBillingAccount
. 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
- Na secção
Execute o seguinte comando
kubectl
para aplicar o ficheirobillingaccountbinding.yaml
:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
Desassocie contas de faturação de uma organização ou de um projeto
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:
Crie um novo
BillingAccount
para associar ao projeto. Esta conta vai substituir a conta antiga.Localize o ficheiro YAML do recurso
BillingAccountBinding
no projeto ou noplatform
espaço de nomes e modifique os seguintes campos:- Na secção
billingAccountRef
, preencha o camponame
com um novo nomeBillingAccount
.
- Na secção
O exemplo seguinte mostra um BillingAccountBinding
ficheiro 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