你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

列出、更新和删除库资源

你可以使用 Azure CLI 或 Azure PowerShell 管理你的 Azure Compute Gallery(先前称为“共享映像库”)资源。

列出与你共享的库

列出与你的订阅共享的库。

region=westus
az sig list-shared --location $region 

列出与你的租户共享的库。

region=westus
az sig list-shared --location $region --shared-to tenant 

输出将包含与你共享的库的公共 nameuniqueID。 可以使用库的名称来查询可以通过库使用的映像。

下面是示例输出:

[
  {
    "location": "westus",
    "name": "1231b567-8a99-1a2b-1a23-123456789abc-MYDIRECTSHARED",
    "uniqueId": "/SharedGalleries/1231b567-8a99-1a2b-1a23-123456789abc-MYDIRECTSHARED"
  }
]

更新资源

对于能够更新的内容,存在一些限制。 以下项目可以更新:

Azure Compute Gallery:

  • 说明

映像定义:

  • 建议的 vCPU 数
  • 建议的内存
  • 说明
  • 生命周期终结日期

映像版本:

  • 区域副本计数
  • 目标区域数
  • 从最新项中排除
  • 生命周期终结日期

使用 az sig update 更新对库的说明。

az sig update \
   --gallery-name myGallery \
   --resource-group myGalleryRG \
   --set description="My updated description."

使用 az sig image-definition update 更新对映像定义的说明。

az sig image-definition update \
   --gallery-name myGallery\
   --resource-group myGalleryRG \
   --gallery-image-definition myImageDefinition \
   --set description="My updated description."

使用 az sig image-version update 更新要向其添加需复制的区域的映像版本。 此更改需要一定的时间,因为需将映像复制到新区域。

az sig image-version update \
   --resource-group myGalleryRG \
   --gallery-name myGallery \
   --gallery-image-definition myImageDefinition \
   --gallery-image-version 1.0.0 \
   --add publishingProfile.targetRegions  name=eastus

本示例说明如何使用 az sig image-version update 将此映像版本从作为最新映像使用的版本中排除。

az sig image-version update \
   --resource-group myGalleryRG \
   --gallery-name myGallery \
   --gallery-image-definition myImageDefinition \
   --gallery-image-version 1.0.0 \
   --set publishingProfile.excludeFromLatest=true

本示例说明如何使用 az sig image-version update 将此映像版本包括在考虑作为最新映像使用的版本中。

az sig image-version update \
   --resource-group myGalleryRG \
   --gallery-name myGallery \
   --gallery-image-definition myImageDefinition \
   --gallery-image-version 1.0.0 \
   --set publishingProfile.excludeFromLatest=false

删除资源

需按相反的顺序删除资源,先删除映像版本。 删除所有映像版本以后,即可删除映像定义。 删除所有映像定义以后,即可删除库。

需要先使用 az sig share reset 来停止公开共享库,才能删除社区共享库。

使用 az sig image-version delete 删除映像版本。

az sig image-version delete \
   --resource-group myGalleryRG \
   --gallery-name myGallery \
   --gallery-image-definition myImageDefinition \
   --gallery-image-version 1.0.0 

使用 az sig image-definition delete 删除映像定义。

az sig image-definition delete \
   --resource-group myGalleryRG \
   --gallery-name myGallery \
   --gallery-image-definition myImageDefinition

使用 az sig delete 删除库。

az sig delete \
   --resource-group myGalleryRG \
   --gallery-name myGallery

社区库

重要

Azure Compute Gallery - 社区库目前为预览版,并受 Azure Compute Gallery 预览版条款 - 社区库的约束。

若要发布社区库,需要在 Azure 订阅中设置预览功能。 从社区库映像创建 VM 将对所有 Azure 用户开放。

如需列出自己的库,并输出社区库的公共名称:

az sig list --query [*]."{Name:name,PublicName:sharingProfile.communityGalleryInfo.publicNames}"

注意

作为最终用户,若要获取社区库的公共名称,当前需要使用门户。 转到“虚拟机”>“创建”>“Azure 虚拟机”>“映像”>“查看所有映像”>“社区映像”>“公共库名称”。

使用 az sig image-definition list-community 列出社区库中可用的所有映像定义。

在此示例中,我们列出美国西部的 ContosoImage 库中的所有映像,以及创建 VM 所需的唯一 ID(按名称)、OS 和 OS 状态。

 az sig image-definition list-community \
   --public-gallery-name "ContosoImages-1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f" \
   --location westus \
   --query [*]."{Name:name,ID:uniqueId,OS:osType,State:osState}" -o table

使用 az sig image-version list-community 列出在社区库中共享的映像版本:

az sig image-version list-community \
   --location westus \
   --public-gallery-name "ContosoImages-1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f" \
   --gallery-image-definition myImageDefinition \
   --query [*]."{Name:name,UniqueId:uniqueId}" \
   -o table

直接共享库

重要

Azure Compute Gallery - 直接共享库目前处于预览阶段,并受 Azure Compute Gallery 预览条款的约束。

要在预览期间将映像发布到直接共享库,需要在 https://aka.ms/directsharedgallery-preview 注册。 从直接共享库创建 VM 的功能将对所有 Azure 用户开放。

在预览期间,需要新建一个库,并将属性 sharingProfile.permissions 设置为 Groups。 使用 CLI 创建库时,请使用 --permissions groups 参数。 不能使用现有库,当前无法更新该属性。

要查找与你共享的库的 uniqueID,请使用 az sig list-shared。 在此示例中,我们探讨的是位于美国西部区域的库。

region=westus
az sig list-shared --location $region --query "[].uniqueId" -o tsv

列出直接与你共享的所有映像定义,请使用 az sig image-definition list-shared

在此示例中,我们列出位于美国西部的库中的所有映像,以及创建 VM 所需的唯一 ID(按名称)、OS 和 OS 状态。

name="1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f-myDirectShared"
 az sig image-definition list-shared \
   --gallery-unique-name $name
   --location $region \
   --query [*]."{Name:name,ID:uniqueId,OS:osType,State:osState}" -o table

使用 az sig image-version list-shared 列出直接共享到你的映像版本:

imgDef="myImageDefinition"
az sig image-version list-shared \
   --location $region \
   --public-gallery-name $name \
   --gallery-image-definition $imgDef \
   --query [*]."{Name:name,UniqueId:uniqueId}" \
   -o table

后续步骤