如何使用Web应用程序中的Azure Billing API?

时间:2018-02-25 04:33:35

标签: azure azure-management-api

如何创建服务帐户,授予必要的权限,并使用网站服务器端的Azure计费API(使用率和价目表)?

我希望在内部信息中心上显示expected bill on 6/7/2018 is $123.45,镜像Azure门户上的结算使用率图表中的数据。

https://github.com/Azure-Samples/billing-dotnet-usage-apihttps://github.com/Azure-Samples/billing-dotnet-ratecard-api是所有帖子引用的示例。每个设置都参考了旧的Azure门户,设置说明做出了我不理解的假设。我没有找到有关使用结算API的最新设置说明。在我的所有实验中,我都收到了OAuth令牌,但在调用实际API时收到了401 Unauthorized个响应。 (显然我不应该在这个问题中加入我的指导。)

示例确定在创建应用时,我必须选择“本机应用”,但Scott Allen notes“本机应用”需要实时OAuthed用户,但我的用户无权使用Azure门户,因此我必须使用配置的设置进行预身份验证。他推荐“Web apps / API”。

样本在所需权限中含糊不清。他们注意到我应该“确保示例应用程序将具有访问Windows Azure服务管理API的权限”,但是从新门户网站,我找不到Windows Azure服务管理API或任何其他听起来像计费管理的权限。 / p>

在门户网站中制作AAD应用程序时,以及在启动https://github.com/Azure-Samples/billing-dotnet-usage-api/blob/master/ConsoleApp-Billing-Usage/ConsoleProj/Program.cs时,每个引用的设置,例如“客户端ID”和“DirectoryId”在不同位置的命名方式不同。虽然我对我的测绘猜测很有信心,但样本对我来说不起作用,所以我有信心我做错了。

我甚至尝试在https://management.azure.com/subscriptions/{subscription-Id}/providers/Microsoft.Commerce/UsageAggregates?api-version={api-version}&reportedStartTime={dateTimeOffset-value}&reportedEndTime={dateTimeOffset-value}&aggregationGranularity={granularity-value}&showDetails={showdetail-boolean-Value}&continuationToken={token-value}传递OAuth令牌时直接向REST端点发出请求,但没有成功。

我在这里做错了什么?如何使用预配置的身份验证和订阅设置配置AAD应用程序以使用结算API在网页上显示Azure使用情况详细信息?

1 个答案:

答案 0 :(得分:1)

根据错误日志,您似乎没有为您的应用提供正确的订阅角色。您可以查看此link:Assign application to role

enter image description here

注意:您可以为自己的应用提供Owner个角色。

您还可以查看link:Authentication flow for native application to API

此外,您还可以创建一个Web应用程序。但是您需要使用不同的方式来获取令牌,请查看不同的方法link