Azure云管場(chǎng)景下的RESTAPI實(shí)戰(zhàn)

來源: Azure上云直升機(jī)
作者:鮑積超
時(shí)間:2021-09-14
17583
隨著云計(jì)算的普及,在企業(yè)中使用多家云供應(yīng)商的場(chǎng)景已經(jīng)非常普遍,而多云的管理給企業(yè)帶來的全新的挑戰(zhàn),大部分的企業(yè)需要借助云管平臺(tái)實(shí)現(xiàn)多云的管理。

 隨著云計(jì)算的普及,在企業(yè)中使用多家云供應(yīng)商的場(chǎng)景已經(jīng)非常普遍,而多云的管理給企業(yè)帶來的全新的挑戰(zhàn),大部分的企業(yè)需要借助云管平臺(tái)實(shí)現(xiàn)多云的管理。

      微軟云作為國(guó)際化云供應(yīng)商,為廣大企業(yè)和合作伙伴提供了安全和功能豐富的接口實(shí)現(xiàn)云管平臺(tái)的開發(fā)和配置,借助這些接口可以實(shí)現(xiàn)價(jià)格的獲取,消耗的獲取和預(yù)測(cè),已經(jīng)服務(wù)的增、刪、改、查等操作。


No.Azure 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é)果:

微信圖片_20210914154524.png

No.2身份標(biāo)識(shí)

在介紹下一個(gè)API前,需要先了解一下微軟身份標(biāo)識(shí)。Microsoft 標(biāo)識(shí)平臺(tái)可以為用戶在構(gòu)建應(yīng)用程序時(shí)提供集成身份驗(yàn)證和授權(quán),并提供對(duì)你的的授權(quán)訪問。而在云中,企業(yè)需要一個(gè)集中的身份驗(yàn)證和授權(quán)的平臺(tái),這個(gè)平臺(tái)就是Azure Active Directory(Azure AD)。


在Azure AD中有兩個(gè)作為身份標(biāo)識(shí)的對(duì)象,他們分別是Application Object 和 Service Principal Object。


應(yīng)用程序?qū)ο螅ˋpplication Object)定義與軟件一對(duì)一對(duì)應(yīng)的關(guān)系,服務(wù)如何發(fā)出令牌來訪問應(yīng)用程序、應(yīng)用程序可能需要訪問的資源以及應(yīng)用程序可以執(zhí)行的操作。


服務(wù)主體對(duì)象(Service Principal Object)是Azure AD定義的安全訪問受保護(hù)資源的安全主體對(duì)象,在訪問受保護(hù)資源時(shí),需要對(duì)應(yīng)用程序進(jìn)行身份驗(yàn)證,在訪問資源時(shí)進(jìn)行授權(quán)。


所以在我們的應(yīng)用程序(例如,云管平臺(tái))希望管理到Azure里面受保護(hù)的資源的時(shí)候,就必須借助Azure AD的身份標(biāo)識(shí)平臺(tái)對(duì)其進(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 請(qǐng)求的 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 create-for-rbac獲得所需要的appid, password, tenant。默認(rèn)獲得contributor權(quán)限。


第二步,根據(jù)我們服務(wù)主體的權(quán)限獲得access_token。用于對(duì)客戶端進(jìn)行身份驗(yàn)證和獲取訪問令牌的兩個(gè) Azure AD 終結(jié)點(diǎn)稱為 OAuth2 /authorize 和 /token 終結(jié)點(diǎn)。

第三步,訪問所需要的資源,微軟按照服務(wù)提供全面的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查看消耗


當(dāng)我們創(chuàng)建所需要的服務(wù)以后,接下來用戶就需要對(duì)服務(wù)產(chǎn)生的費(fèi)用進(jìn)行查看了。最早微軟的消耗賬單情況只能通過EA門戶查看,這對(duì)于賬單管理員來說權(quán)限可能過大。微軟目前將用量嵌入到我們通常使用的管理門戶中,這樣我們就可以通過服務(wù)主體的方式獲得賬單使用情況。


通過Consumption Rest API,用戶可以查詢到關(guān)于合同里面消耗的一切信息。比如下面顯示的,虛擬機(jī)在某一天消耗的時(shí)間,費(fèi)用,單價(jià)和預(yù)留實(shí)例情況等信息。


https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?api-version=2019-10-01

微信圖片_20210914154643.png

與此同時(shí),Rest API也能幫助企業(yè)對(duì)用量進(jìn)行預(yù)測(cè)。

https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Consumption/forecasts?api-version=2019-10-01

微信圖片_20210914154706.png

No.5Manage Subscription


Azure為了更用戶統(tǒng)一的體驗(yàn),逐漸將以前EA門戶的功能,例如創(chuàng)建和管理訂閱,查看賬單等功能逐漸集成的管理門戶中,同時(shí)為了身份的安全性,Rest API也可以支持通過服務(wù)主體對(duì)訂閱進(jìn)行管理和創(chuàng)建。所以,目前我們可以通過兩種方法對(duì)訂閱進(jìn)行管理。


1. 通過獲得ID Token對(duì)訂閱進(jìn)行管理,官方不建議使用此方法。

2.  獲得Access Token對(duì)訂閱進(jìn)行管理。


我們演示通過Access Token對(duì)訂閱進(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}?api-version=2019-10-01-preview


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并不會(huì)在EA門戶中顯示,只有作為帳戶所有者的用戶才能將 SubscriptionCreator 角色分配給 SPN。它通過編程方式創(chuàng)建,僅供編程使用。


"type": "Microsoft.Billing/billingRoleAssignments"


4. 創(chuàng)建訂閱


PUT  https://management.azure.com/providers/Microsoft.Subscription/aliases/sampleAlias?api-version=2020-09-01


Body中輸入


返回成功結(jié)果:

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于Azure上云直升機(jī),本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
Azure Arc為企業(yè)構(gòu)建安全的云基礎(chǔ)
Azure Arc為企業(yè)構(gòu)建安全的云基礎(chǔ)
隨著人工智能技術(shù)持續(xù)重塑企業(yè)運(yùn)營(yíng)方式,企業(yè)需要能夠處理海量數(shù)據(jù)的系統(tǒng),以支持實(shí)時(shí)洞察,同時(shí)幫助他們應(yīng)對(duì)跨IT和OT環(huán)境(包括云端、邊緣和本地)中運(yùn)營(yíng)、應(yīng)用、數(shù)據(jù)和基礎(chǔ)設(shè)施的協(xié)作難題。
Azure
微軟云
云服務(wù)
2024-12-172024-12-17
釋放.NET 9和Azure的AI技術(shù)與云計(jì)算潛力:更快、更智能、面向未來
釋放.NET 9和Azure的AI技術(shù)與云計(jì)算潛力:更快、更智能、面向未來
.NET 9現(xiàn)已正式發(fā)布,它為.NET平臺(tái)的發(fā)展掀開了嶄新的一頁,突破了性能、云原生開發(fā)和AI技術(shù)集成的邊界。
Azure
微軟云
云服務(wù)
2024-12-162024-12-16
Azure網(wǎng)絡(luò)管理現(xiàn)已具備智能Microsoft Copilot副駕駛能力
Azure網(wǎng)絡(luò)管理現(xiàn)已具備智能Microsoft Copilot副駕駛能力
智能Microsoft Copilot副駕駛for Azure網(wǎng)絡(luò)服務(wù)現(xiàn)已推出公共預(yù)覽版。
Azure
微軟云
云服務(wù)
2024-12-102024-12-10
Microsoft Fabric功能更新,借助AI驅(qū)動(dòng)的數(shù)據(jù)平臺(tái)加速應(yīng)用創(chuàng)新
Microsoft Fabric功能更新,借助AI驅(qū)動(dòng)的數(shù)據(jù)平臺(tái)加速應(yīng)用創(chuàng)新
一年前,我們正式推出了一款端到端數(shù)據(jù)平臺(tái),旨在幫助組織推動(dòng)人工智能轉(zhuǎn)型,并重新定義數(shù)據(jù)的連接、管理和分析方式。
Azure
微軟云
云服務(wù)
2024-12-092024-12-09
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家