首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从政府云中访问RateCard API

从政府云中访问RateCard API
EN

Stack Overflow用户
提问于 2018-03-14 21:53:51
回答 2查看 367关注 0票数 0

在试图访问政府云中的RateCard信息时,usgovvirgia地区,并在github:https://github.com/Azure-Samples/billing-dotnet-usage-api上工作。

GitHub示例引发未处理的异常: AADSTS65005 (参见下面的链接)

这里提到了这个错误,但是在重新处理过程中引用的部分时,我还没有找到纠正这个错误的方法,并且强烈怀疑这个问题是由于美国Gov中的差异造成的。(有关门户中的应用程序设置,请参见下图)。

我的RegisteredApp:

RateCardHM,appId/clientID: XXXXXXXX-4ba0-47a3-811e-ca0b0b74118a ->必需的权限->(委托- NoApplicationPermissionsAvailable)作为组织用户访问Azure服务管理(预览)

RequiresAdmin: No {"AADSTS65005:无效资源“。客户端请求访问未在客户端应用程序注册中请求的权限中列出的资源。客户端应用ID: XXXXXXXX-XXXX-47a3-811 e-ca0b0b74118a。请求中的资源值:https://management.usgovcloudapi.net/。资源应用ID: 40a69793-8fe6-4db1-9591-dbc5c57b17d8。应用程序注册的有效资源列表: 797f4846-ba00-4fd7-ba43-dac1f8f63013,00000002-0000-0000-c000-000000000000。跟踪ID: 6c1f3716-12ca-489e-b183-99cb6f730300相关ID: 57dbf637-8e01-42f2-873c-4723f1814254时间戳: 2018-03-14 18:43:33Z"}

既然对于usgovvirginia可能没有“2字母ISO代码”,那么应该使用什么呢?

https://msdn.microsoft.com/en-us/library/azure/mt219004.aspx表示:

·将{RegionInfo}设置为购买报价的2个字母的ISO代码。与usgovvirginia地区和解。

代码语言:javascript
复制
<appSettings>
    <add key="ADALServiceURL" value="https://login.microsoftonline.us"/>           
    <add key="ADALRedirectURL" value="http://localhost"/>                          
    <add key="ARMBillingServiceURL" value="https://management.usgovcloudapi.net"/>
    <add key="TenantDomain" value="XXXXX.onmicrosoft.com"/>                        
    <add key="SubscriptionID" value="XXXXXXXX-1293-4060-a2ed-0da3db612bcc"/>       
    <add key="ClientId" value="XXXXXXXX-4ba0-47a3-811e-ca0b0b74118a"/>             
    <add key="RegionInfo" value="usgovvirginia"/> <!-- WHAT to use here? --> 
</appSettings> 

我更希望能够访问PowerShell,但让C#示例应用程序工作可能就足够了,而且肯定是一个好的开始。

更新如下(更多信息):

使用PowerShell AzureRM (作为我自己)登录后的Microsoft.Commerce和RateCard API的“位置”为空:

代码语言:javascript
复制
(Get-AzureRmResourceProvider -ListAvailable | ? ProviderNamespace -eq Microsoft.Commerce)
# Outputs with LOCATION 'empty':
ProviderNamespace : Microsoft.Commerce
RegistrationState : Registered
ResourceTypes     : {UsageAggregates, RateCard, operations}
Locations         : {}

(Get-AzureRmResourceProvider -ListAvailable | ? ProviderNamespace -eq Microsoft.Commerce).ResourceTypes | ? ResourceTypeName -eq RateCard
# Outputs with LOCATION 'empty' also:
ResourceTypeName : RateCard
Locations        : {}
ApiVersions      : {2016-08-31-preview, 2015-06-01-preview, 2015-05-15}

--可能这意味着美国政府云没有在任何地区提供这些API??

下面的图像显示了应用程序被添加为Reader的警告:

EN

回答 2

Stack Overflow用户

发布于 2018-03-15 16:54:38

首先,您需要确保在政府订阅中确实支持收费API。在互联网上,我似乎找不到关于可支持性的官方参考资料。你最好在这里问一下,https://azure.microsoft.com/en-us/global-infrastructure/government/contact/

如果它是支持的,通常您需要添加您注册到政府订阅的客户端应用程序。

在“访问控制”刀片下,单击“添加”。在角色下选择Reader(以防您只需要获得信息而不作任何更改)。在“选择”下,您可以查找客户端应用程序名称(与客户端ID相关联的应用程序名称),还可以复制客户端ID并粘贴到此字段。

如果没有适当的许可,您的注册客户端应用程序将无法通过REST向您的政府资源读取计费信息。

P/S:如果您想要显式控制访问,也有一个名为计费阅读器的角色。

票数 1
EN

Stack Overflow用户

发布于 2018-03-17 02:30:04

Microsoft现在已经证实,访问RateCard API在企业帐户(也不是在CSP帐户中)中是不可用的。

https://learn.microsoft.com/en-us/azure/billing/billing-usage-rate-card-overview#azure-resource-ratecard-api-preview

Azure资源RateCard API (预览)

  • 使用API获取可用的Azure资源列表和每个资源的估计价格信息。该API包括:基于Azure角色的访问控制-在Azure门户上或通过Azure PowerShell cmdlet配置您的访问策略,以指定哪些用户或应用程序可以访问RateCard数据。调用方必须使用标准的Azure Active令牌进行身份验证。将调用方添加到Reader、Owner或Contributor角色,以访问特定Azure订阅的使用数据。
  • 支持随付酬,货币承诺和货币信贷优惠(EA和CSP不支持)这个API提供Azure提供级别的价格信息。此API的调用方必须传递提供信息,以获取资源详细信息和费率。我们目前无法提供EA费率,因为EA提供的每个注册都有定制的费率。

感谢所有想帮忙的人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49288225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档