Résoudre les erreurs de référence SKU non disponible

Cet article explique comment résoudre les erreurs liées au fait qu’une référence SKU n’est pas disponible dans les zones de disponibilité ou la région d’un abonnement Azure. Parmi les références SKU de ressource, citons les types de compte de stockage ou de taille de machines virtuelles. Ces erreurs se produisent pendant les déploiements avec un modèle Azure Resource Manager (modèle ARM) ou un fichier Bicep. L’erreur se produit également avec les commandes telles que New-AzVM ou az vm create qui spécifient un paramètre size pour une référence SKU qui n’est disponible.

Symptôme

Quand une machine virtuelle est déployée pour une référence SKU qui n’est pas disponible, une erreur se produit. Les commandes de déploiement Azure CLI et Azure PowerShell affichent un message d’erreur selon lequel la taille demandée n’est pas disponible dans la localisation ou la zone. Le journal d’activité du portail Azure indique les codes d’erreur SkuNotAvailable ou InvalidTemplateDeployment.

Dans cet exemple, New-AzVM spécifiait le paramètre -Size pour une référence SKU qui n’est pas disponible. Le code d’erreur SkuNotAvailable apparaît dans le journal d’activité du portail.

The requested size for resource '<resource ID>' is currently not available in location '<location>'
zones '<zones>' for subscription '<subscription ID>'.
Please try another size or deploy to a different location or zones.

Quand une machine virtuelle est déployée avec un modèle ARM ou un fichier Bicep pour une référence SKU qui n’est pas disponible, une erreur de validation se produit. Le code d’erreur InvalidTemplateDeployment et le message d’erreur sont affichés. Le déploiement ne démarre pas ; ainsi, il n’y a aucun historique de déploiement, mais l’erreur apparaît dans le journal d’activité du portail.

Error: Code=InvalidTemplateDeployment
Message=The template deployment failed with error: The resource with id: '<resource ID>' failed validation
with message: The requested size for resource '<resource ID>' is currently not available in
location '<location>' zones '<zones>' for subscription '<subscription ID>'.
Please try another size or deploy to a different location or zones.

Cause

Vous obtenez cette erreur dans les scénarios suivants :

  • Quand la référence SKU de ressource que vous avez sélectionnée, telle qu’une taille de machine virtuelle, n’est pas disponible pour une localisation ou zone.
  • Si vous déployez une machine virtuelle Azure Spot ou une instance de groupe identique Spot et qu’il n’y a aucune capacité pour Azure Spot à cette localisation. Pour plus d’informations, consultez Messages d’erreur Spot.

Solution

Si aucune référence SKU répondant à vos besoins métier n’est disponible pour votre abonnement dans une localisation ou zone, envoyez une demande de référence SKU au Support Azure.

Pour déterminer les références SKU qui sont disponibles dans une localisation ou zone, utilisez la commande az vm list-skus.

az vm list-skus --location centralus --size Standard_D --all --output table
  • --location filtre la sortie par localisation.
  • --size recherche par un nom partiel.
  • --all affiche toutes les informations et inclut les tailles qui ne sont pas disponibles pour l’abonnement actuel.
ResourceType     Locations    Name               Zones    Restrictions
---------------  -----------  --------------     -------  --------------
virtualMachines  centralus    Standard_D1        1        None
virtualMachines  centralus    Standard_D11       1        None
virtualMachines  centralus    Standard_D11_v2    1,2,3    None
virtualMachines  centralus    Standard_D16ds_v4  1,2,3    NotAvailableForSubscription, type: Zone,
                                                          locations: centralus, zones: 1,2,3

Zones de disponibilité

Vous pouvez voir toutes les ressources de calcul pour les zones de disponibilité d’une localisation. Par défaut, seules les références SKU sans restriction s’affichent. Pour inclure les références SKU avec restrictions, utilisez le paramètre --all.

az vm list-skus --location centralus --zone --all --output table
ResourceType      Locations    Name                 Zones    Restrictions
----------------  -----------  -------------------  -------  --------------
disks             centralus    Premium_LRS          1,2,3    None
disks             centralus    Premium_LRS          1,2,3    None
virtualMachines   centralus    Standard_A2_v2       1,2,3    None
virtualMachines   centralus    Standard_D16ds_v4    1,2,3    NotAvailableForSubscription, type: Zone,
                                                             locations: centralus, zones: 1,2,3

Vous pouvez filtrer par un resourceType tel que les machines virtuelles pour les zones de disponibilité.

az vm list-skus --location centralus --resource-type virtualMachines --zone --all --output table
ResourceType      Locations    Name                 Zones    Restrictions
----------------  -----------  -------------------  -------  --------------
virtualMachines   centralus    Standard_A1_v2       1,2,3    None
virtualMachines   centralus    Standard_A2m_v2      1,2,3    None
virtualMachines   centralus    Standard_A2_v2       1,2,3    None
virtualMachines   centralus    Standard_D16ds_v4    1,2,3    NotAvailableForSubscription, type: Zone,
                                                             locations: centralus, zones: 1,2,3