Google Cloud Billing API, получить стоимость за текущий месяц - PullRequest
1 голос
/ 10 февраля 2020

В настоящее время я создаю админ-панель, используя flask, для онлайн-сервиса, работающего на GKE.

Я хочу показать, насколько велика сумма счета, начисленного сервисом с начала месяц. Я посмотрел на API Google Cloud для выставления счетов, но это кровавые джунгли, и я никак не могу найти способ получить нужные мне данные.

Я предполагаю, что это возможно, но я не могу разберись как. Может ли кто-нибудь более опытный с Google Cloud API помочь мне, желательно с python фрагментами кода?

Я посмотрел ответы в этом посте , но не мог понять, как использовать их.

1 Ответ

2 голосов
/ 10 февраля 2020

Официальная документация:

Начало работы с API Cloud Billing Budget API

Настройка API Cloud Billing Budget

Использование API бюджета облачного биллинга

Клиентские библиотеки бюджета облачного биллинга

Использование API бюджета облачного биллинга для:

Создайте отдельный бюджет для каждого из ваших проектов Google Cloud, чтобы вы знали, какие области вашей среды Google Cloud тратят больше, чем ожидалось.

Массовое обновление всех ваших бюджетов после квартального финансового планирования.

Интеграция с менеджером развертывания вашей компании, чтобы добавить создание бюджетов в ваш рабочий процесс облачной подготовки.

  1. Создать проект
  2. Включить биллинг
  3. Включить API (API Cloud Budget, API Cloud Billing Budget)
  4. Создание бюджета, Бюджет и оповещения, Создание бюджета, Область действия, Сумма (расходы за последний месяц), Действия
  5. Настройка аутентификации (создайте учетную запись службы, предоставьте учетной записи службы роль администратора учетной записи для выставления счетов, загрузите ключ. json, установите переменную env export GOOGLE_APPLICATION_CREDENTIALS = "[PATH]"
  6. Использовать клиентскую библиотеку Клиент для облачного биллинга API бюджета

    from google.cloud import billing_budgets_v1beta1
    client = billing_budgets_v1beta1.BudgetServiceClient()
    
    #get all the budgets
    parent = client.billing_account_path([BILLING_ACCOUNT])
    for element in client.list_budgets(parent):
       print(element)
       pass
    
    #for a specific budget
    name = client.budget_path('[BILLING_ACCOUNT]', '[BUDGET]')
    response = client.get_budget(name)
    
    #The output should be in the form 
    
    display_name: "billing-budget"
    budget_filter {
    projects: "projects/"
    credit_types_treatment: 
    }
    amount {
    last_period_amount {
    }
    }
    threshold_rules {
    threshold_percent: 0.5
    spend_basis: CURRENT_SPEND
    }
    threshold_rules {
    threshold_percent: 0.9
    spend_basis: CURRENT_SPEND
    }
    threshold_rules {
    threshold_percent: 1.0
    spend_basis: CURRENT_SPEND
    }
    all_updates_rule {
    }
    etag: "" ```
    

РЕДАКТИРОВАТЬ:

Я проверил команду gcloud alpha billing и вижу только параметры:

    1. accounts(describe, get-iam-policy, list, projects(describe, link, list, unlink))

    2. budgets(create, delete, describe, list, update) 

    3. projects(describe, link, list, unlink). These are the API that you can call. 

Нет API для получения текущих расходов, насколько я понимаю. Вы можете экспортировать биллинг в BigQuery или в файл (это устарело) и провести анализ.

...