Как измерить использование клиентского API и пропускной способности (магазина) в Google Cloud Platform?

У меня есть приложение, которое использует мой собственный API (функции Google Cloud) и собственное хранилище (есть изображения).

Теперь у меня есть несколько клиентов, которые хотят использовать мой API и мое хранилище (Google Cloud Bucket).

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

Я пытаюсь определить многоуровневую модель ценообразования, в которой цена зависит от двух вещей:

  1. Количество вызовов API,
  2. Пропускная способность облачного хранилища

Это означает, что я хочу установить некоторые цены в зависимости от затрат, которые они потребляют в моей учетной записи Google Cloud.

Приведу пример: если клиент выполняет от 1 до 500 000 вызовов API, я обменяю их на 10 долларов. Между 500.001 и 1.000.000 я возьму 18 долларов и т. Д. И т. Д.

То же самое и с пропускной способностью облачного хранилища, если они потребляют от 0 до 10 ГБ, это будет стоить 10 долларов. Если они потребляют от 10 до 100 ГБ, это будет стоить 18 долларов и т. Д. И т. Д.

Как я могу это сделать с помощью Google Cloud? Как я могу узнать, сколько потребляют мои клиенты? И есть ли способ поделиться с ними этой информацией, чтобы они могли отслеживать использование каждый день?

Я думаю, что измерение использования API не будет НАСТОЛЬКО сложным, потому что я могу просто сохранять значение в БД каждый раз, когда пользователь вызывает API, но если есть способ избежать этого, будет хорошо, из-за to Google Cloud будет взимать с меня плату за это действие записи в БД (которое я использую для отслеживания использования API).

С другой стороны, для измерения облачного хранилища я думал примерно так:

Предположим, у меня есть общедоступная корзина с фотографиями в URL: buckets.google.com/photos. Если мой клиент хочет получить /cats/ugly-cat.jpg фотографию, я могу попросить его вызвать A FUNCTION в /api/get-photo/?url=/cats/ugly-cat.jpg, чтобы в этой функции a можно было отслеживать, что пользователь просто получает фотографию, а затем я перенаправляю вызов на реальный URL-адрес, по которому пользователь собирается увидеть фото (buckets.google.com/photos/cats/ugly-cat.jpg). Как видите, эта идея кажется слишком производительной, поскольку она будет взимать плату за использование функции, запись в БД, а также за использование полосы пропускания хранилища. И даже этот способ не отслеживает пропускную способность. Он отслеживает только количество фотографий, которые клиент хочет показать.

Как видите, обе идеи немного некрасивые, с плохой производительностью. Должно быть уже что-то сделано, чтобы сделать его красивым.

Очевидно, что вызов API (а также ссылка на фото) может иметь клиентский API-KEY, чтобы помочь измерить использование. Что-то типа:

  • functions.google.com/api/search-photos/?api-key=111 и
  • bucket.google.com/photos/cats/ugly-cat.jpg?api-key=111

Где 111 идентифицирует клиента 111.

Итак, вопрос: знаете ли вы, есть ли «самый известный» способ измерить эти обычаи?


person Broda Noel    schedule 11.06.2019    source источник


Ответы (1)


Я думаю, что Cloud Endpoints - лучшее решение для вас, потому что управление ваш API, как вы предлагаете, может быстро стать громоздким.

Конечные точки предоставляют все инструменты для управления аутентификацией, управление квотами и расходами и портал для разработчиков, чтобы ваши пользователи могли получить доступ к документации и взаимодействовать с вашим API. . Он также интегрируется со всеми продуктами Cloud Platform, включая Облачные функции.

person Corinne White    schedule 12.06.2019