有关不推荐映像的常见问题解答

本文解答了有关Azure 市场映像弃用时会发生什么的常见问题。

重要

映像弃用不会以相同的方式影响所有映像。 影响取决于映像是否需要市场 购买计划

  • Microsoft第一方映像(例如,Windows Server、Canonical Ubuntu、SUSE)不需要购买计划,并在弃用后继续支持备份、还原和灾难恢复方案。
  • 需要购买计划的第三方市场映像(例如 CIS、F5、Cisco)在弃用后会受到额外的市场强制检查的影响。

购买计划信息 是指您必须接受某些第三方镜像的市场上的计费条款。 在弃用后,只有需要购买计划的图像才会接受合规检查。 若要检查映像是否具有购买计划,请参阅如何检查映像是否具有购买计划? 有关详细信息,请参阅 市场购买计划

概述

弃用Azure 市场映像时,新部署的可用性会发生变化,但现有虚拟机(VM)和虚拟机规模集(VMSS)实例将继续正常运行。 本文说明映像弃用过程中平台的行为、哪些操作会受到影响,以及您必须采取的措施(如果有)。

映像弃用的含义

弃用会从Azure 市场目录中删除映像,但不会删除现有 VM 的 OS 磁盘。

每个已弃用映像都有一个 强制日期,这是限制生效的特定日期。 弃用通知电子邮件、Azure 顾问建议以及在查询映像时的 Azure CLI 或 PowerShell 输出中都列出了强制日期。 通常在实施日期之前收到至少 90 天的通知。

  • 执行日期后,不能使用已弃用的映像来创建新的 VM 或 VMSS 实例。
  • 在强制日期之前创建的现有 VM 和 VMSS 实例继续正常运行。
  • 在强制执行日期之后,将阻止 VMSS 横向扩展操作,因为横向扩展需要从已弃用的镜像中创建新实例。

要点

  • 现有 VM 不需要执行任何作: 创建后,VM 会从其 OS 磁盘启动,而不是从原始映像启动。 弃用不会影响正在运行的虚拟机。
  • 大多数操作继续正常工作: 启动、停止、重启、取消分配和重新部署均正常。
  • 无需购买计划即可继续为映像执行备份和还原: VM 备份和还原操作(包括还原备份以创建新 VM)在弃用后继续适用于Microsoft第一方和认可的 Linux 映像。
  • 重建映像被阻止: 这是唯一受影响的 VM 操作,因为它需要从源映像重新创建 OS 磁盘。
  • VMSS 实例继续运行: 现有实例不受影响,但强制实施后会阻止横向扩展。

收到图像废弃通知意味着什么?

当您的虚拟机(VM)或虚拟机规模集运行在计划弃用的映像上时,您会收到电子邮件通知。 发布者出于各种原因弃用映像,包括安全问题或映像生命周期结束时。

使用计划弃用的映像的虚拟机或规模集的电子邮件通知的屏幕截图。

弃用级别

弃用发生在三个级别:

  • 映像版本弃用:特定的 VM 映像版本。
  • 计划/SKU 弃用:整个计划或 SKU 及其中的所有映像版本。
  • 产品包弃用:整个 VM 产品包,包括所有计划和映像版本。

弃用时间线是什么,它如何影响我的工作负荷?

通知期(实施前90天)

发布者在弃用映像时设置强制日期。 弃用公告和强制日期之间通常至少有 90 天。 电子邮件通知和 Azure 顾问建议中包含了确切的强制日期。

在通知期间:

  • 你会收到关于即将弃用的电子邮件通知和 Azure 顾问 建议。
  • 现有 VM 和虚拟机规模集实例继续正常运行。
  • 可以使用 Azure CLI、PowerShell 或 API 部署新实例。
  • 弃用警告显示在Azure门户、Azure CLI和 API 中。
  • 可以在强制日期之前迁移或更新部署。

强制执行日期后(软删除)

强制日期后,映像将进入“软删除”状态。 映像不再可用于新部署,但不会删除或修改现有资源。

没有购买计划(例如,Windows Server,Canonical Ubuntu,SUSE):

  • 现有 VM 和虚拟机规模集实例将继续运行,而不会中断。
  • 启动、停止、重启、解除分配和重新部署仍然继续工作。
  • VM 备份和还原操作将继续工作,包括还原备份以创建新 VM。
  • Azure Site Recovery 和灾难恢复操作将继续工作。
  • 已阻止从弃用的映像创建新的 VM。
  • 映像重建被阻止,因为它需要从源映像重新创建操作系统磁盘。
  • 如果必须从已弃用的版本创建新实例,则会阻止虚拟机规模集横向扩展。 使用自动操作系统升级或“最新”版本进行横向扩展仍将正常运行。

具有购买计划的映像(第三方市场映像,如 CIS、F5、Cisco):

  • 现有 VM 和虚拟机规模集实例将继续运行,而不会中断。
  • 启动、停止、重启、解除分配和重新部署仍然继续工作。
  • 已阻止从弃用的映像创建新的 VM。
  • 需要市场购买验证的备份还原操作可能会失败。
  • 由于弃用后购买计划资格检查失败,故阻止了重新成像操作。
  • 虚拟机规模集扩展被阻止,因为这需要从已弃用的映像创建新的实例。

有关详细信息,请参阅 哪些操作受映像弃用的影响?

所需作

需要执行的操作具体取决于您的镜像是否需要购买计划。 有关确定这一点的帮助,请参阅如何检查映像是否具有购买计划? 有关详细的迁移指南,请参阅何时应迁移?

没有购买计划的图像:

  • 如果使用自动 OS 升级,则无需执行任何操作。 自动 OS 升级可自动处理发布者、产品/服务、SKU 和版本更改的迁移。
  • 如果在弃用后需要虚拟机规模集进行扩展,请在强制执行日期之前迁移到受支持的映像
  • 为了避免将来依赖 Marketplace 映像的可用性,请考虑将工作负荷捕获为 Azure 计算画廊中的自定义映像。 自定义映像不受市场弃用的约束。

带有购买计划的影像:

  • 操作系统自动升级仅处理单个版本的弃用问题。 对于计划、SKU 或产品/服务弃用,必须手动迁移。
  • 在强制日期之前,将你的虚拟机规模集迁移至受支持的映像,以避免影响到横向扩展、重置映像和备份还原等操作。

哪些操作会受到映像弃用的影响?

弃用的影响取决于映像是否需要市场购买计划。

弃用后继续运行的操作(无需迁移)

这些行为适用于不需要购买计划的映像(例如,Windows Server,Canonical Ubuntu,SUSE):

运算 强制实施后的状态 Explanation
正在运行的 VM 继续正常运行 创建后,VM 会从其 OS 磁盘启动(而不是从市场映像启动),无需购买计划验证。
启动/停止/重启/重新部署 继续工作 这些操作不需要源图像。
VM 备份和还原 继续工作 还原备份(包括还原以创建新 VM)将继续工作。
Azure Site Recovery 和灾难恢复 继续工作 恢复操作继续适用于Microsoft认可的映像。
VMSS 现有实例 继续运行 现有实例不受弃用的影响。
VMSS 横向扩展 仅当必须从已弃用的版本创建新实例时阻止 使用自动操作系统升级或“最新”版本进行横向扩展仍将正常运行。

停用后阻止的操作

运算 适用对象 强制实施后的状态 Explanation
创建新 VM 所有图像 Blocked 无论购买计划状态如何,都会阻止从弃用映像创建新的 VM。
重置映像 所有图像 Blocked 重置映像失败,因为它需要从已弃用的源映像重新创建 OS 磁盘。
还原备份 具有购买计划的图像 可能失败 需要市场购买验证的备份还原操作可能会失败。 即使没有购买计划,还原仍然对映像持续生效。
VMSS 横向扩展 具有购买计划的图像 Blocked 具有购买计划的映像被阻止横向扩展。 对于没有购买计划的映像,使用自动 OS 升级或“最新”版本进行横向扩展将继续工作。

注意

VM 的映像引用属性可能从Azure门户消失,但这不会影响 VM 操作。 OS 磁盘是启动的权威磁盘。

如何检查虚拟映像是否具有购买计划?

弃用的影响取决于您的映像是否需要 Marketplace 购买计划。 使用以下方法之一进行检查。

Option 1:使用 Azure CLI

直接检查市场镜像:

az vm image show --location chinanorth2 --urn <publisher>:<offer>:<sku>:<version> --query plan

或检查现有虚拟机:

az vm show --resource-group <resource-group> --name <vm-name> --query plan

选项 2:使用 PowerShell

从现有虚拟机检查:

(Get-AzVM -ResourceGroupName <resource-group> -Name <vm-name>).Plan

从市场映像进行检查:

Get-AzVMImage -Location "chinanorth2" -PublisherName <publisher> -Offer <offer> -Skus <sku> -Version <version> | Select-Object -ExpandProperty PurchasePlan

解释结果

  • 如果命令返回 null 或空输出,则映像没有购买计划。 弃用对您的工作负载几乎没有影响。
  • 如果命令返回 namepublisher并且 product 值,则映像具有购买计划。 应在实施日期之前 迁移到受支持的映像

有关详细信息,请参阅 创建映像时提供 Azure 市场 购买计划信息

在我的映像被弃用后,是否可以从备份还原 VM?

是 — 如果你的映像不需要购买计划。

  • 对于由微软官方提供和认可的 Linux 镜像(例如,Windows Server、Canonical Ubuntu、Red Hat、SUSE),在弃用后仍支持还原备份,即便用于创建新的 VM。 这是预期的行为。
  • 对于需要购买计划的第三方映像,可能因市场合规检查,在弃用后可能会被阻止恢复操作。

如果您使用需要付费计划的映像,请在强制执行日期之前迁移到受支持的映像。 有关详细信息,请参阅 购买计划信息

我应该在什么时候将虚拟机或虚拟机规模集迁移到不同的映像?

迁移并非始终是必需的。 查看以下方案以确定是否需要采取措施。

如果满足条件,则不需要迁移:

  • 即使映像已弃用,映像也不需要购买计划。
  • 对 VMSS 使用自动 OS 映像升级,并且仅弃用映像版本。
  • 您不执行需要原始 Marketplace 映像的重新映像或横向扩展操作。

如果需要进行迁移,请执行以下操作:

  • 您的图片需要 购买计划
  • 需要在实施日期之后进行横向扩展、重新安装镜像或创建新的系统工作负载。
  • 整个产品/服务或 SKU 已弃用,映像需要购买计划,并且自动 OS 映像升级无法处理迁移。

建议的操作

没有购买计划的图像:

  • 收到弃用通知时不要惊慌。 弃用不会导致第一方图像立即中断。
  • 弃用后,现有的工作负载、备份还原和灾难恢复情境将继续正常运行。 这些操作不需要迁移。
  • 为了避免将来依赖 Marketplace 映像的可用性,请考虑将工作负荷捕获为 Azure 计算画廊中的自定义映像。 自定义映像不受市场弃用的约束。

带有购买计划的影像:

  • 在强制日期之前与发布者协调迁移。 弃用后,备份还原、重置映像和横向扩展操作可能会失败。
  • 包含购买计划信息的自定义映像仍会受到市场合规检查的约束。 迁移到较新的未被弃用镜像,以避免中断。

所有图像:

如何查找使用已弃用映像的 VM?

选项 1:使用自动化脚本(建议)

运行 Get-AzVMImageDeprecationStatus.ps1 列出订阅中从已弃用或即将弃用的映像创建的所有虚拟机。

Option 2:使用 Azure Resource Graph

Azure Resource Graph 中运行以下查询,列出所有 VM 及其映像详细信息:

resources 
| where type == "microsoft.compute/virtualmachines" 
//| where properties.storageProfile.imageReference.publisher =~ 'MicrosoftWindowsServer' //Optional: Filter by publisher
//| where properties.storageProfile.imageReference.sku =~ '2016-Datacenter' //Optional: Filter by SKU (Plan)
//| where properties.storageProfile.imageReference.version == '14393.4467.2106061537' //Optional: Filter by version
| project name, subscriptionId, resourceGroup, ImagePublisher=properties.storageProfile.imageReference.publisher, ImageOffer=properties.storageProfile.imageReference.offer, imageSku=properties.storageProfile.imageReference.sku, imageVersion=properties.storageProfile.imageReference.exactVersion

Option 3:使用 Azure CLI

要列出使用特定 SKU 的所有虚拟机,请用已弃用的 SKU 替换2016-Datacenter

az vm list --query "[?storageProfile.imageReference.sku=='2016-Datacenter'].{VM:id, imageOffer:storageProfile.imageReference.offer, imagePublisher:StorageProfile.imageReference.publisher, imageSku: storageProfile.imageReference.sku, imageVersion:storageProfile.imageReference.version}"

若要列出使用特定映像版本的所有 VM(请替换为已弃用的版本):

az vm list --query "[?storageProfile.imageReference.version=='14393.4402.2105052108'].{VM:id, imageOffer:storageProfile.imageReference.offer, imagePublisher:StorageProfile.imageReference.publisher, imageSku: storageProfile.imageReference.sku, imageVersion:storageProfile.imageReference.version}"

选项 4:使用 PowerShell

要列出使用特定 SKU 的所有虚拟机,请用已弃用的 SKU 替换2016-Datacenter

Get-AzVM | Where-Object {$_.StorageProfile.ImageReference.Sku -eq '2016-Datacenter'} | Select-Object -Property ResourceGroupName, Name, @{label='imageOffer'; expression={$_.StorageProfile.ImageReference.Offer}}, @{label='imagePublisher'; expression={$_.StorageProfile.ImageReference.Publisher}}, @{label='imageSKU'; expression={$_.StorageProfile.ImageReference.Sku}}, @{label='imageVersion'; expression={$_.StorageProfile.ImageReference.ExactVersion}}

若要列出使用特定映像版本的所有 VM(请替换为已弃用的版本):

Get-AzVM | Where-Object {$_.StorageProfile.ImageReference.ExactVersion -eq '14393.4402.2105052108'} | Select-Object -Property ResourceGroupName, Name, @{label='imageOffer'; expression={$_.StorageProfile.ImageReference.Offer}}, @{label='imagePublisher'; expression={$_.StorageProfile.ImageReference.Publisher}}, @{label='imageSKU'; expression={$_.StorageProfile.ImageReference.Sku}}, @{label='imageVersion'; expression={$_.StorageProfile.ImageReference.ExactVersion}}

如何使用已弃用的映像查找虚拟机规模集?

选项 1:使用自动化脚本(建议)

运行 Get-AzVMImageDeprecationStatus.ps1 列出一个订阅中所有从已弃用或即将弃用映像创建的虚拟机规模集。

Option 2:使用 Azure Resource Graph

Azure Resource Graph 中运行以下查询,列出所有虚拟机规模集及其映像详细信息:

resources 
| where type == "microsoft.compute/virtualmachinescalesets" 
//| where properties.virtualMachineProfile.storageProfile.imageReference.publisher =~ 'MicrosoftWindowsServer' //Optional: Filter by publisher
//| where properties.virtualMachineProfile.storageProfile.imageReference.sku =~ '2016-Datacenter' //Optional: Filter by SKU (Plan)
//| where properties.virtualMachineProfile.storageProfile.imageReference.version == '14393.4467.2106061537' //Optional: Filter by version
//| where properties.virtualMachineProfile.storageProfile.imageReference.version != "latest" //Optional: Exclude scale sets using "latest"
| project name, subscriptionId, resourceGroup, ImagePublisher=properties.virtualMachineProfile.storageProfile.imageReference.publisher, ImageOffer=properties.virtualMachineProfile.storageProfile.imageReference.offer, imageSku=properties.virtualMachineProfile.storageProfile.imageReference.sku, imageVersion=properties.virtualMachineProfile.storageProfile.imageReference.version

Option 3:使用 Azure CLI

若要使用特定 SKU 列出所有虚拟机规模集,请将 2016-Datacenter 替换为您已弃用的 SKU。

az vmss list --query "[?virtualMachineProfile.storageProfile.imageReference.sku=='2016-Datacenter'].{VMSS:id, imageOffer:virtualMachineProfile.storageProfile.imageReference.offer, imagePublisher:virtualMachineProfile.storageProfile.imageReference.publisher, imageSku:virtualMachineProfile.storageProfile.imageReference.sku, imageVersion:virtualMachineProfile.storageProfile.imageReference.version}"

若要使用特定映像版本列出所有虚拟机规模集(替换为已弃用的版本):

az vmss list --query "[?virtualMachineProfile.storageProfile.imageReference.version=='14393.4402.2105052108'].{VMSS:id, imageOffer:virtualMachineProfile.storageProfile.imageReference.offer, imagePublisher:virtualMachineProfile.storageProfile.imageReference.publisher, imageSku:virtualMachineProfile.storageProfile.imageReference.sku, imageVersion:virtualMachineProfile.storageProfile.imageReference.version}"

选项 4:使用 PowerShell

要使用特定 SKU 查找虚拟机规模集,请将 2016-Datacenter 替换为已弃用的 SKU。

$vmsslist = Get-AzVmss
$vmsslist | Where-Object {$_.virtualMachineProfile.storageProfile.imageReference.Sku -eq '2016-Datacenter'} | Select-Object -Property ResourceGroupName, Name, @{label='imageOffer'; expression={$_.virtualMachineProfile.storageProfile.imageReference.Offer}}, @{label='imagePublisher'; expression={$_.virtualMachineProfile.storageProfile.imageReference.Publisher}}, @{label='imageSKU'; expression={$_.virtualMachineProfile.storageProfile.imageReference.Sku}}, @{label='imageVersion'; expression={$_.virtualMachineProfile.storageProfile.imageReference.Version}}

若要使用特定映像版本查找虚拟机规模集(请替换为已弃用的版本):

$vmsslist = Get-AzVmss
$vmsslist | Where-Object {$_.virtualMachineProfile.storageProfile.imageReference.Version -eq '14393.4402.2105052108'} | Select-Object -Property ResourceGroupName, Name, @{label='imageOffer'; expression={$_.virtualMachineProfile.storageProfile.imageReference.Offer}}, @{label='imagePublisher'; expression={$_.virtualMachineProfile.storageProfile.imageReference.Publisher}}, @{label='imageSKU'; expression={$_.virtualMachineProfile.storageProfile.imageReference.Sku}}, @{label='imageVersion'; expression={$_.virtualMachineProfile.storageProfile.imageReference.Version}}

如何将 VM 迁移到其他映像?

Azure VM 不支持就地 OS 升级。 使用受支持的映像创建新 VM,迁移数据并退役旧 VM。

重要

对于需要市场购买计划的已弃用映像,在实施日期之后,您将无法创建新的 VM 或执行备份还原操作。 在实施日期之前进行迁移。

第 1 部分:创建新 VM

  1. 确定替换映像:检查弃用电子邮件中是否有建议的替换。 有关详细信息,请参阅 使用 Azure CLI 查找并使用图像使用 Azure PowerShell 查找并使用图像

  2. 配置新 VM:匹配现有 VM 的区域和网络设置,以便进行最简单的迁移。 如果需要,可以更改 VM 大小或区域。

  3. 部署和测试:确认 VM 已正确启动,并存在应用程序依赖项。

第 2 部分:迁移数据

方法 A:分离和附加数据磁盘(建议)

如果工作负荷数据存储在数据磁盘上(而不是 OS 磁盘):

  1. 停止并释放旧虚拟机。
  2. 从旧 VM 分离数据磁盘。 有关详细信息,请参阅 卸载 Linux VM 的数据磁盘卸载 Windows VM 的数据磁盘
  3. 将数据磁盘附加到新 VM。 有关详细信息,请参阅 将数据磁盘附加到 Linux VM将数据磁盘附加到 Windows VM
  4. 启动新的 VM 并验证数据可访问性。

注意

此方法不会保留 OS 磁盘上的数据。 仅迁移附加数据磁盘上的数据。

方法 B:使用快照(对于 OS 磁盘数据或备份要求)

如果需要在迁移之前保留 OS 磁盘数据或创建备份:

  1. 创建 数据磁盘的快照。
  2. 从快照创建托管磁盘
  3. 将磁盘附加到新 VM。 有关详细信息,请参阅 将数据磁盘附加到 Linux VM将数据磁盘附加到 Windows VM

方法 C:使用基于文件的传输

使用 OS 传输工具进行选择性数据迁移:

  • Windows:Robocopy 或 SMB 共享
  • Linux:rsync、scp 或 sftp
  • Cross-OSAzCopyAzure 存储作为中间位置

第 3 部分:切换

  1. 验证:验证网络连接、应用程序功能、防火墙规则和扩展。
  2. 更新引用:将 DNS 名称、负载均衡器或 API 终结点指向新 VM。
  3. 停用:暂时保留旧 VM 进行回滚,然后解除分配并删除它。

如何将虚拟机规模集迁移到其他映像?

迁移方法取决于是映像版本、计划/SKU还是整个产品被弃用。

注意

如果映像没有购买计划,并且启用了 自动 OS 映像升级,则自动 OS 升级将自动处理所有弃用级别(版本、计划/SKU 和产品)的迁移,包括对发布者、产品、SKU 和版本的更改。 以下每个部分中的手动步骤仅适用于具有购买计划的映像或未启用自动 OS 升级的规模集。

版本弃用

如果仅停用某个特定的镜像版本:

  • 使用“latest”版本:新实例无需采取任何行动。 Azure在部署时映射到最新的可用版本。 现有实例保留其原始版本。
  • 使用自动 OS 升级:无需执行任何作。 Azure会自动将现有实例升级到最新版本,无论您的映像参考使用的是“最新”还是固定版本。 这适用于所有图像,包括那些包含购买计划的图像。
  • 使用没有自动 OS 升级的固定版本:更新映像版本以指向受支持的版本。 请参阅 修改Azure虚拟机规模集。 更新模型后,使用以下方法之一升级现有实例:
    • 手动升级:使用 az vmss update-instances (CLI) 或 Update-AzVmssInstance (PowerShell) 升级特定实例。
    • 滚动升级策略:将升级策略配置为“滚动”,以便实例在模型更改时自动升级。

小窍门

启用 自动 OS 图像升级 ,以避免将来因功能弃用而需要手动干预。

计划/SKU 弃用

如果整个计划或某个 SKU 被弃用:

  • 未启用购买计划和自动 OS 升级的映像:无需执行任何操作。 自动操作系统升级会将您的规模集自动迁移到替换的 SKU。
  • 未启用采购计划或自动 OS 升级的映像:使用扩展/缩减方法更新到同一产品/服务的不同 SKU:
  1. 从弃用电子邮件中查找备用 SKU。 有关详细信息,请参阅 使用 Azure CLI 查找并使用图像使用 Azure PowerShell 查找并使用图像

  2. 更新 VMSS 模型以使用新的 SKU:

    az vmss update --resource-group <resource-group> --name <vmss-name> \
      --set virtualMachineProfile.storageProfile.imageReference.sku=<new-sku> \
      --set virtualMachineProfile.storageProfile.imageReference.version=latest
    
  3. 横向扩展以使用更新的映像创建新实例,然后横向扩展以删除旧实例。 或删除特定的旧实例,让规模集将其替换为新实例。

重要

升级或重新映像现有实例会替换其 OS 磁盘。 使用横向扩展/横向缩减以避免 OS 磁盘上的数据丢失。

产品/服务弃用

如果已弃用整个优惠:

  • 未启用购买计划和自动 OS 升级的映像:无需执行任何操作。 即使发布者、产品/服务或 SKU 发生更改,自动 OS 升级也会自动将规模集迁移到替换产品/服务。
  • 未启用购买计划或自动 OS 升级的映像:使用受支持的映像创建新的虚拟机规模集:
  1. 在弃用通知邮件中查找替代方案,或在Azure 市场中进行搜索。

  2. 使用替换映像创建新的虚拟机规模集。 匹配现有配置(网络、扩展、缩放规则)。

  3. 彻底测试应用程序兼容性。 不同的发布者或产品/服务可能具有显著的 OS 或配置差异。

  4. 将流量迁移到新的规模集,然后删除旧规模集。

注意

建议创建新的 VMSS,而不是在更改发布者或产品/服务时进行就地更新,因为映像之间的差异通常很重要。

如何接收有关镜像弃用的电子邮件通知?

Azure通过两个渠道通知你关于映像过时的信息:

  • 电子邮件通知:直接发送给订阅管理员,其中包含订阅的 “所有者 ”或 “帐户管理员 ”角色。
  • Azure 顾问 建议:停用建议显示在 Azure 顾问 中。

如何检查特定镜像是否已弃用或计划弃用?

Option 1:使用 Azure CLI

az vm image show --location chinanorth2 --urn MicrosoftWindowsServer:WindowsServer:2016-Datacenter:14393.4169.2101090332 --query [imageDeprecationStatus]

选项 2:使用 PowerShell

检查单个镜像版本:

Get-AzVMImage -Location "chinanorth2" -PublisherName "MicrosoftWindowsServer" -Offer "WindowsServer" -Skus "2016-Datacenter" -Version "14393.4169.2101090332" | Select-Object -ExpandProperty "ImageDeprecationStatus"

若要检查 SKU 的所有版本,并查看弃用详细信息:

Get-AzVMImage -Location "chinanorth2" `
  -PublisherName "center-for-internet-security-inc" `
  -Offer "cis-rocky" `
  -Skus "cis-rockylinux-9-l1-gen2-azure-observability" `
  -Expand "properties/imageDeprecationStatus" |
  Select-Object Version, @{
    Name = "DeprecationDetails"
    Expression = { $_.ImageDeprecationStatus | Out-String }
  } | Format-Table -Wrap -AutoSize

选项 3:使用 REST API

使用 虚拟机映像 - 获取 API。 如果映像已弃用,则会收到如下响应:

{
  "error": {
    "code": "ImageVersionDeprecated",
    "message": "VM Image from publisher: MicrosoftWindowsServer with - Offer: WindowsServer, Sku: 2016-Datacenter, Version: 14393.4169.2101090332 is deprecated."
  }
}

选项 4:使用自动化脚本

在本地运行 Get-AzVMImageDeprecationStatus.ps1,检查订阅中已弃用映像的所有 VM 和虚拟机规模集。

如何列出特定 SKU 当前可用的(非弃用)映像版本?

当前映像是指未计划过时或已经过时的映像。

Option 1:使用 Azure CLI

az vm image list --location chinanorth2 --publisher "MicrosoftWindowsServer" --offer "WindowsServer" --sku "2022-Datacenter" --all --query "[?imageDeprecationStatus.imageState=='Active']"

选项 2:使用 PowerShell

Get-AzVMImage -Location "chinanorth2" `
  -PublisherName "center-for-internet-security-inc" `
  -Offer "cis-rocky" `
  -Skus "cis-rockylinux-9-l1-gen2-azure-observability" `
  -Expand "properties/imageDeprecationStatus" |
  Where-Object { $_.ImageDeprecationStatus.ImageState -eq "Active" } |
  Select-Object Version

如果SQL Server的Azure 市场映像被弃用,SQL Server会发生什么情况?

即使SQL Server Azure 市场镜像被弃用,SQL Server也不会受到影响。

  • Azure VM 继续运行,而不会中断。
  • SQL Server实例继续正常运行。
  • 无法使用已弃用的SQL Server映像部署新 VM。

现有部署不需要任何动作。