Partager via


Définir des variables d’interpréteur de commandes à partir de la sortie Azure CLI

Maintenant que vous disposez de l'ID de l'interface réseau, exécutez az network nic show pour obtenir les informations le concernant. Vous n’avez pas besoin d’un groupe de ressources ici, car le nom du groupe de ressources est contenu dans l’ID de ressource Azure.

az network nic show --ids $nicId

Cette commande affiche toutes les informations relatives à l’interface réseau de la machine virtuelle. Ces données incluent les paramètres DNS, les informations IP, les paramètres de sécurité et l’adresse MAC. La requête suivante montre comment obtenir l’adresse IP publique et les ID d’objet de sous-réseau.

az network nic show --ids $nicId \
  --query '{IP:ipConfigurations[].publicIPAddress.id, Subnet:ipConfigurations[].subnet.id}' \
  -o json
{
  "IP": [
    "/subscriptions/.../resourceGroups/TutorialResources/providers/Microsoft.Network/publicIPAddresses/TutorialVM1PublicIP"
  ],
  "Subnet": [
    "/subscriptions/.../resourceGroups/TutorialResources/providers/Microsoft.Network/virtualNetworks/TutorialVM1VNET/subnets/TutorialVM1Subnet"
  ]
}

Cette commande affiche un objet JSON qui a des clés personnalisées ('IP' et 'Subnet') pour les valeurs extraites. Bien que ce style de sortie ne soit peut-être pas utile pour les outils en ligne de commande, il aide à la lisibilité humaine et peut être utilisé avec des scripts personnalisés.

Pour utiliser les outils en ligne de commande, modifiez la commande pour supprimer les clés JSON personnalisées et la sortie en tant que tsv. La read commande traite ce style de sortie en chargeant les résultats dans plusieurs variables. Étant donné que deux valeurs sont affichées sur des lignes distinctes, le read délimiteur de commande doit être défini sur la chaîne vide plutôt que sur la valeur par défaut de l’espace blanc non-newline.

read -d '' ipId subnetId <<< $(az network nic show \
  --ids $nicId \
  --query '[ipConfigurations[].publicIPAddress.id, ipConfigurations[].subnet.id]' \
  -o tsv)

Si vous ne souhaitez pas utiliser la commande Bash read ou PowerShell -split , vous pouvez définir chaque variable séparément.

$ipId = az network nic show --ids $nicId --query '[ipConfigurations[].publicIPAddress.id]' -o tsv
$subnetId = az network nic show --ids $nicId --query '[ipConfigurations[].subnet.id]' -o tsv

Utilisez l’ID d’objet IP public pour rechercher l’adresse IP publique et la stocker dans une variable d’interpréteur de commandes. L’ID de sous-réseau a été utilisé pour montrer comment interroger et stocker plusieurs valeurs dans Azure CLI. Par conséquent, il n’est pas nécessaire pour le reste du didacticiel.

vmIpAddress=$(az network public-ip show --ids $ipId \
  --query ipAddress \
  -o tsv)

Vous disposez maintenant de l’adresse IP de la machine virtuelle stockée dans une variable d’interpréteur de commandes. Passez en avant et vérifiez qu’il s’agit de la même valeur que celle que vous avez utilisée pour vous connecter initialement à la machine virtuelle.

echo $vmIpAddress