Как установить ограничение стоимости в консоли разработчиков Google

Некоторые функции в консоли разработчиков Google, такие как Google Analytics API, бесплатны, пока вы не достигнете квоты. Другие функции, такие как Google Cloud Storage, создают затраты с первого клика.

Когда я загружаю файл в https://console.developers.google.com/ > Storage > Cloud Storage > Storage Browser и я делаю этот файл общедоступным, я плачу около 0,12 доллара за ГБ трафика.

Но теоретически трафик на эту ссылку может взорваться, например, из-за внезапной популярности. Поэтому я хотел бы установить что-то вроде дневного или месячного предела стоимости.

Вопрос: Как защитить себя от чрезмерно высоких затрат в консоли разработчиков Google?

7 ответов

Решение

По состоянию на июль 2017 года теперь вы можете устанавливать бюджеты, которые ограничивают общие расходы, и отправлять уведомления по электронной почте.

  1. Перейдите в консоль облачной платформы.
  2. Откройте левое боковое меню консоли и нажмите Billing
  3. Если у вас более одной платежной учетной записи, щелкните имя платежной учетной записи.
  4. Слева щелкните Бюджеты и оповещения.

Официальная страница справки: https://support.google.com/cloud/answer/6293540?hl=en

Ты не можешь. Я спросил Google об этом, вот их ответ от 7 мая 2016 года:

(GCE = облачный движок Google. Нет ограничений по расходам.
GAE = движок приложения Google - да, у него есть ограничения по расходам.)

... вы имеете право на поддержку... только...
... [различные полезные ссылки] ...

Тем не менее, на данный момент нет функции, позволяющей настроить ограниченный бюджет на GCE. Эта функция, безусловно, доступна для GAE [1]. Как вы упомянули в своих комментариях, вы можете либо полностью отключить свои виртуальные машины (будет зависеть от вашего варианта использования), либо настроить виртуальные машины для отправки вам оповещений, если они достигнут определенного ограничения трафика [2].

С уважением,

Чье-то имя
Представитель по техническим решениям
Google Cloud Platform

[1] https://cloud.google.com/appengine/docs/quotas
[2] https://cloud.google.com/monitoring/support/notification-options

@wmdry, вы писали: "трафик на эту ссылку может взорваться" - я тоже этого боюсь. Вот почему я спросил Google об этом. И я планирую избежать CDN Google из-за этого, и вместо этого использовать другого поставщика CDN, у которого есть ограничения расходов. Потому что, в отличие от Nginx, я не вижу способа для меня ограничивать / ограничивать CDN Google.

Я планирую использовать GCE (Google Cloud Engine), хотя. Поэтому сейчас я читаю о том, как ограничить скорость моего сервера Nginx. Потому что, если я просто настрою Nginx правильно, то те $0,12 / ГБ, о которых вы упомянули, не смогут взорваться до... вроде $10k в месяц? Что делать, если Google отправит счет в 10 тысяч долларов, когда я вернусь после нескольких недель каникул, просто из-за моего хобби-проекта и нескольких человек, загружающих фильм размером 1 МБ снова и снова навсегда (потому что: зло). Хм, и чем больше и быстрее мои серверы, тем выше риск.

Я надеюсь, что Google добавит лимиты расходов, потому что я действительно хотел использовать CDN Google.

Я обнаружил, что документация Google теперь предоставляет два метода, чтобы фактически ограничить стоимость проекта GCP. Он включает в себя следующую настройку:

  1. Создайте облачную функцию, которая сравнивает стоимость с бюджетом и выполняет определенное действие, если стоимость превышает бюджет. Документация Google содержит пример фрагмента кода, который может либо отключить все экземпляры виртуальных машин в проекте, либо отключить биллинг для проекта. Завершение работы всех виртуальных машин остановит все расходы, связанные с виртуальными машинами, но вы сохраните свои данные (и все равно придется платить за хранилище). Отключение биллинга для проекта приведет к эффективному сокращению всех операций, связанных с затратами, и вы можете потерять данные. Вы можете назвать облачную функцию "ограничитель бюджета".
  2. У фрагмента кода Google, как указано выше, есть жестко закодированная переменная ZONE. Не забудьте изменить его в соответствии с вашей зоной!
  3. Создайте учетную запись службы для запуска облачной функции "ограничитель бюджета". Для выключения виртуальных машин служебной учетной записи потребуется роль "Compute Instance Admin (v1)". Для отключения биллинга в проекте учетной записи службы потребуется роль "Менеджер биллинга проекта".
  4. Установите тему для облачной функции (я называю мои "proj-name-stop-vm" и "proj-name-disable-bill").
  5. Установите оповещение о бюджете, как обычно, и подключите его к одному из разделов Pub/Sub выше.

Обратите внимание, что в документации Google упоминается, что может быть задержка между превышением стоимости бюджета и срабатыванием функции, поэтому вам следует создать буфер, если у вас есть абсолютное ограничение жестких затрат. Я использую 90% бюджета в качестве триггерной линии для закрытия моих экземпляров.

Использование API может быть ограничено жестким ограничением:

В зависимости от API, вы можете явно ограничивать запросы различными способами, включая: запросы в день, запросы в 100 секунд и запросы в 100 секунд на пользователя. Возможно, вы захотите ограничить оплачиваемое использование, установив ограничения. Например, чтобы избежать выставления счетов за использование сверх пределов бесплатного вежливости, вы можете устанавливать количество запросов в день.

От: https://cloud.google.com/apis/docs/capping-api-usage

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

Полное руководство здесь: https://www.youtube.com/watch?v=KiTg8RPpGG4

Репозиторий GitHub здесь: https://github.com/aioverlords/Google-Cloud-Platform-Killswitch

Чтобы отключить биллинг

      const _disableBillingForProject = async projectName => {
const res = await billing.updateBillingInfo({
    name: projectName,
    resource: {
        billingAccountName: ''
    }, // Disable billing
});
console.log(res);
console.log("Billing Disabled");
return `Billing disabled: ${JSON.stringify(res.data)}`;
};

Просто зайдите в консоль разработчика:

https://console.developers.google.com/project

  • Выберите свой проект.
  • Выберите "Биллингс и настройки"
  • Включить биллинг.

Затем перейдите в Compute/AppEngine/Settings и установите ежедневный бюджет.

Перейдите в консоль Google Cloud, а затем в Billing / Budgets and Alerts и создайте новый бюджет для одного или всех ваших проектов. Вы можете выбрать, какие услуги должны быть включены в лимит, и установить ежемесячную сумму, которую нельзя превышать.

https:https://stackru.com/images/eb23737ff323d3de1e7f299f5e76446b0f879701.png

Другие вопросы по тегам