Azure云管場景下的RESTAPI實(shí)戰(zhàn),azure云入門Azure云管場景下的RESTAPI實(shí)戰(zhàn)隨著云計(jì)算的普及,在企業(yè)中使用多家云供應(yīng)商的場景已經(jīng)非常普遍,而多云的管理給企業(yè)帶來的全新的挑戰(zhàn),大部分的企業(yè)需要借助云管平臺實(shí)現(xiàn)多云的管理。 微軟云作為國際化云供應(yīng)商,為廣大企業(yè)和合作伙伴提供了安全和功能豐富的接口實(shí)......
隨著云計(jì)算的普及,在企業(yè)中使用多家云供應(yīng)商的場景已經(jīng)非常普遍,而多云的管理給企業(yè)帶來的全新的挑戰(zhàn),大部分的企業(yè)需要借助云管平臺實(shí)現(xiàn)多云的管理。
微軟云作為國際化云供應(yīng)商,為廣大企業(yè)和合作伙伴提供了安全和功能豐富的接口實(shí)現(xiàn)云管平臺的開發(fā)和配置,借助這些接口可以實(shí)現(xiàn)價(jià)格的獲取,消耗的獲取和預(yù)測,已經(jīng)服務(wù)的增、刪、改、查等操作。
No.1Azure Retail API
Azure 客戶一直在尋找一種以編程方式檢索所有 Azure 服務(wù)的零售價(jià)格,可以使用零售費(fèi)率價(jià)格 API 來獲取所有 Azure 服務(wù)的零售價(jià)格。
終結(jié)點(diǎn):
https://prices.azure.com/api/retail/prices
實(shí)例:
https://prices.azure.com/api/retail/prices $filter=serviceName eq Virtual Machines and armRegionName eq southeastasia and armSkuName eq Standard_D2ds_v4
結(jié)果:
No.2身份標(biāo)識
在介紹下一個(gè)API前,需要先了解一下微軟身份標(biāo)識。Microsoft 標(biāo)識平臺可以為用戶在構(gòu)建應(yīng)用程序時(shí)提供集成身份驗(yàn)證和授權(quán),并提供對你的的授權(quán)訪問。而在云中,企業(yè)需要一個(gè)集中的身份驗(yàn)證和授權(quán)的平臺,這個(gè)平臺就是Azure Active Directory(Azure AD)。
在Azure AD中有兩個(gè)作為身份標(biāo)識的對象,他們分別是Application Object 和 Service Principal Object。
應(yīng)用程序?qū)ο螅ˋpplication Object)定義與軟件一對一對應(yīng)的關(guān)系,服務(wù)如何發(fā)出令牌來訪問應(yīng)用程序、應(yīng)用程序可能需要訪問的資源以及應(yīng)用程序可以執(zhí)行的操作。
服務(wù)主體對象(Service Principal Object)是Azure AD定義的安全訪問受保護(hù)資源的安全主體對象,在訪問受保護(hù)資源時(shí),需要對應(yīng)用程序進(jìn)行身份驗(yàn)證,在訪問資源時(shí)進(jìn)行授權(quán)。
所以在我們的應(yīng)用程序(例如,云管平臺)希望管理到Azure里面受保護(hù)的資源的時(shí)候,就必須借助Azure AD的身份標(biāo)識平臺對其進(jìn)行身份驗(yàn)證和授權(quán)的操作。
No.3Azure Rest API
大多數(shù) Azure 服務(wù)(例如 Azure 資源管理器提供程序和經(jīng)典部署模型)要求客戶端代碼使用有效憑據(jù)進(jìn)行身份驗(yàn)證,然后才能調(diào)用服務(wù)的 API。身份驗(yàn)證由 Azure AD 在各個(gè)參與者之間協(xié)調(diào),并為您的客戶端提供Access Token作為身份驗(yàn)證的證明。然后將Token發(fā)國際快遞后續(xù) REST API 請求的 HTTP 授權(quán)標(biāo)頭中的 Azure 服務(wù)。
我們需要?jiǎng)?chuàng)建服務(wù)主體(Service Principal),通過Azure AD完成身份的驗(yàn)證和授權(quán)后方可通過Azure Rest API獲得訪問資源的權(quán)限。通過az ad sp createforrbac獲得所需要的appid, password, tenant。默認(rèn)獲得contributor權(quán)限。
第二步,根據(jù)我們服務(wù)主體的權(quán)限獲得access_token。用于對客戶端進(jìn)行身份驗(yàn)證和獲取訪問令牌的兩個(gè) Azure AD 終結(jié)點(diǎn)稱為 OAuth2 /authorize 和 /token 終結(jié)點(diǎn)。
第三步,訪問所需要的資源,微軟按照服務(wù)提供全面的API文檔,供客戶參考使用。
https://docs.microsoft.com/enus/rest/api/azure/
https://management.azure.com/
subscriptions/{subscriptionId}/
resourcegroups/
{resourceGroupName}
?apiversion=20210401
No.4查看消耗
當(dāng)我們創(chuàng)建所需要的服務(wù)以后,接下來用戶就需要對服務(wù)產(chǎn)生的費(fèi)用進(jìn)行查看了。最早微軟的消耗賬單情況只能通過EA門戶查看,這對于賬單管理員來說權(quán)限可能過大。微軟目前將用量嵌入到我們通常使用的管理門戶中,這樣我們就可以通過服務(wù)主體的方式獲得賬單使用情況。
通過Consumption Rest API,用戶可以查詢到關(guān)于合同里面消耗的一切信息。比如下面顯示的,虛擬機(jī)在某一天消耗的時(shí)間,費(fèi)用,單價(jià)和預(yù)留實(shí)例情況等信息。
https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?apiversion=20191001
與此同時(shí),Rest API也能幫助企業(yè)對用量進(jìn)行預(yù)測。
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Consumption/forecasts?apiversion=20191001
No.5Manage Subscription
Azure為了更用戶統(tǒng)一的體驗(yàn),逐漸將以前EA門戶的功能,例如創(chuàng)建和管理訂閱,查看賬單等功能逐漸集成的管理門戶中,同時(shí)為了身份的安全性,Rest API也可以支持通過服務(wù)主體對訂閱進(jìn)行管理和創(chuàng)建。所以,目前我們可以通過兩種方法對訂閱進(jìn)行管理。
1. 通過獲得ID Token對訂閱進(jìn)行管理,官方不建議使用此方法。
2. 獲得Access Token對訂閱進(jìn)行管理。
我們演示通過Access Token對訂閱進(jìn)行管理:
1. 創(chuàng)建服務(wù)主體。步驟略
2. 獲得Bill ID和 Enrollment ID;
必須是Account Owner才能GET到Bill Account ID和Enrollment Account ID。
3. 為服務(wù)主體賦予EA權(quán)限(Subscription Creator),從而可以獲得創(chuàng)建訂閱的權(quán)限;
PUT
https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{billingAccountName}/enrollmentAccounts/{enrollmentAccountName}/billingRoleAssignments/{billingRoleAssignmentName}?apiversion=20191001preview
Billing Account Name 和 Enrollment Account Name從上部獲得。Bill Role Assignment Name可以通過Powershell 創(chuàng)建出GUID。
在Body中需要填寫,Service Principal Object ID和Tenant ID,而在billingRoleDefinitions填寫SubscriptionCreator ID,這個(gè)SubscriptionCreator并不會在EA門戶中顯示,只有作為帳戶所有者的用戶才能將 SubscriptionCreator 角色分配給 SPN。它通過編程方式創(chuàng)建,僅供編程使用。
type:Microsoft.Billing/billingRoleAssignments4. 創(chuàng)建訂閱
PUT https://management.azure.com/providers/Microsoft.Subscription/aliases/sampleAlias?apiversion=20200901
Body中輸入
返回成功結(jié)果:
特別聲明:以上文章內(nèi)容僅代表作者本人觀點(diǎn),不代表ESG跨境電商觀點(diǎn)或立場。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號密碼登錄
平臺顧問
微信掃一掃
馬上聯(lián)系在線顧問
小程序
ESG跨境小程序
手機(jī)入駐更便捷
返回頂部