如何创建服务帐户,授予必要的权限,并使用网站服务器端的Azure计费API(使用率和价目表)?
我希望在内部信息中心上显示expected bill on 6/7/2018 is $123.45
,镜像Azure门户上的结算使用率图表中的数据。
https://github.com/Azure-Samples/billing-dotnet-usage-api和https://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使用情况详细信息?
答案 0 :(得分:1)
根据错误日志,您似乎没有为您的应用提供正确的订阅角色。您可以查看此link:Assign application to role。
注意:您可以为自己的应用提供Owner
个角色。
您还可以查看link:Authentication flow for native application to API。
此外,您还可以创建一个Web应用程序。但是您需要使用不同的方式来获取令牌,请查看不同的方法link。