Configure notificações programáticas

Este documento explica como configurar notificações programáticas de anomalias de orçamento e custos (Pré-visualização) usando o Pub/Sub.

Normalmente, os orçamentos e as anomalias de custos são configurados para enviar notificações por email. Se usar orçamentos ou a deteção de anomalias de custos como ferramenta de controlo de custos, as notificações por email podem não ser o melhor método a usar para garantir uma ação atempada para controlar os seus custos. Pode configurar e usar notificações programáticas para automatizar respostas de controlo de custos. Alguns exemplos de respostas automáticas de controlo de custos:

Limitações

Autorizações necessárias para esta tarefa

Notificações de orçamento

Para configurar notificações de orçamento programáticas, precisa de autorizações para criar ou modificar orçamentos e tópicos do Pub/Sub. Precisa de um conjunto diferente de autorizações consoante o seu nível de acesso.

Utilizadores com autorizações da conta do Cloud Billing Utilizadores apenas com autorizações ao nível do projeto (Pré-visualização)

Se a sua organização usar funções personalizadas para autenticação, precisa das seguintes autorizações nas funções personalizadas:

Para que as funções personalizadas modifiquem um orçamento de faturação do Google Cloud existente para o associar a um tópico do Pub/Sub existente, precisa das seguintes autorizações:

Para obter as autorizações necessárias através de funções predefinidas, peça ao seu administrador para lhe conceder uma das seguintes funções de IAM do Google Cloud Billing predefinidas na sua conta do Google Cloud Billing:

Peça ao seu administrador para lhe conceder a seguinte função no projeto de destino que contém os tópicos do Pub/Sub:

Se a sua organização usar funções personalizadas para autenticação, precisa das seguintes autorizações nas funções personalizadas:

Para obter as autorizações necessárias através de funções predefinidas, peça ao seu administrador para lhe conceder uma das seguintes funções de IAM do Google Cloud Billing predefinidas no projeto:

Peça ao administrador para lhe conceder a seguinte função no projeto de destino que contém os tópicos do Pub/Sub:

Notificações de anomalias

Para configurar notificações de anomalias programáticas, precisa de autorizações para criar ou modificar anomalias e tópicos do Pub/Sub. Tem de ter autorizações da conta do Cloud Billing.

Utilizadores com autorizações da conta do Cloud Billing (pré-visualização)

Para obter as autorizações necessárias através de funções predefinidas, peça ao seu administrador para lhe conceder uma das seguintes funções de IAM do Google Cloud Billing predefinidas na sua conta do Google Cloud Billing:

Peça ao seu administrador para lhe conceder a seguinte função no projeto de destino que contém os tópicos do Pub/Sub:

Crie um tópico do Pub/Sub

Para configurar notificações programáticas de orçamento ou anomalias, primeiro tem de criar um tópico do Pub/Sub. Se já configurou um tópico do Pub/Sub para orçamentos ou anomalias de custos, pode ignorar este passo.

  1. Aceda à página Pub/Sub da Google Cloud consola.

    Inicie sessão na Google Cloud consola do Pub/Sub

  2. Selecione um projeto para conter o tópico do Pub/Sub.

    Ao configurar tópicos do Pub/Sub para notificações de faturação, recomendamos que use um projeto de administração do FinOps para conter os tópicos do Pub/Sub relacionados com a faturação.

  3. Clique em Criar tópico.

  4. No campo ID do tópico, indique um nome do tópico.

  5. Mantenha as definições de subscrição e encriptação predefinidas e clique em Criar.

Associe o seu tópico do Pub/Sub

Para ativar as notificações programáticas para receber mensagens do Pub/Sub com o estado atual do seu orçamento ou anomalia, tem de associar o orçamento ou a anomalia ao seu tópico do Pub/Sub.

Notificações de orçamento

Para associar um tópico do Pub/Sub a um orçamento do Cloud Billing, conclua os passos seguintes:

Utilizadores com autorizações da conta do Cloud Billing Utilizadores apenas com autorizações ao nível do projeto (Pré-visualização)
  1. Inicie sessão na página Orçamentos e alertas na Google Cloud consola.

    Abra Orçamentos e alertas
  2. Na mensagem, escolha a conta do Cloud Billing para a qual quer gerir orçamentos.

    A página Orçamentos e alertas abre-se para a conta de faturação selecionada.

  3. Selecione o orçamento que quer associar ou crie um novo orçamento.
  4. Na secção Ações, em Gerir notificações, selecione Associar um tópico do Pub/Sub a este orçamento.
  5. No campo Projeto, clique em Selecionar um projeto e escolha o projeto que contém os tópicos do Pub/Sub que configurou.
  6. Em Selecionar um tópico do Pub/Sub, selecione um tópico existente ou crie um novo tópico clicando em Criar um tópico.
    • Se criar um novo tópico, no campo ID do tópico, indique um nome para o tópico e clique em Criar tópico.
    • Depois de criar o tópico, este é selecionado automaticamente.
  7. Clique em Guardar.
  1. Inicie sessão no Google Cloud painel de controlo da consola e selecione um projeto.

    Abrir Google Cloud consola
  2. Selecione o projeto para o qual quer gerir orçamentos.
  3. Navegue até à secção Faturação: abra o Google Cloud menu de navegação e selecione Faturação.

    Se lhe for pedido que escolha a conta de faturação que quer ver e gerir, clique em Aceder à conta de faturação associada para ver a conta de faturação associada ao projeto selecionado.

    A página Vista geral da faturação abre-se na conta de faturação selecionada.

  4. Na secção Gestão de custos do menu de navegação de faturação, selecione Orçamentos e alertas.
  5. Selecione o orçamento que quer associar ou crie um novo orçamento.
  6. Na secção Ações, em Gerir notificações, selecione Associar um tópico do Pub/Sub a este orçamento.
  7. No campo Projeto, clique em Selecionar um projeto e escolha o projeto que contém os tópicos do Pub/Sub que configurou.
  8. Em Selecionar um tópico do Pub/Sub, selecione um tópico existente ou crie um novo tópico clicando em Criar um tópico.
    • Se criar um novo tópico, no campo ID do tópico, indique um nome para o tópico e clique em Criar tópico.
    • Depois de criado, o tópico é selecionado.
  9. Clique em Guardar.

Notificações de anomalias

Para associar um tópico do Pub/Sub a uma anomalia de custo, conclua os passos seguintes:

Utilizadores com autorizações da conta do Cloud Billing (pré-visualização)
  1. Inicie sessão na página Anomalias na Google Cloud consola.

    Abrir anomalias
  2. Na mensagem, escolha a conta do Cloud Billing para a qual quer gerir anomalias.

    A página Anomalias abre-se para a conta de faturação selecionada.

  3. Clique em Gerir anomalias.
  4. Introduza um valor de Limite de anomalia para Impacto no custo. Este valor é o valor limite que aciona as notificações. Se não fornecer um valor, o limite é definido como zero e são enviadas notificações para todas as anomalias.
  5. Na secção Notificações do Pub/Sub, selecione Associar um tópico do Pub/Sub para receber atualizações programáticas sobre anomalias.
  6. No menu pendente apresentado, selecione o tópico do Pub/Sub ao qual quer estabelecer ligação para receber notificações.
    • Os tópicos são apresentados por projeto. Pode ter de mudar o projeto que está a ver para encontrar o tópico que quer selecionar.
    • Se quiser criar um novo tópico, mude para o seu projeto preferido antes de clicar em Criar um tópico.
  7. Clique em Guardar.

Formato de notificação

As notificações enviadas para o tópico Pub/Sub são compostas por duas partes:

  • Atributos: um conjunto de pares de chave-valor que descrevem o evento.
  • Data: uma string que contém um objeto JSON que descreve os detalhes do alerta de orçamento.

Notificações de orçamento

Atributos

Os atributos são pares de chaves-valores contidos em todas as notificações enviadas pelo Cloud Billing para o seu tópico do Pub/Sub. As notificações contêm sempre o seguinte conjunto de pares de chave-valor, independentemente da carga útil da notificação.

Nome do atributo Exemplo Descrição
billingAccountId 01D4EE-079462-DFD6EC O identificador da conta do Cloud Billing proprietária do orçamento.
budgetId de72f49d-779b-4945-a127-4d6ce8def0bb O identificador do alerta de orçamento na conta do Cloud Billing.
schemaVersion 1.0 A versão do esquema de notificações.

Dados

Os detalhes do alerta de orçamento são devolvidos numa string UTF-8 codificada em base64 que contém um objeto JSON com as seguintes propriedades:

Dados Exemplo Descrição
budgetDisplayName "My Personal Budget" O nome legível atribuído ao orçamento.
costAmount 140.321 O valor dos custos acumulados. O tipo de custos monitorizados depende dos filtros e das definições de orçamento.
costIntervalStart "2021-02-01T08:00:00Z" O início do período de alerta de orçamento. `costAmount` inclui os custos de utilização a partir desta hora. Este é o primeiro dia do período do orçamento (mês, trimestre, ano ou um intervalo de datas personalizado) durante o qual ocorreu a utilização do orçamento.
budgetAmount 152.557 O valor atribuído no orçamento.
budgetAmountType "SPECIFIED_AMOUNT" O tipo de valor do orçamento. Pode ser um dos seguintes valores:
  • "SPECIFIED_AMOUNT": um valor fixo.
  • "LAST_MONTH_COST": custos totais incorridos durante o último mês civil.
  • "LAST_PERIODS_COST": os custos incorridos durante o último período civil não mensal, como um trimestre ou um ano.
alertThresholdExceeded 0.9 O limite de alerta de custo real configurado mais elevado foi excedido. O valor é uma percentagem no formato decimal (por exemplo, 0,9 é 90%). Esta chave não está presente se o custo real não exceder nenhum limite.
forecastThresholdExceeded 0.2 O limite de alerta de custo previsto mais elevado foi excedido. O valor é uma percentagem no formato decimal (por exemplo, 0,2 é 20%). Esta chave não está presente se o custo previsto não exceder nenhum limite.
currencyCode "USD" A moeda do alerta de orçamento. Todos os custos e valores de alerta de orçamento estão nesta moeda.

Notificações de anomalias

Atributos

Os atributos são pares chave-valor contidos em todas as notificações enviadas pela Faturação na nuvem para o seu tópico do Pub/Sub. As notificações contêm sempre o seguinte conjunto de pares de chave-valor, independentemente da carga útil da notificação.

Nome do atributo Exemplo Descrição
âmbito scope_project O âmbito da anomalia.
billingAccountName billingAccounts/01D4EE-079462-DFD6EC O identificador da conta do Cloud Billing onde ocorreu a anomalia.
resourceDisplayName My project O nome a apresentar do recurso no qual ocorreu a anomalia.
resourceName projects/123456 O identificador do recurso em que ocorreu a anomalia.
SchemaVersion 1.0 A versão do esquema do Pub/Sub.

Dados

Os detalhes do alerta de anomalia são devolvidos numa string UTF-8 codificada em base64 que contém um objeto JSON com as seguintes propriedades:

Dados Exemplo Descrição
anomalyName billingAccounts/01D4EE-079462-DFD6EC/anomalies/aaa O nome do recurso da anomalia.
billingAccountName billingAccounts/01D4EE-079462-DFD6EC O identificador da conta de faturação.
resourceName "projects/12345" O identificador do recurso em que ocorreu a anomalia.
resourceDisplayName "My project" O nome a apresentar do recurso no qual ocorreu a anomalia.
detectionDate "2024-02-01T08:00:00Z" A data em que a anomalia de custos foi detetada.
Scope SCOPE_PROJECT Indica o âmbito da anomalia.
expectedSpendAmount {
"currencyCode": "USD",
"units": "8",
"nanos": 988106832
}
Os gastos previstos para o recurso.
actualSpendAmount 196.22 Os gastos reais do recurso.
deviationAmount 31.01 A diferença entre os gastos reais e os gastos esperados.
deviationPercentage 18.77 A percentagem do valor de desvio da despesa esperada.
Root cause
root_causes {
resource: "services/XXX-XXXX-XXX"
display_name: "BigQuery"
cause_type: CAUSE_TYPE_SERVICE
deviation {
  expected_spend {
    currency_code: "USD"
    units: "5000"
  }
  actual_spend {
    currency_code: "USD"
    units: "5000"
  }
  deviation_amount {
    currency_code: "USD"
    units: "5000"
  }
  deviation_percentage: "Infinity"
}
sub_causes {
  resource: "locations/us-west1",
  display_name: "us-west1",
  cause_type: CAUSE_TYPE_LOCATION,
  deviation {
    expected_spend {
      currency_code: "USD",
    }
    actual_spend {
      currency_code: "USD",
      units:"5000"
    }
    deviation_amount {
      currency_code: "USD",
      units: "5000"
    }
    deviation_percentage: "Infinity"
  }
  sub_causes {
    resource: "services/XXXX-XXXX-XXXX/skus/XXXX-XXXX-XXXX"
    display_name: "Some display name"
    cause_type: CAUSE_TYPE_SKU
    deviation {
      expected_spend {
        currency_code: "USD"
      }
      actual_spend {
        currency_code: "USD"
        units: 5000
      }
      deviation_amount {
        currency_code: "USD"
        units: 5000
      }
      deviation_percentage: "Infinity"
    }
  }
  sub_causes {
    resource: "services/XXXX-XXXX-XXXX/skus/XXXX-XXXX-XXXX"
    display_name: "Some display name"
    cause_type: CAUSE_TYPE_SKU
    deviation {
      expected_spend {
        currency_code: "USD"
        units: "1"
        nanos: 5413077
      }
      actual_spend {
        currency_code: "USD"
        units: "1",
        nanos: 122606000
      }
      deviation_amount {
        currency_code: "USD"
        nanos: 117192923
      }
      deviation_percentage:11.656196419841217
    }
  }
}
}
Um campo repetido que contém informações sobre a causa principal da anomalia.

Garantias de entrega para notificações ao Pub/Sub

Depois de associar o orçamento ou a anomalia a um tópico do Pub/Sub, pode esperar receber notificações programáticas da seguinte forma:

Notificações de orçamento

  • As notificações de orçamento são enviadas para o tópico do Pub/Sub várias vezes por dia com o estado atual do seu orçamento. Esta cadência é diferente da cadência dos emails de alerta de orçamento, que só são enviados quando é atingido um limite de orçamento.
  • As notificações do Pub/Sub são enviadas mesmo que a conta do Cloud Billing não tenha utilização.
  • Pode demorar várias horas até receber a primeira notificação do Pub/Sub.
  • O Pub/Sub garante apenas a entrega pelo menos uma vez. Pode receber uma mensagem várias vezes e as mensagens podem chegar fora de ordem.
  • Se a entrega falhar devido a uma configuração incorreta do tópico do Pub/Sub, não recebe uma notificação.

A publicação pode falhar por um dos seguintes motivos:

Notificações de anomalias

  • As notificações de anomalias são enviadas para o tópico do Pub/Sub apenas quando o limite é atingido.
  • O Pub/Sub garante apenas uma entrega pelo menos uma vez. Pode receber uma mensagem várias vezes e as mensagens podem chegar fora de ordem.
  • Se a entrega falhar devido a uma configuração incorreta do tópico do Pub/Sub, não recebe uma notificação.

A publicação pode falhar por um dos seguintes motivos:

Para mais informações, consulte o artigo Publicar e receber mensagens no Pub/Sub.

O que se segue?

Para saber como pode usar notificações programáticas, reveja os seguintes exemplos de respostas de controlo de custos programáticas: