У меня есть приложение, которое использует мой собственный API (функции Google Cloud) и собственное хранилище (есть изображения).
Теперь у меня есть несколько клиентов, которые хотят использовать мой API и мое хранилище (Google Cloud Bucket).
Облачное хранилище - это корзина, содержащая много фотографий с общедоступным доступом для чтения.
Я пытаюсь определить многоуровневую модель ценообразования, в которой цена зависит от двух вещей:
- Количество вызовов API,
- Пропускная способность облачного хранилища
Это означает, что я хочу установить некоторые цены в зависимости от затрат, которые они потребляют в моей учетной записи 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
.
Итак, вопрос: знаете ли вы, есть ли «самый известный» способ измерить эти обычаи?