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

Python 使用azure计费API/SDK显示azure成本分析数据,python,azure,azure-billing-api,azure-sdk,azure-sdk-python,Python,Azure,Azure Billing Api,Azure Sdk,Azure Sdk Python,在Azure portal中,如果选择了一个订阅,则可以像下面的屏幕截图一样查看成本分析 我希望以编程方式获取信息,就像上面显示的信息一样,可能正在使用一些pythonsdkapi/restapi。 如果有人对此有任何经验/想法,请帮助 在浏览了回复之后,我已经浏览了Azure Billing Rest API,现在我可以调用Usage Agrgate和RateCard相关的Rest API 以下是这些REST调用的结果 但老实说,我还没有弄清楚如何像成本分析那样为我提供详细的视图,每个资源

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

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

在浏览了回复之后,我已经浏览了Azure Billing Rest API,现在我可以调用Usage Agrgate和RateCard相关的Rest API

以下是这些REST调用的结果

但老实说,我还没有弄清楚如何像成本分析那样为我提供详细的视图,每个资源的相关成本可以显示在哪里。实际上,我对Azure非常陌生,这可能就是我在某些地方缺少链接的原因


有人能给点提示吗?

下面有一些官方文档,用于使用Python SDK或Python中的REST API检索账单数据

  • 有关使用Python SDK的信息,请参阅
  • 要使用
    计费
    REST API,请参阅,您可以尝试使用Python包
    请求
    来获取这些数据
  • 然而,我想你可能已经知道以上这些,关键是你需要按照教程通过你的帐户管理员获得角色权限

    如果您想在Python SDK中使用服务主体/ADAL(而不是AD用户/密码),或者使用REST API执行与page所述相同的身份验证,那么您可能还需要注册一个客户端应用程序来获取客户端id。对于身份验证主题,如果遇到一些问题,可以参考的内容图了解更多信息


    希望能有帮助。如有任何问题,请随时通知我。

    如果您已经拥有使用情况和费率卡数据,则必须将它们合并。从使用数据中提取meterId并获取相关的费率卡数据。费率卡数据包含您必须采取的费率和包含的数量。可能有多个电表费率和包含的数量,因为每次使用可能有不同的成本(例如,前10次免费呼叫,3 GB免费呼叫,…)。消耗在本月14日开始/重置。这就是为什么您必须读取整个计费周期(从每月14日开始)的数据的原因,因为这是获得正确消费的唯一方法

    因此,如果您正在使用Azure功能,并且您每天的使用量为100.000个单位,并且您希望从20日到30日支付成本,那么计算如下: 从14号到30号读取数据。这是17天,因此它使用了1700000个单位。 前400.000是免费的=包含数量(因此在本示例中,前4天为免费)。从400.001单位开始,您必须采用电表费率(00000134928欧元)并计算成本。1.300.000 * 0,0000134928 = ~17,54€. 幸运的是,azure函数只有一个速率。如果费率发生变化(例如,在5.000.000个单位之后),则您还必须考虑到这一点。 如果你有全部成本,那么你可以在你的日期20-30过滤。你会得到结果的

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

    • 资料来源:
    • 博文:

      • 我也有同样的问题。但不幸的是,python SDK太难使用了

        此外,您在谷歌上找不到可用的样本或示例

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

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

        import requests
        from azure.common.credentials import ServicePrincipalCredentials
        
        并设置标题pyload和url

         headers = {
             "Content-Type": "application/json",
             "Authorization": <token> }
        
        标题={
        “内容类型”:“应用程序/json”,
        “授权”:
        
        您可以通过凭据获取令牌,凭据由客户端id、secret和租户生成。 credentials.token()将返回可在标头中使用的令牌


        访问Azure dashboard时,您可以在Chrome中找到restapi或使用F12。

        现在作为SDK计费,无需请求:)。仅供参考。最后请注意,这是插入CLI中的。如果使用CLI cmdlet获得所需的功能,这意味着您可以在Python SDK中获得相同的结果。在我在使用率聚合和费率卡上使用Azure Billing REST API取得一些进展后,编辑了我的初始问题。但仍有疑问。根据有关使用率聚合和费率卡API将如何提供详细视图的任何输入更新了初始问题,就像成本分析一样资源可以显示多少相关成本?请让我知道。嘿,这是个好消息。你能告诉我你从哪里得到关于如何计算不同电表费率的信息吗?我查了一下文件,但找不到。如果你能分享你的消息来源那就太好了。谢谢。我想没有文件。当我写代码时,我自己发现了。我检查了API和从API获得的数据。API概述包含一个简短的信息,您需要将ratecard和使用API数据结合起来,因此我考虑了什么对我有意义,并以这种方式实现了它。我把结果和账单核对了一遍,结果相符。我能提供的唯一链接是:这有助于解释如何使用Azure API进行身份验证,但它没有回答问题(如何以编程方式获取成本/账单数据)。@PaulJ您可以在web上找到成本/账单数据,并在Chorme中通过F12查看成本URL。然后,在Azure的API Explorer中找到URL,并使用Python请求获取成本/账单数据一旦我们拥有凭证,我们就可以通过Python请求调用Azure中的任何API。Python SDK基本上通过REST请求获取信息。使用Python SDK,只需使用
        az login
        登录,然后通过
        get_client_from_cli_profile(参考资料)获取客户机即可