在 Azure DevTest Labs 中設定共用映像庫
DevTest Labs 支援使用 Azure 計算資源庫儲存和共用映像。 共用映像庫可讓您輕鬆地維護大量的受控映像,並使其廣泛可用。 它也是為您的使用者提供目前軟體的標準化影像的絕佳方式。 支援特製化和一般化映像。 藉由使用共用映像庫,您可以建置自定義受控虛擬機 (VM) 映射的結構和組織。
本文說明如何將共用映像庫附加至您的實驗室。 用戶可以在建立實驗室 VM 時,從共用位置存取映像。 這種方法的主要優點是 DevTest Labs 可讓您跨實驗室、跨訂用帳戶和跨區域共用 VM 映射。
探索共用映像庫
搭配 DevTest Labs 使用共用映像庫的一些優點包括:
- 管理映像的全域複寫
- 套用映像的版本設定和群組,以方便管理
- 在支援可用性區域的區域中,使用區域備援記憶體 (ZRS) 帳戶存取高可用性映射,以針對區域性失敗提供更好的復原能力
- 使用角色型訪問控制在訂用帳戶之間和租用戶之間共用映像
使用共享資源庫時,請記住下列考慮:
- 您一次只能將一個共用映像庫附加至實驗室。 若要附加不同的資源庫,您必須先卸離目前的資源庫。
- 您只能透過 DevTest Labs 從連結庫選取映像。 您無法透過 DevTest Labs 上傳影像或變更資源庫中的影像。
- 當您從共用映像建立 VM 時,DevTest Labs 會在鏈接的資源庫中使用最新發佈的映射版本。 如果映射有多個版本,您可以在 VM 建立期間,於 [進階設定] 下選擇舊版。
- DevTest Labs 會嘗試將連結庫中的所有映像復寫至實驗室區域。 有時候,無法進行復寫。 若要避免從映像建立 VM 時發生問題的使用者,請確定連結庫中的映射完全復寫到實驗室區域。
若要瞭解使用共用映像庫相關聯的成本,請參閱 Azure 計算資源庫的計費。
從 Azure 入口網站 附加資源庫
請遵循下列步驟,將共用映像庫附加至您的 DevTest Labs 資源:
在 Azure 入口網站 中,移至您想要連結共用映像庫的 DevTest Labs 資源。
在您實驗室的 [概觀] 頁面上,展開左側功能表中的 [設定] 區段,然後選取 [設定與原則]。
在 [ 設定和原則] 畫面上,展開 左側功能表中的 [虛擬機基底 ] 區段,然後選取 [ 共用映射庫]:
選取 [附加 ] 以將現有的共用映射庫新增至實驗室。
在 [ 附加現有的資源庫 ] 下拉式清單中,選取要新增至實驗室的共用映射庫,然後選取 [ 確定]:
在 DevTest Labs 將資源庫附加至實驗室之後,您可以選取資源庫名稱以查看映像的完整清單:
[ 共用影像 ] 頁面隨即開啟:
控制可用的影像
[允許所有映射做為虛擬機基底] 選項可讓您控制實驗室用戶可在建立實驗室 VM 時使用的映射。 根據預設,此選項會設定為 [是],而實驗室使用者可以存取連結庫中的所有影像。
請遵循下列步驟來限制資源庫中影像的存取:
在實驗室的 [設定和原則] 頁面上,移至 [虛擬機基底>共用映射庫] 畫面。
選取連結庫名稱以開啟 [共用映射 ] 頁面,其中顯示影像清單。
在 [ 共用映射 ] 頁面上,將 [ 允許所有映射做為虛擬機基底 ] 選項設定為 [否]。
針對您想要讓 實驗室用戶無法使用 的任何映像,請取消選取影像的複選框。
選取儲存。
存取連結庫中的影像
將共用映像庫連結至實驗室之後,實驗室用戶可以在建立新的 VM 時,從允許的映像中選擇:
在實驗室的 [設定和原則] 頁面上,移至 [虛擬機基底>共用映射庫] 畫面。
選取連結庫名稱以開啟 [共用映射 ] 頁面,其中顯示影像清單。
記下您要用來建立新 VM 之資源庫映像的名稱。
返回實驗室 [概觀] 頁面,然後選取 [ 新增]。
在 [ 選擇基底 ] 頁面上,選取您要用來建立新 VM 的資源庫映射。 在映射清單中,來自鏈接共用映像庫的允許映像會遵循 Azure Resource Manager (ARM) 範本提供的映射:
請遵循步驟,從選取的映像建立 VM。
中斷連結目前的共用映像庫
實驗室一次只能有一個連結的共用映像庫。 如果您的實驗室有連結庫,而且您想要使用不同的資源庫,您必須先中斷連結現有的資源庫。 卸離現有的資源庫之後,您可以連結不同的資源庫。
在實驗室的 [設定和原則] 頁面上,移至 [虛擬機基底>共用映射庫] 畫面。
選取 附加資源庫的 [更多選項 ],然後選取 [ 中斷連結]:
連結庫的 [共用映射] 頁面上也提供 [卸離] 選項。
使用範本附加資源庫
您可以使用ARM樣本將共用映像庫附加至實驗室。 您需要將資源庫新增為 ARM 樣本的資源,如下列範例所示:
"resources": [
{
"apiVersion": "2018-10-15-preview",
"type": "Microsoft.DevTestLab/labs",
"name": "mylab",
"location": "eastus",
"resources": [
{
"apiVersion":"2018-10-15-preview",
"name":"myGallery",
"type":"sharedGalleries",
"properties": {
"galleryId":"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/mySharedGalleryRg/providers/Microsoft.Compute/galleries/mySharedGallery",
"allowAllImages": "Enabled"
}
}
]
}
DevTest Labs GitHub 存放庫提供使用ARM樣本連結共用映像庫的完整範例。 若要開始使用,您可以在 建立新的實驗室時設定共用映像庫。
使用 REST API
下列各節提供如何使用 REST API 來處理共用映像庫影像的範例。
取得實驗室清單
下列 GET 呼叫會傳回訂用帳戶的 DevTest Labs 資源清單。 在此範例中,您會提供下列參數:
subscriptionId
:要為其傳回 DevTest Labs 資源的訂用帳戶標識碼。resourceGroupName
:要搜尋 DevTest Labs 資源的資源群組名稱。
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs?api-version= 2018-10-15-preview
取得實驗室的共用映像庫清單
下列 GET 呼叫會傳回與實驗室相關聯的共用映像庫清單。 在此範例中,您會提供下列參數:
subscriptionId
:D evTest Labs 資源的訂用帳戶標識碼。resourceGroupName
:D evTest Labs 資源的資源群組名稱。labName
:要為其傳回相關聯共用映射庫清單的DevTest Labs 資源名稱。
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/sharedgalleries?api-version= 2018-10-15-preview
建立或更新共用映像庫
下列PUT呼叫會建立或更新指定實驗室的共用映像庫。 在此範例中,您會提供下列參數:
subscriptionId
:D evTest Labs 資源的訂用帳戶標識碼。resourceGroupName
:D evTest Labs 資源的資源群組名稱。labName
:D evTest Labs 資源的名稱。name
:要為實驗室建立或更新的共用資源庫名稱。galleryId
:要為實驗室建立或更新之共用資源庫的標識符。allowAllImages
:設定為Enabled
,以允許資源庫中的所有影像與實驗室資源搭配使用。
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/sharedgalleries/{name}?api-version=2018-10-15-preview
Body:
{
"properties":{
"galleryId": "[Shared Image Gallery resource Id]",
"allowAllImages": "Enabled"
}
}
列出共用映像庫中的映像
下列 GET 呼叫會傳回實驗室所指定共用映像庫中的映射清單。 在此範例中,您會提供下列參數:
subscriptionId
:D evTest Labs 資源的訂用帳戶標識碼。resourceGroupName
:D evTest Labs 資源的資源群組名稱。labName
:D evTest Labs 資源的名稱。name
:與您要列出影像之實驗室相關聯的共用資源庫名稱。
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/sharedgalleries/{name}/sharedimages?api-version=2018-10-15-preview