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.
BillingAccountPeç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_KUBECONFIGnestas 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
BillingAccounte 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.customConfigsuporta 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:
BillingAccountcloudBillingConfigspec: paymentSystemConfig: cloudBillingConfig: accountID: CLOUD_BILLING_ACCOUNT_IDSubstitua
CLOUD_BILLING_ACCOUNT_IDpelo ID da sua conta de faturação.Google CloudcustomConfigspec: paymentSystemConfig: customConfig: "payment-config-type": PAYMENT_CONFIG_TYPESubstitua
PAYMENT_CONFIG_TYPEpelo 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
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"Guarde o ficheiro YAML. Execute a CLI
kubectlpara 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.yamlSubstitua
MANAGEMENT_API_SERVER_KUBECONFIGpelo 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 camponamecom o conteúdo do camponamenoBillingAccountque quer associar. - Na secção
metadata, preencha o camponamespacecom 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: platformSubstitua
PROJECT_NAMEpelo nome do projeto associado à conta de faturação.- Na secção
Execute o seguinte comando
kubectlpara 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 camponamecom o conteúdo do camponamenoBillingAccountque quer associar. - Na secção
metadata, preencha o camponamespacecom 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
kubectlpara 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
BillingAccountpara associar ao projeto. Esta conta vai substituir a conta antiga.Localize o ficheiro YAML do recurso
BillingAccountBindingno projeto ou noplatformespaço de nomes e modifique os seguintes campos:- Na secção
billingAccountRef, preencha o camponamecom um novo nomeBillingAccount.
- Na secção
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