使用azure计费API/SDK显示azure成本分析数据

2024-09-27 21:31:08 发布

您现在位置:Python中文网/ 问答频道 /正文

在azureportal中,如果选择了一个订阅,可以像下面的屏幕截图一样查看成本分析

Azure Cost Analysis

我想以编程方式获取信息,就像上面显示的那样,可能使用一些pythonsdkapi/restapi。 如果有人对此有任何经验/想法,请帮忙。在

在浏览了回复之后,我已经了解了Azure计费restapi,现在我可以调用使用情况agrggate和RateCard相关的restapi。在

下面是这些REST调用的结果。Azure Billing Usage Aggregate Response

Azure Billing Ratecard Response

但老实说,我还没有弄清楚这些是如何给我一个详细的视图,就像成本分析那样,每种资源的关联成本是多少显示出来了。实际上我对Azure很陌生可能这就是为什么我在某些地方缺少链接。在

有人能给点提示吗?在


Tags: restapi屏幕response编程方式情况经验azure
3条回答

下面是使用pythonsdk或Python中的restapi检索账单数据的官方文档。在

  1. 有关使用Python SDK的信息,请参见http://azure-sdk-for-python.readthedocs.io/en/latest/resourcemanagementcommerce.html。在
  2. 关于使用Billingrestapi,请参见https://docs.microsoft.com/en-us/rest/api/billing/,您可以尝试使用Python包requests来获取这些数据。在

但是,我想您可能已经知道了以上这些,关键是您需要遵循教程^{}通过您的帐户管理员获得角色权限。在

然后,如果您想在Python SDK中使用服务主体/ADAL(而不是AD User/Password),或者使用restapi执行与Azure REST API Referencepage所说的相同的身份验证,则可能还需要注册一个客户端应用程序来获取Resource Management Authentication的客户机id。对于身份验证主题,如果遇到问题,可以参考Manage Apps的内容映射以了解更多信息。在

希望有帮助。有任何问题,请随时告诉我。在

如果您已经有了使用情况和费率卡数据,则必须将它们合并。取下使用数据表,获取相关的费率卡数据。费率卡数据包含您必须携带的仪表和包含的数量。可能有多个电表费率和包含的数量,因为每次使用可能有不同的成本(例如,前10个电话免费,3 GB免费,…)。消费在每月14号开始/重置。这就是为什么你必须读取整个账单周期(从每月14号开始)的数据,因为这是你获得正确消费的唯一途径。在

因此,如果您正在使用例如Azure功能,并且您每天的使用量为100000台,并且您希望成本从20日到30日不等,那么计算如下: 从14号到30号读取数据。这是17天,因此它使用了170.000个单位。 前400.000是免费的=包括数量(因此在本示例中的前4天)。从400.001单位起,您必须采用电表费率(00000134928欧元)并计算成本。130.000*00000134928=约17.54欧元。幸运的是,azure函数只有一个速率。如果费率发生变化,例如在5000000个单位之后,您还必须考虑到这一点。 如果你有全部的费用,那么你可以过滤你的日期是20-30。你会得到结果的。在

这是计算的简短解释。我用C实现了这个计算,并将其作为NuGet包发布。源代码在github上-可能有帮助。它还包含一个示例控制台,可用于导出数据。在

我也有同样的问题。但不幸的是,pythonsdk太难使用了。在

此外,在Google上找不到可用的示例或示例。在

因此,我选择使用restapi而不是pythonsdk。在

使用python代码,您可以先执行此操作

import requests
from azure.common.credentials import ServicePrincipalCredentials

并设置标题pyload和url。在

^{pr2}$

您可以通过凭据获取令牌,该凭据由客户机_id、secret、tenant生成。 凭证.token()将返回可在标头中使用的令牌。在

您可以在https://docs.microsoft.com/en-us/rest/api/中找到restapi,或者在Chrome中使用F12来访问Azure仪表板。在

相关问题 更多 >

    热门问题