TG客服:@SSjiejie — 官方频道:@SSwangluo
三生网络 © 2009-2023 超15年出海经验,跨境项目专家
随着云计算的普及,在企业中使用多家云供应商的场景已经非常普遍,而多云的管理给企业带来的全新的挑战,大部分的企业需要借助云管平台实现多云的管理。
微软云作为国际化云供应商,为广大企业和合作伙伴提供了安全和功能丰富的接口实现云管平台的开发和配置,借助这些接口可以实现价格的获取,消耗的获取和预测,已经服务的增、删、改、查等操作。
No.1 Azure Retail API
Azure 客户一直在寻找一种以编程方式检索所有 Azure 服务的零售价格,可以使用零售费率价格 API 来获取所有 Azure 服务的零售价格。
终结点:
https://prices.azure.com/api/retail/prices
实例:
https://prices.azure.com/api/retail/prices?$filter=serviceName eq "Virtual Machines" and armRegionName eq "southeastasia" and armSkuName eq "Standard_D2ds_v4"
结果:
No.2身份标识
在介绍下一个API前,需要先了解一下微软身份标识。Microsoft 标识平台可以为用户在构建应用程序时提供集成身份验证和授权,并提供对你的的授权访问。而在云中,企业需要一个集中的身份验证和授权的平台,这个平台就是Azure Active Directory(Azure AD)。
在Azure AD中有两个作为身份标识的对象,他们分别是Application Object 和 Service Principal Object。
应用程序对象(Application Object)定义与软件一对一对应的关系,服务如何发出令牌来访问应用程序、应用程序可能需要访问的资源以及应用程序可以执行的操作。
服务主体对象(Service Principal Object)是Azure AD定义的安全访问受保护资源的安全主体对象,在访问受保护资源时,需要对应用程序进行身份验证,在访问资源时进行授权。
所以在我们的应用程序(例如,云管平台)希望管理到Azure里面受保护的资源的时候,就必须借助Azure AD的身份标识平台对其进行身份验证和授权的操作。
No.3Azure Rest API
大多数 Azure 服务(例如 Azure 资源管理器提供程序和经典部署模型)要求客户端代码使用有效凭据进行身份验证,然后才能调用服务的 API。身份验证由 Azure AD 在各个参与者之间协调,并为您的客户端提供Access Token作为身份验证的证明。然后将Token发送到后续 REST API 请求的 HTTP 授权标头中的 Azure 服务。
我们需要创建服务主体(Service Principal),通过Azure AD完成身份的验证和授权后方可通过Azure Rest API获得访问资源的权限。通过az ad sp create-for-rbac获得所需要的appid, password, tenant。默认获得contributor权限。
第二步,根据我们服务主体的权限获得access_token。用于对客户端进行身份验证和获取访问令牌的两个 Azure AD 终结点称为 OAuth2 /authorize 和 /token 终结点。
第三步,访问所需要的资源,微软按照服务提供全面的API文档,供客户参考使用。
https://docs.microsoft.com/en-us/rest/api/azure/
https://management.azure.com/
subscriptions/{subscriptionId}/
resourcegroups/
{resourceGroupName}
?api-version=2021-04-01
No.4查看消耗
当我们创建所需要的服务以后,接下来用户就需要对服务产生的费用进行查看了。最早微软的消耗账单情况只能通过EA门户查看,这对于账单管理员来说权限可能过大。微软目前将用量嵌入到我们通常使用的管理门户中,这样我们就可以通过服务主体的方式获得账单使用情况。
通过Consumption Rest API,用户可以查询到关于合同里面消耗的一切信息。比如下面显示的,虚拟机在某一天消耗的时间,费用,单价和预留实例情况等信息。
https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?api-version=2019-10-01
与此同时,Rest API也能帮助企业对用量进行预测。
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Consumption/forecasts?api-version=2019-10-01
No.5Manage Subscription
Azure为了更用户统一的体验,逐渐将以前EA门户的功能,例如创建和管理订阅,查看账单等功能逐渐集成的管理门户中,同时为了身份的安全性,Rest API也可以支持通过服务主体对订阅进行管理和创建。所以,目前我们可以通过两种方法对订阅进行管理。
1. 通过获得ID Token对订阅进行管理,官方不建议使用此方法。
2. 获得Access Token对订阅进行管理。
我们演示通过Access Token对订阅进行管理:
1. 创建服务主体。步骤略
2. 获得Bill ID和 Enrollment ID;
必须是Account Owner才能GET到Bill Account ID和Enrollment Account ID。
3. 为服务主体赋予EA权限(Subscription Creator),从而可以获得创建订阅的权限;
PUT
https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/enrollmentAccounts/{enrollmentAccountName}/billingRoleAssignments/{billingRoleAssignmentName}?api-version=2019-10-01-preview
Billing Account Name 和 Enrollment Account Name从上部获得。Bill Role Assignment Name可以通过Powershell 创建出GUID。
在Body中需要填写,Service Principal Object ID和Tenant ID,而在billingRoleDefinitions填写SubscriptionCreator ID,这个SubscriptionCreator并不会在EA门户中显示,只有作为帐户所有者的用户才能将 SubscriptionCreator 角色分配给 SPN。它通过编程方式创建,仅供编程使用。
"type": "Microsoft.Billing/billingRoleAssignments"
4. 创建订阅
PUT https://management.azure.com/providers/Microsoft.Subscription/aliases/sampleAlias?api-version=2020-09-01
Body中输入
返回成功结果:
TG客服:@SSjiejie — 官方频道:@SSwangluo
三生网络 © 2009-2023 超15年出海经验,跨境项目专家