使用 Azure CLI 尋找 Azure Marketplace 映像資訊
警告
本文會參考 CentOS,這是生命週期結束 (EOL) 狀態的 Linux 發行版本。 請據以考慮您的使用和規劃。 如需詳細資訊,請參閱 CentOS 生命週期結束指導。
適用於:✔️ Linux VM ✔️ Windows VM ✔️ 彈性擴展集
本主題描述如何在 Azure Marketplace 中使用 Azure CLI 尋找 VM 映像。 當您使用 CLI、Resource Manager 範本或其他工具以程式設計方式建立 VM 時,使用此資訊來指定 Marketplace 映像。
您也可以使用 Azure Marketplace或 Azure PowerShell 來瀏覽可用的映像和供應項目。
詞彙
Azure 中的 Marketplace 映像具有下列屬性:
- 發行者:建立映像的組織。 範例:Canonical、RedHat、SUSE。
- 供應項目:發行者所建立之一組相關映像的名稱。 範例:0001-com-ubuntu-server-jammy、RHEL、sles-15-sp3。
- SKU:供應項目執行個體,例如主要發佈版本。 範例:22_04-lts-gen2、8-lvm-gen2、gen2。
- 版本:映像 SKU 的版本號碼。
這些值可以個別傳遞或以映像 URN 的形式傳遞,結合以冒號 (:) 分隔的值。 例如:Publisher:Offer:Sku:Version。 您可以以 latest
取代 URN 中的版本號碼,以取得最新版的映像。
如果映像發行者提供額外的授權和購買條款,則您必須接受這些條款才能使用映像。 如需詳細資訊,請參閱檢查購買方案資訊。
列出常用的映像
您可以執行 az vm image list --all 以查看可用的所有映像,但可能需要幾分鐘的時間才能產生完整清單。 較快的選項是使用 az vm image list
(而非 --all
選項),以查看 Azure Marketplace 的常用 VM 映像清單。 例如,執行下列命令,以資料表格式顯示常用映像的快取清單:
az vm image list --output table
輸出包含映像 URN。 如果省略 --all
選項,即可查看每個映像的 UrnAlias (如有的話)。 UrnAlias 是為 Ubuntu2204 等常用映射所建立的簡短版。
此指令輸出的 Linux 映像別名名稱及其詳細資料如下:
Architecture Offer Publisher Sku Urn UrnAlias Version
-------------- ---------------------------- ---------------------- ---------------------------------- ------------------------------------------------------------------------------ ----------------------- ---------
x64 CentOS OpenLogic 8_5-gen2 OpenLogic:CentOS:8_5-gen2:latest CentOS85Gen2 latest
x64 Debian11 Debian 11-backports-gen2 Debian:debian-11:11-backports-gen2:latest Debian-11 latest
x64 flatcar-container-linux-free kinvolk stable-gen2 kinvolk:flatcar-container-linux-free:stable-gen2:latest FlatcarLinuxFreeGen2 latest
x64 opensuse-leap-15-4 SUSE gen2 SUSE:opensuse-leap-15-4:gen2:latest OpenSuseLeap154Gen2 latest
x64 RHEL RedHat 8-lvm-gen2 RedHat:RHEL:8-lvm-gen2:latest RHELRaw8LVMGen2 latest
x64 sles-15-sp3 SUSE gen2 SUSE:sles-15-sp3:gen2:latest SLES latest
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts-gen2 Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest Ubuntu2204 latest
此指令輸出的 Windows 映像別名稱及其詳細資料如下:
Architecture Offer Publisher Sku Urn Alias Version
-------------- ---------------------------- ---------------------- ---------------------------------- ------------------------------------------------------------------------------ ----------------------- ---------
x64 WindowsServer MicrosoftWindowsServer 2022-datacenter-azure-edition MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition:latest Win2022AzureEdition latest
x64 WindowsServer MicrosoftWindowsServer 2022-datacenter-azure-edition-core MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition-core:latest Win2022AzureEditionCore latest
x64 WindowsServer MicrosoftWindowsServer 2019-Datacenter MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest Win2019Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2016-Datacenter MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest Win2016Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2012-R2-Datacenter MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest Win2012R2Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2012-Datacenter MicrosoftWindowsServer:WindowsServer:2012-Datacenter:latest Win2012Datacenter latest
尋找特定映像
您可以依 --publisher
或另一個參數來篩選映像清單,以限制結果。
例如,下列命令會顯示所有 Debian 供應項目:
az vm image list --offer Debian --all --output table
您可以藉由新增 --architecture
參數,將結果限制為單一架構。 例如,若要顯示 Canonical 提供的所有 Arm64 映像:
az vm image list --architecture Arm64 --publisher Canonical --all --output table
查看所有可用的映像
要在位置中找到映像的另一個方法是在序列中執行 az vm image list-publishers、az vm image list-offers 和 az vm image list-skus 命令。 您可以使用這些命令來判斷下列的值:
列出某個位置的映像發行者。 在此範例中,我們會查看美國西部區域。
az vm image list-publishers --location westus --output table
針對指定的發行者,列出其供應項目。 在此範例中,我們會將 RedHat 新增為發行者。
az vm image list-offers --location westus --publisher RedHat --output table
針對指定的供應項目,列出其 SKU。 在此範例中,我們會將 RHEL 新增為供應項目。
az vm image list-skus --location westus --publisher RedHat --offer RHEL --output table
注意
Canonical 已變更它們用於最新版本的供應項目名稱。 在 Ubuntu 20.04之前,供應項目名稱為 UbuntuServer。 對於 Ubuntu 20.04,供應項目名稱是 0001-com-ubuntu-server-focal
,而 Ubuntu22.04 則為 0001-com-ubuntu-server-jammy
。
針對指定的發行者、供應項目和 SKU,顯示映像的所有版本。 在此範例中,我們會將 9_1 新增為 SKU。
az vm image list \ --location westus \ --publisher RedHat \ --offer RHEL \ --sku 9_1 \ --all --output table
使用 az vm create 命令建立 VM 時,請傳遞 URN 資料行的值與 --image
參數。 您也可以使用 "latest" 取代 URN 中的版本號碼,以使用最新版的映像。
如果您使用 Resource Manager 範本來部署 VM,請在 imageReference
屬性中個別設定映像參數。 請參閱範本參考。
檢查購買方案資訊
Azure Marketplace 中的某些 VM 映像有額外的授權和購買條款,您必須先接受這些條款,才能以程式設計方式部署這些映像。
若要從這類映像部署 VM,您必須在初次使用映像時接受映像的條款,每個訂用帳戶都要接受一次。 您也需要指定購買方案參數,以從該映像部署 VM
若要檢視映像的購買方案資訊,請使用映像的 URN 執行 az vm image show 命令。 如果輸出中的 plan
屬性不是 null
,在以程式設計方式部署之前,必須接受映像包含的條款。
例如,Canonical Ubuntu Server 18.04 LTS 映像沒有額外條款,因為 plan
資訊為 null
:
az vm image show --location westus --urn Canonical:UbuntuServer:18.04-LTS:latest
輸出:
{
"dataDiskImages": [],
"id": "/Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Providers/Microsoft.Compute/Locations/westus/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/18.04-LTS/Versions/18.04.201901220",
"location": "westus",
"name": "18.04.201901220",
"osDiskImage": {
"operatingSystem": "Linux"
},
"plan": null,
"tags": null
}
針對 RabbitMQ Certified by Bitnami 映像執行類似的命令會顯示下列 plan
屬性:name
、product
和 publisher
。 (某些映像也有 promotion code
屬性。)
az vm image show --location westus --urn bitnami:rabbitmq:rabbitmq:latest
輸出:
{
"dataDiskImages": [],
"id": "/Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Providers/Microsoft.Compute/Locations/westus/Publishers/bitnami/ArtifactTypes/VMImage/Offers/rabbitmq/Skus/rabbitmq/Versions/3.7.1901151016",
"location": "westus",
"name": "3.7.1901151016",
"osDiskImage": {
"operatingSystem": "Linux"
},
"plan": {
"name": "rabbitmq",
"product": "rabbitmq",
"publisher": "bitnami"
},
"tags": null
}
若要部署此映像,您必須接受條款,並在使用該映像部署 VM 時提供購買方案參數。
接受條款
若要檢視並接受授權條款,請使用 az vm image terms 命令。 當您接受條款時,您會在訂用帳戶中啟用以程式設計方式部署。 您只需針對映像的每個訂用帳戶接受一次條款。 例如:
az vm image terms show --urn bitnami:rabbitmq:rabbitmq:latest
輸出會包含授權條款的 licenseTextLink
,並指出 accepted
的值為 true
:
{
"accepted": true,
"additionalProperties": {},
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.MarketplaceOrdering/offertypes/bitnami/offers/rabbitmq/plans/rabbitmq",
"licenseTextLink": "https://storelegalterms.blob.core.windows.net/legalterms/3E5ED_legalterms_BITNAMI%253a24RABBITMQ%253a24RABBITMQ%253a24IGRT7HHPIFOBV3IQYJHEN2O2FGUVXXZ3WUYIMEIVF3KCUNJ7GTVXNNM23I567GBMNDWRFOY4WXJPN5PUYXNKB2QLAKCHP4IE5GO3B2I.txt",
"name": "rabbitmq",
"plan": "rabbitmq",
"privacyPolicyLink": "https://bitnami.com/privacy",
"product": "rabbitmq",
"publisher": "bitnami",
"retrieveDatetime": "2019-01-25T20:37:49.937096Z",
"signature": "XXXXXXLAZIK7ZL2YRV5JYQXONPV76NQJW3FKMKDZYCRGXZYVDGX6BVY45JO3BXVMNA2COBOEYG2NO76ONORU7ITTRHGZDYNJNXXXXXX",
"type": "Microsoft.MarketplaceOrdering/offertypes"
}
若要接受條款,請輸入:
az vm image terms accept --urn bitnami:rabbitmq:rabbitmq:latest
使用映像參數部署新的 VM
使用映像的相關資訊,您可以使用 az vm create
命令加以部署。
若要部署沒有計劃資訊的映像 (例如來自 Canonical 的最新 Ubuntu Server 18.04 映像),請傳遞 --image
的 URN:
az group create --name myURNVM --location westus
az vm create \
--resource-group myURNVM \
--name myVM \
--admin-username azureuser \
--generate-ssh-keys \
--image Canonical:UbuntuServer:18.04-LTS:latest
若是有購買方案參數的映像 (如 RabbitMQ Certified by Bitnami 映像),您可以傳遞 --image
URN,並提供購買方案參數:
az group create --name myPurchasePlanRG --location westus
az vm create \
--resource-group myPurchasePlanRG \
--name myVM \
--admin-username azureuser \
--generate-ssh-keys \
--image bitnami:rabbitmq:rabbitmq:latest \
--plan-name rabbitmq \
--plan-product rabbitmq \
--plan-publisher bitnami
如果您收到接受映像條款的相關訊息,請檢閱接受條款一節。 請確定 az vm image terms accept
的輸出會傳回 "accepted": true,
值,顯示您已接受映像的條款。
搭配購買方案資訊使用現有的 VHD
如果您有使用付費 Azure Marketplace 映像建立的虛擬機器的現有 VHD,從該 VHD 建立新的虛擬機器時,可能需要提供購買方案資訊。
如果您仍然擁有原始 VM 或使用相同市集映像建立的另一個 VM,可使用 az vm get-instance-view 從中取得方案名稱、發行者和產品資訊。 此範例會在 myResourceGroup 資源群組中取得名為 myVM 的 VM,然後顯示購買方案資訊。
az vm get-instance-view -g myResourceGroup -n myVM --query plan
如果您在刪除原始 VM 之前未取得方案資訊,您可以提出支援要求。 他們需要 VM 名稱、訂用帳戶識別碼和刪除作業的時間戳記。
擁有方案資訊之後,您可以使用 參數來建立新的 VM --attach-os-disk
,以指定 VHD。
az vm create \
--resource-group myResourceGroup \
--name myNewVM \
--nics myNic \
--size Standard_DS1_v2 --os-type Linux \
--attach-os-disk myVHD \
--plan-name planName \
--plan-publisher planPublisher \
--plan-product planProduct
下一步
若要使用映像資訊來快速建立虛擬機器,請參閱使用 Azure CLI 來建立和管理 Linux VM。