0

看来默认的三部分版本是某种时间戳。我希望能够在生成图像版本时指定版本号。我在故障排除指南中只看到了版本格式的提及,但没有具体说明如何设置它。

eg 镜像版本名称应遵循 Major(int).Minor(int).Patch(int) 格式,例如:1.0.0、2018.12.1 等。

在此处输入图像描述

我设置分销商:

  $distributorObjectParameters = @{
    SharedImageDistributor = $true
    GalleryImageId         = $galleryImageId
    ReplicationRegion      = $Location
    ArtifactTag            = $tags
    RunOutputName          = $imageTemplateName
    ExcludeFromLatest      = $false
  }
  $distributorObject = New-AzImageBuilderDistributorObject @distributorObjectParameters

然后使用以下命令创建模板:

  $templateParameters = @{
    ImageTemplateName      = $imageTemplateName
    ResourceGroupName      = $imageResourceGroup
    Source                 = $sourceObject
    Distribute             = $distributorObject
    Customize              = $customizerCollection
    Location               = 'East US 2'
    UserAssignedIdentityId = $identityResourceId
    BuildTimeoutInMinute   = $buildTimeoutInMinute
  }
  New-AzImageBuilderTemplate @templateParameters

是否有一个我忽略了设置版本值的参数?

4

1 回答 1

0

我认为您无法从 Azure 获得该选项。在我们的项目中,我们使用bash和自己计算版本az-cli

IMAGE_VERSIONS=$(az sig image-version list --gallery-image-definition "${image_definition_name}" --gallery-name "${image_gallery_name}" -g "${ARM_RESOURCE_GROUP}")
if [[ "${IMAGE_VERSIONS}" == "[]" ]]; then
    DESTINATION_IMAGE_VERSION="1.0.0"
else
    DESTINATION_IMAGE_VERSION=$(echo "${IMAGE_VERSIONS}" | grep -i "versions/" | tail -n 1 | rev | cut -d '/' -f1 | cut -d '"' -f2 | rev)
fi
DESTINATION_IMAGE_VERSION=$(echo "${DESTINATION_IMAGE_VERSION}" | awk -F. -v OFS=. 'NF==1{print ++$NF}; NF>1{if(length($NF+1)>length($NF))$(NF-1)++; $NF=sprintf("%0*d", length($NF), ($NF+1)%(10^length($NF))); print}')
echo $DESTINATION_IMAGE_VERSION

我们将初始版本实例化为1.0.0(第一次)&一旦设置,我们只需在下一次构建迭代中递增..

于 2022-03-04T09:52:19.897 回答