Как установить ограничение стоимости в консоли разработчиков Google
Некоторые функции в консоли разработчиков Google, такие как Google Analytics API, бесплатны, пока вы не достигнете квоты. Другие функции, такие как Google Cloud Storage, создают затраты с первого клика.
Когда я загружаю файл в https://console.developers.google.com/ > Storage > Cloud Storage > Storage Browser
и я делаю этот файл общедоступным, я плачу около 0,12 доллара за ГБ трафика.
Но теоретически трафик на эту ссылку может взорваться, например, из-за внезапной популярности. Поэтому я хотел бы установить что-то вроде дневного или месячного предела стоимости.
Вопрос: Как защитить себя от чрезмерно высоких затрат в консоли разработчиков Google?
7 ответов
По состоянию на июль 2017 года теперь вы можете устанавливать бюджеты, которые ограничивают общие расходы, и отправлять уведомления по электронной почте.
- Перейдите в консоль облачной платформы.
- Откройте левое боковое меню консоли и нажмите Billing
- Если у вас более одной платежной учетной записи, щелкните имя платежной учетной записи.
- Слева щелкните Бюджеты и оповещения.
Официальная страница справки: 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. Он включает в себя следующую настройку:
- Создайте облачную функцию, которая сравнивает стоимость с бюджетом и выполняет определенное действие, если стоимость превышает бюджет. Документация Google содержит пример фрагмента кода, который может либо отключить все экземпляры виртуальных машин в проекте, либо отключить биллинг для проекта. Завершение работы всех виртуальных машин остановит все расходы, связанные с виртуальными машинами, но вы сохраните свои данные (и все равно придется платить за хранилище). Отключение биллинга для проекта приведет к эффективному сокращению всех операций, связанных с затратами, и вы можете потерять данные. Вы можете назвать облачную функцию "ограничитель бюджета".
- У фрагмента кода Google, как указано выше, есть жестко закодированная переменная ZONE. Не забудьте изменить его в соответствии с вашей зоной!
- Создайте учетную запись службы для запуска облачной функции "ограничитель бюджета". Для выключения виртуальных машин служебной учетной записи потребуется роль "Compute Instance Admin (v1)". Для отключения биллинга в проекте учетной записи службы потребуется роль "Менеджер биллинга проекта".
- Установите тему для облачной функции (я называю мои "proj-name-stop-vm" и "proj-name-disable-bill").
- Установите оповещение о бюджете, как обычно, и подключите его к одному из разделов Pub/Sub выше.
Обратите внимание, что в документации Google упоминается, что может быть задержка между превышением стоимости бюджета и срабатыванием функции, поэтому вам следует создать буфер, если у вас есть абсолютное ограничение жестких затрат. Я использую 90% бюджета в качестве триггерной линии для закрытия моих экземпляров.
Использование API может быть ограничено жестким ограничением:
В зависимости от API, вы можете явно ограничивать запросы различными способами, включая: запросы в день, запросы в 100 секунд и запросы в 100 секунд на пользователя. Возможно, вы захотите ограничить оплачиваемое использование, установив ограничения. Например, чтобы избежать выставления счетов за использование сверх пределов бесплатного вежливости, вы можете устанавливать количество запросов в день.
Вы можете комбинировать оповещения о бюджете публикации / подписки с облачной функцией, которая может отключить выставление счетов для всей вашей учетной записи, если будет достигнут порог.
Полное руководство здесь: 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