我正在尝试使用Azure Powershell 7命令来获取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上查找和使用市场镜像的文章《使用Azure PowerShell查找和使用Azure Marketplace VM镜像》中提到:“...对于SKU,可以使用Get-AzVMImage列出该镜像的版本。如果您想使用最新的镜像而不是特定的旧版本,则还可以使用latest。”
作为替代方案,文章还提到您可以使用URN格式:“... 这些值可以单独传递或作为图像URN传递,将值用冒号(:)分隔组合在一起。例如:发布者:优惠:SKU:版本。您可以使用latest替换URN中的版本号,以使用镜像的最新版本。” 有人知道我需要更改什么才能只使用
-Version "latest"
吗?
我考虑先查询所有版本并获取列表中的最后一个版本。然后,我会将$version
变量设置为最后一个版本号。但是这似乎与Azure文档中建议的相反。
get-azvmimage
命令通过将version
值设置为latest
或 urn 值Canonical:UbuntuServer:18.04-LTS:latest
来拉取 ubuntu server 18.04-lts 的“最新”版本镜像,正如文档中所建议的那样,但无论是在 PowerShell 版本 5.1 还是 7 中都失败了。 - VenkateshDoddaaz vm image show --location westus --urn Canonical:UbuntuServer:18.04-LTS:latest (或) Get-AzVMImage -Location eastus -PublisherName Canonical -Offer UbuntuServer -Skus 18.04-LTS | Select-Object version -Last 1
- VenkateshDodda