Azure資源管理器是Azure的部署和管理服務(wù)。它提供了一個(gè)管理層,用于在Azure帳戶中創(chuàng)建、更新和刪除資源。部署后,可以使用訪問控制、鎖和標(biāo)記等管理功能來保護(hù)和組織資源。
若要了解Azure資源管理器模板,請(qǐng)參閱模板部署概述。
一致的管理層
當(dāng)用戶從任意Azure工具、API或SDK發(fā)送請(qǐng)求時(shí),資源管理器將會(huì)接收該請(qǐng)求。它會(huì)對(duì)該請(qǐng)求進(jìn)行身份驗(yàn)證和授權(quán)。資源管理器將請(qǐng)求發(fā)送到Azure服務(wù),后者將執(zhí)行請(qǐng)求的操作。由于所有請(qǐng)求是通過同一個(gè)API處理的,因此在所有不同的工具中會(huì)看到一致的結(jié)果和功能。
下圖演示了Azure資源管理器在處理Azure請(qǐng)求時(shí)發(fā)揮的作用。
Resource Manager請(qǐng)求模型
在門戶中提供的所有功能也可以通過PowerShell、Azure CLI、REST API和客戶端SDK來提供。最初通過API發(fā)布的功能將在初次發(fā)布后的180天內(nèi)在門戶中提供。
術(shù)語
如果不熟悉Azure資源管理器,則可能不熟悉某些術(shù)語。
資源-可通過Azure獲取的可管理項(xiàng)。資源的示例包括虛擬機(jī)、存儲(chǔ)帳戶、Web應(yīng)用、數(shù)據(jù)庫和虛擬網(wǎng)絡(luò)。資源組、訂閱、管理組和標(biāo)記也是資源的示例。
資源組—一個(gè)容器,用于保存Azure解決方案的相關(guān)資源。資源組包括你想要作為一個(gè)組進(jìn)行管理的那些資源。根據(jù)最適合組織的情況來決定哪些資源屬于哪個(gè)資源組。請(qǐng)參閱資源組。
資源提供程序-提供Azure資源的服務(wù)。例如,Microsoft.Compute就是一個(gè)常見的資源提供程序,它提供虛擬機(jī)資源。Microsoft.Storage是另一個(gè)常見的資源提供程序。請(qǐng)參閱資源提供程序和類型。
資源管理器模板-一個(gè)JavaScript對(duì)象表示法(JSON)文件,用于定義一個(gè)或多個(gè)要部署到資源組、訂閱、管理組或租戶的資源。使用模板能夠以一致方式反復(fù)部署資源。請(qǐng)參閱模板部署概述。
聲明性語法—一種語法,允許聲明“以下是我想要?jiǎng)?chuàng)建的項(xiàng)目”,而不需要編寫一系列編程命令來進(jìn)行創(chuàng)建。資源管理器模板便是聲明性語法的其中一個(gè)示例。在該文件中,可以定義要部署到Azure的基礎(chǔ)結(jié)構(gòu)的屬性。請(qǐng)參閱模板部署概述。
使用Resource Manager的優(yōu)勢(shì)
使用資源管理器可以:
通過聲明性模板而非腳本來管理基礎(chǔ)結(jié)構(gòu)。
以組的形式部署、管理和監(jiān)視解決方案的所有資源,而不是單獨(dú)處理這些資源。
在整個(gè)開發(fā)生命周期內(nèi)重復(fù)部署解決方案,并確保以一致的狀態(tài)部署資源。
定義各資源之間的依賴關(guān)系,使其按正確的順序進(jìn)行部署。
將訪問控制應(yīng)用于所有服務(wù),因?yàn)锳zure基于角色的訪問控制(Azure RBAC)原本已集成到管理平臺(tái)。
將標(biāo)記應(yīng)用到資源,以邏輯方式組織訂閱中的所有資源。
通過查看一組共享相同標(biāo)記的資源的成本來理清組織的帳單。
了解范圍
Azure提供四個(gè)級(jí)別的范圍:管理組、訂閱、資源組和資源。下圖顯示了這些層的一個(gè)示例。
管理級(jí)別
將在上述任何級(jí)別的作用域中應(yīng)用管理設(shè)置。所選的級(jí)別確定應(yīng)用設(shè)置的廣泛程度。較低級(jí)別繼承較高級(jí)別的設(shè)置。例如,將策略應(yīng)用于訂閱時(shí),該策略將應(yīng)用于訂閱中的所有資源組和資源。在資源組上應(yīng)用策略時(shí),該策略將應(yīng)用于資源組及其所有資源。但是,其他資源組沒有該策略分配。
可以將模板部署到租戶、管理組、訂閱或資源組。
資源組
定義資源組時(shí),需要考慮以下幾個(gè)重要因素:
資源組中的所有資源應(yīng)該具有相同的生命周期。一起部署、更新和刪除這些資源。如果某個(gè)資源(例如服務(wù)器)需要采用不同的部署周期,則它應(yīng)在另一個(gè)資源組中。
每個(gè)資源只能存在于一個(gè)資源組中。
隨時(shí)可以在資源組添加或刪除資源。
可以將資源從一個(gè)資源組移到另一個(gè)組。有關(guān)詳細(xì)信息,請(qǐng)參閱將資源移到新資源組或訂閱。
資源組中的資源可以位于與資源組不同的區(qū)域。
創(chuàng)建資源組時(shí),需要提供該資源組的位置。你可能想知道,“為什么資源組需要一個(gè)位置?另外,如果資源的位置和資源組不同,那為什么資源組的位置很重要呢?”資源組存儲(chǔ)有關(guān)資源的元數(shù)據(jù)。當(dāng)指定資源組的位置時(shí),也就指定了元數(shù)據(jù)的存儲(chǔ)位置。出于合規(guī)性原因,可能需要確保數(shù)據(jù)存儲(chǔ)在某一特定區(qū)域。
如果資源組的區(qū)域臨時(shí)不可用,則不能更新資源組中的資源,因?yàn)樵獢?shù)據(jù)不可用。其他區(qū)域中的資源仍將按預(yù)期運(yùn)行,但你無法更新它們。有關(guān)構(gòu)建可靠應(yīng)用程序的詳細(xì)信息,請(qǐng)參閱設(shè)計(jì)可靠的Azure應(yīng)用程序。
資源組可用于劃分對(duì)管理操作的訪問控制。若要管理資源組,可分配Azure策略、Azure角色或資源鎖。
可以對(duì)資源組應(yīng)用標(biāo)記。資源組中的資源不會(huì)繼承這些標(biāo)記。
資源可以連接到其他資源組中的資源。以下情況很常見:兩個(gè)資源相關(guān),但不具有相同的生命周期。例如,一個(gè)連接到其他資源組中數(shù)據(jù)庫的Web應(yīng)用。
刪除一個(gè)資源組時(shí),該資源組中的所有資源也會(huì)被刪除。如需了解Azure資源管理器如何編排這些刪除,請(qǐng)參閱Azure資源管理器資源組和資源刪除。
最多可在每個(gè)資源組中部署800個(gè)資源類型實(shí)例。某些資源類型不受800個(gè)實(shí)例限制的約束。
某些資源可能存在于資源組之外。這些資源將部署到訂閱、管理組或租戶。這些范圍僅支持特定的資源類型。
要?jiǎng)?chuàng)建資源組,可使用門戶、PowerShell、Azure CLI或Azure資源管理器(ARM)模板。
Azure資源管理器的復(fù)原能力
Azure資源管理器服務(wù)旨在實(shí)現(xiàn)復(fù)原能力和持續(xù)可用性。REST API中的資源管理器和控制平面操作(發(fā)送到management.azure.com的請(qǐng)求)具有以下特性:
跨區(qū)域分布。某些服務(wù)具有區(qū)域性。
在具有多個(gè)可用性區(qū)域的位置上跨可用性區(qū)域(以及區(qū)域)分布。
不依賴于單個(gè)邏輯數(shù)據(jù)中心。
從未因維護(hù)活動(dòng)而停機(jī)。
這種復(fù)原能力適用于通過資源管理器接收請(qǐng)求的服務(wù)。例如,Key Vault可以利用這種復(fù)原能力。