我有一个使用我自己的API(Google云功能)和我自己的存储(有图片)的应用。
现在,我有几个客户端,它们想使用我的API和我的存储(Google Cloud Bucket)。
Cloud Storage是一个存储桶,其中包含很多具有公共读取访问权限的照片。
我正在尝试定义一种分层定价模型,其中价格取决于两件事:
意思是,我想针对他们在我的Google Cloud帐户中消耗的费用设置一些定价。
举个例子: 如果客户执行1到500.000个API调用,我将向他们更改10美元。在500.001到1.000.000之间,我会收取18美元,等等,等等。
与云存储带宽相同,如果它们消耗0GM到10GB之间的空间,则将花费10美元。如果他们消耗10GB至100GB,则要花18美元,等等,等等。
我该如何使用Google Cloud?我如何知道客户的消费方式?并有一种与他们共享该信息的方法,以便他们能够每天监控使用情况吗?
我认为衡量API使用情况不会那么困难,因为每次用户调用API时我都可以在数据库中保存一个值,但是如果有避免的方法,将会很好,因为Google Cloud将向我收取数据库写操作(我用来跟踪API使用情况)的费用。
另一方面,为了衡量云存储,我在想这样的事情:
假设我有一个公共桶,其中的URL中包含照片:buckets.google.com/photos。
如果我的客户想要获取/cats/ugly-cat.jpg
的照片,我可以要求他们在/api/get-photo/?url=/cats/ugly-cat.jpg
中调用A FUNCTION,因此该功能中可以跟踪用户刚刚得到的照片,然后我将其重定向调用用户要在其中查看照片的真实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
的地方。
那么,问题是:您是否知道是否有一种“最知名”的方法来衡量这些使用情况?
答案 0 :(得分:0)
我认为Cloud Endpoints是最适合您的解决方案,因为按照您的建议管理API可能会很快变得笨拙。
端点提供了用于控制authentication,quota and cost management的所有工具和开发人员门户,以便您的用户可以访问文档并与您的API进行交互。它还与包括Cloud Functions在内的所有Cloud Platform产品集成。