¿Cómo verifico si ya existe una máquina virtual a través de la CLI de Azure?

¿Cómo verifico si ya existe una máquina virtual a través de la CLI de Azure?

Esta es una solución que funciona pero no muy limpia:

if [ "$(az vm list -d -o table --query "[?name=='VM_NAME']")" == "$(az vm list -d -o table --query "[?name=='ABSURD_NAME_THAT_CERTAINLY_DOES_NOT_EXIST']")" ]; 
then
    printf "VM DOES NOT EXIST YET"
else
    printf "VM ALREADY EXISTS"
fi

No pude entender qué
"$(az vm list -d -o table --query "[?name=='ABSURD_NAME_THAT_CERTAINLY_DOES_NOT_EXIST']")"
devuelve, por eso no pude acortar esta solución.
Ciertamente no soy un experto en secuencias de comandos Bash y no sé cómo convertir el resultado a valores hexadecimales o similares para hacerlo visible.

Por eso estoy buscando una versión corta de esta solución u otro enfoque más limpio. Desafortunadamente, no pude encontrar nada parecido az vm exists.

Respuesta1

Podrías usarGráfico azulpara poder hacerlo.

az graph query -q "Resources | where type =~'Microsoft.Compute/virtualMachines' | limit 1"

Puedes ver algún ejemplo.aquí.

Resources
| where type =~ 'microsoft.compute/virtualmachines' and name matches regex @'^Contoso(.*)[0-9]+$'
| order by name asc

Respuesta2

Encontré la solución hace un tiempo. La salida del comando az vm list si no hay ninguna máquina virtual disponible es aparentemente la cadena vacía. Pero debes usar un signo igual en lugar de dos para la comparación.

if [ "$(az vm list -d -o table --query "[?name=='VM_NAME']")" = "" ];
then
    echo "No VM was found."
else
    echo "VM was found."
fi

información relacionada