首页 > 解决方案 > 如何使用 Powershell 7 Get-AzVMImage 获取最新版本

问题描述

我正在尝试使用 Azure Powershell 7 commandlet 来获取最新版本的 Canonical UbuntuServer 18.04-LTS。

这是我的查询示例:

>> Get-AzVMImage -Location "eastus" -PublisherName "Canonical" -Offer "UbuntuServer" -Skus "18.04-LTS" -Version "latest"

身份验证后,我尝试运行该命令行开关,但出现以下错误:

Get-AzVMImage:
Line |
   2 |  Get-AzVMImage -Location "eastus" -PublisherName "Canonical" -Offer "U …
     |  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | The value of parameter version is invalid.
ErrorCode: InvalidParameter
ErrorMessage: The value of parameter version is invalid.
ErrorTarget: version
StatusCode: 400
ReasonPhrase: Bad Request
OperationID : 3cf54862-47c7-4092-97e9-20ae6556f37c

但是,如果我将 -Version 标志硬编码为已知版本号,如下所示:

>> Get-AzVMImage -Location "eastus" -PublisherName "Canonical" -Offer "UbuntuServer" -Skus "18.04-LTS" -Version "18.04.202109280"

我收到了成功的回复:

Location         : eastus
PublisherName    : Canonical
Offer            : UbuntuServer
Skus             : 18.04-LTS
Version          : 18.04.202109280
FilterExpression :
Name             : 18.04.202109280
HyperVGeneration : V1
OSDiskImage      : {
                     "operatingSystem": "Linux"
                   }
PurchasePlan     : null
DataDiskImages   : []

这篇关于如何查找和使用市场映像的 Azure 文章Find and use Azure Marketplace VM images with Azure PowerShell states “...对于 SKU,使用 Get-AzVMImage 列出映像的版本。如果您想使用,也可以使用 latest最新的图像,而不是特定的旧版本。”

作为替代方案,它还提到您可以使用 URN 格式来代替“...这些值可以单独传递或作为图像 URN 传递,组合用冒号 (:) 分隔的值。例如:Publisher:Offer:Sku:版本。您可以将 URN 中的版本号替换为 latest 以使用最新版本的映像。

有谁知道我需要改变什么才能使用-Version "latest"

我正在考虑首先查询所有版本并获取列表中的最后一个。然后,我将一个$version变量设置为最后一个版本号。但这似乎与 Azure 文档中的建议背道而驰。

标签: azurepowershellazure-devopsazure-devops-rest-api

解决方案


推荐阅读