Partager via


Nouveautés d’Azure VM Image Builder

S’applique aux : ✔️ Machines virtuelles Linux ✔️ Machines virtuelles Windows ✔️ Groupes identiques flexibles ✔️ Groupes identiques uniformes

Cet article contient toutes les principales modifications d’API et mises à jour des fonctionnalités pour le service Azure VM Image Builder.

Mises à jour

Septembre 2024

La création automatique d’images via des déclencheurs est désactivée si la génération du modèle d’image échoue plusieurs fois consécutivement. Cette désactivation évite les défaillances de build inutiles.

Vous pouvez toujours générer manuellement le modèle d’image. Une fois qu’une build manuelle réussit, les déclencheurs automatiques sont réactivés.

Ce comportement est le même, quelle que soit la version de l’API que vous utilisez pour la ressource de modèle d’image.

Mai 2024

Changement cassant : Respect de la casse

Depuis le 21 mai 2024, l’API VM Image Builder version 2024-02-01 et ultérieure applique le respect de la casse pour tous les champs. La majuscule des lettres dans vos demandes d’API doit correspondre exactement au format attendu.

Important

Si vous êtes un utilisateur existant du Générateur d’images de machine virtuelle, cette modification n’affecte pas vos ressources existantes. L’application du respect de la casse affecte uniquement aux ressources nouvellement créées qui utilisent l’API version 2024-02-01 et plus récente. Vos ressources existantes continuent de fonctionner comme prévu sans aucune modification.

Si vous rencontrez des problèmes liés au respect de la casse, reportez-vous à la documentation de l’API VM Image Builder mise à jour pour obtenir des conseils.

Auparavant, l’API Vm Image Builder était plus tolérante en termes de cas. À l'avenir, la précision est cruciale. Lorsque vous effectuez des appels d’API, veillez à utiliser la mise en majuscule correcte pour les noms de champs, les paramètres et les valeurs. Par exemple, si un champ est nommé vmBoot, vous devez utiliser vmBoot (non VMBoot ou vmboot).

Si vous envoyez une demande d’API à l’API Vm Image Builder version 2024-02-01 ou ultérieure avec des champs incorrects ou non reconnus, le service le rejette. Vous recevez une réponse d’erreur indiquant que la requête n’est pas valide. L’erreur ressemble à cet exemple :

Unmarshalling entity encountered error: unmarshalling type *v2024_02_01.ImageTemplate: struct field Properties: unmarshalling type *v2024_02_01.ImageTemplateProperties: struct field Optimize: unmarshalling type *v2024_02_01.ImageTemplatePropertiesOptimize: unmarshalling type *v2024_02_01.ImageTemplatePropertiesOptimize, unknown field \"vmboot\". There is an issue with the syntax with the JSON template you are submitting. Please check the JSON template for syntax and grammar. For more information on the syntax and grammar of the JSON template, visit http://aka.ms/azvmimagebuildertmplref.

Le message d’erreur mentionne un « champ inconnu » et vous dirige vers la documentation officielle : Créez un modèle JSON Bicep ou Azure Resource Manager.

Remarque

Lorsque vous effectuez des appels d’API au service Vm Image Builder, référencez toujours la documentation Swagger. Cette documentation sert de source définitive de vérité pour les spécifications de l’API Vm Image Builder. Bien que la documentation publique ait été mise à jour pour inclure la capitalisation appropriée et les noms de champs corrects avant la sortie de l’API, la définition Swagger contient des détails précis sur chaque API du constructeur d'images VM. Ces détails vous permettent de vous assurer que vous effectuez correctement des appels au service.

Les modifications de documentation suivantes ont été apportées pour faire correspondre les noms de champs dans l’API version 2024-02-01.

Dans la documentation Créer un Bicep Azure VM Image Builder ou un modèle JSON Azure Resource Manager :

  • Champs mis à jour :

    • Remplacement de plusieurs mentions de vmboot par vmBoot.
    • Une mention de imageVersionID a été remplacée par imageVersionId.
  • Champ supprimé :

    • apiVersion: nous vous recommandons d’éviter l’inclusion de ce champ dans vos demandes, car elle n’est pas spécifiée explicitement dans l’API. L’inclusion dans votre modèle JSON peut entraîner des erreurs dans votre build d’image.

Dans la documentation Options de mise en réseau d’Azure VM Image Builder :

  • Champ mis à jour :

    • Remplacé une mention de VirtualNetworkConfig par vnetConfig.
  • Champs supprimés :

    • subnetName dans la vnetConfig propriété : ce champ est déconseillé. Le nouveau champ est subnetId.
    • resourceGroupName dans la vnetConfig propriété : ce champ est déconseillé. Le nouveau champ est subnetId.

Épingler à une ancienne version de l’API VM Image Builder

Si vous souhaitez éviter d’apporter des modifications aux propriétés de vos modèles d’image en raison des nouvelles règles de respect de la casse, vous avez la possibilité d’épingler vos appels d’API Azure VM Image Builder à une version antérieure de l’API. Cette fixation vous permet de continuer à utiliser le comportement familier sans aucune modification.

Important

L’épinglage à une ancienne version de l’API Vm Image Builder peut fournir une compatibilité avec vos modèles existants, mais nous ne le recommandons pas en raison des facteurs suivants :

  • Les versions antérieures de l’API peuvent éventuellement être dépréciées.
  • En épinglant à une ancienne version d’API, vous manquez les dernières fonctionnalités et améliorations introduites dans les versions plus récentes. Ces fonctionnalités améliorent souvent les performances, la sécurité et les fonctionnalités.

Pour garantir la compatibilité avec vos modèles existants lorsque vous créez ou mettez à jour un modèle d’image, spécifiez la version d’API souhaitée en incluant le api-version paramètre dans votre appel au service. Par exemple:

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.VirtualMachineImages/imageTemplates/{imageTemplateName}?api-version=2022-07-01

Test de votre code

Après l’épinglage à l’ancienne version de l’API, testez votre code pour vérifier qu’il se comporte comme prévu. Assurez-vous que vos modèles existants continuent de fonctionner correctement.

Novembre 2023

Le Générateur d’images de machine virtuelle active les builds d’images isolées via Azure Container Instances de manière progressive. Le lancement devrait se terminer au début de 2024. Vos modèles d’image existants continuent de fonctionner, et il n’existe aucune modification dans la façon dont vous créez ou créez de nouveaux modèles d’image.

Vous pouvez observer un autre ensemble de ressources Azure temporaires qui apparaissent temporairement dans le groupe de ressources intermédiaire. Elle n’affecte pas vos builds réelles ou la façon dont vous interagissez avec le Générateur d’images de machine virtuelle. Pour en savoir plus, reportez-vous à Builds d’images isolées.

Pour utiliser les compilations d’images isolées, veuillez vous assurer que :

  • Votre abonnement est enregistré auprès du fournisseur Microsoft.ContainerInstance.
  • Il n’existe aucune stratégie bloquant le déploiement des ressources Azure Container Instances.
  • Le quota est disponible pour les ressources Azure Container Instances.

Avril 2023

La nouvelle fonctionnalité du portail a été ajoutée pour le Générateur d’images de machine virtuelle. Recherchez des modèles d’image dans le portail Azure, puis sélectionnez Créer. Vous pouvez également utiliser cette configuration de modèle pour commencer à créer et valider des images personnalisées à l’intérieur du portail.

Versions d’API

Version 2024-02-01+

Améliorations

  • Vous pouvez utiliser la nouvelle autoRun propriété pour exécuter la build de l’image lors de la création ou de la mise à jour du modèle. Pour plus d’informations, consultez Propriétés : autoRun.

  • Vous pouvez utiliser la nouvelle managedResourceTags propriété pour appliquer des balises aux ressources créées par le service Vm Image Builder dans le groupe de ressources intermédiaire pendant la génération d’image. Pour plus d’informations, consultez Propriétés : managedResourceTags.

  • Vous pouvez utiliser la nouvelle containerInstanceSubnetId propriété pour spécifier un sous-réseau sur lequel Azure Container Instances sera déployé pour les builds d’images isolées. Vous ne pouvez spécifier ce champ que si vous spécifiez subnetId. Ce champ doit se trouver sur le même réseau virtuel que le sous-réseau spécifié dans subnetId. Pour plus d’informations, consultez Apportez votre propre sous-réseau de machine virtuelle de build et votre propre sous-réseau Container Instances.

  • Cette version ajoute la prise en charge de la mise à jour de la vmProfile propriété, y compris les champs suivants :

    • vmSize
    • osDiskSizeGB
    • userAssignedIdentities
    • vnetConfig
      • subnetId
      • containerInstanceSubnetId

    Pour plus d’informations sur la vmProfile propriété, consultez vmProfile.

Modifications

La version 2024-02-01 de l’API introduit un changement cassant qui applique le respect de la casse à tous les champs. La majuscule des lettres dans vos demandes d’API doit correspondre exactement au format attendu. Si vous envoyez une demande d’API à l’API Vm Image Builder version 2024-02-01 ou ultérieure avec un cas incorrect ou des champs non reconnus, le service le rejette. Vous recevez une réponse d’erreur indiquant que la requête n’est pas valide. Pour plus d’informations, consultez Changement cassant : Respect de la casse dans cet article.

Version 2023-07-01

Modifications

La nouvelle errorHandling propriété vous donne plus de contrôle sur la façon dont les erreurs sont gérées pendant le processus de génération d’images. Pour plus d’informations, consultez errorHandling.

Version 2022-07-01

Améliorations

  • Cette version ajoute la prise en charge de l’utilisation de la dernière version d’image stockée dans azure Compute Gallery comme source pour le modèle d’image.
  • Cette version ajoute versioning pour la prise en charge de la génération de numéros de version pour les distributions d’images. Pour plus d’informations, consultez Propriétés : versioning.
  • Cette version ajoute la prise en charge de la configuration par région lorsque vous distribuez à Azure Compute Gallery. Pour plus d’informations, consultez Distribuer : targetRegions.
  • Cette version ajoute un nouveau File type de validation. Pour plus d’informations, consultez Propriétés : validate.
  • Vous pouvez désormais distribuer des disques durs virtuels (VHD) à un objet blob ou un conteneur personnalisés dans un compte de stockage personnalisé. Pour en savoir plus, consultez Distribuer : VHD.
  • Cette version ajoute la prise en charge de l’utilisation d’une image de galerie partagée directe comme source du modèle d’image.

Modifications

Version 2022-02-14

Améliorations

Version 2021-10-01

Changement cassant

L’API version 2021-10-01 introduit un changement du schéma d’erreur qui fera partie de chaque version future de l’API. Si vous disposez d’automatisations Azure VM Image Builder, ayez à l’esprit la nouvelle sortie d’erreur quand vous passez à l’API version 2021-10-01 ou ultérieure.

Nous vous recommandons, après avoir basculé vers la dernière version de l’API, que vous ne revenez pas à une version antérieure. Si vous revenez en arrière, vous devrez modifier à nouveau l'automatisation pour produire le schéma d’erreur précédent. Nous ne nous attendons pas à ce que le schéma d’erreur change de nouveau dans les versions ultérieures.

Sortie d’erreur pour la version 2020-02-14 et antérieure
{ 
  "code": "ValidationFailed",
  "message": "Validation failed: 'ImageTemplate.properties.source': Field 'imageId' has a bad value: '/subscriptions/subscriptionID/resourceGroups/resourceGroupName/providers/Microsoft.Compute/images/imageName'. Please review  http://aka.ms/azvmimagebuildertmplref  for details on fields requirements in the Image Builder Template." 
} 
Sortie d’erreur pour la version 2021-10-01 et ultérieure
{ 
  "error": {
    "code": "ValidationFailed", 
    "message": "Validation failed: 'ImageTemplate.properties.source': Field 'imageId' has a bad value: '/subscriptions/subscriptionID/resourceGroups/resourceGroupName/providers/Microsoft.Compute/images/imageName'. Please review  http://aka.ms/azvmimagebuildertmplref  for details on fields requirements in the Image Builder Template." 
  }
}

Améliorations

Version 2020-02-14

Améliorations

  • Ajout de la prise en charge de la création d’images à partir des sources suivantes :
    • Image managée
    • Galerie de calcul Azure
    • Référentiel d’images de plateforme (y compris le plan d’achat d’images de plateforme)
  • Ajout de la prise en charge des personnalisations suivantes :
    • Shell (Linux) : script ou commande inline
    • PowerShell (Windows) : script ou commande inline, exécuter avec élévation de privilèges, exécuter en tant que système
    • Fichier (Linux et Windows)
    • Redémarrage de Windows (Windows)
    • Windows Update (Windows) : critères de recherche, filtres et limite de mise à jour
  • Ajout de la prise en charge des types de distributions suivants :
    • Disque dur virtuel (VHD)
    • Image managée
    • Galerie de calcul Azure
  • Ajout de la prise en charge des clients pour utiliser leur propre réseau virtuel.
  • Ajout de la prise en charge des clients pour personnaliser la machine virtuelle de build (taille de machine virtuelle, taille du disque du système d’exploitation).
  • Ajout de la prise en charge des identités managées attribuées par l'utilisateur (pour les étapes de personnalisation/distribution).
  • Ajout de la prise en charge des images de génération 2.

API en préversion

L’API suivante est déconseillée, mais toujours prise en charge :

  • Version 2019-05-01-preview