Как проверить, существует ли уже виртуальная машина, с помощью Azure CLI?

Как проверить, существует ли уже виртуальная машина, с помощью Azure CLI?

Это рабочее решение, но не очень чистое:

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

Я не смог понять, что
"$(az vm list -d -o table --query "[?name=='ABSURD_NAME_THAT_CERTAINLY_DOES_NOT_EXIST']")"
возвращает, поэтому я не смог сократить это решение.
Я, конечно, не эксперт в написании скриптов Bash и не знаю, как преобразовать результат в шестнадцатеричные значения или что-то подобное, чтобы сделать его видимым.

Поэтому я ищу либо короткую версию этого решения, либо другой более чистый подход. К сожалению, я не смог найти ничего похожего az vm exists.

решение1

Вы могли бы использоватьЛазурный графикдля того, чтобы это сделать.

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

Вы можете увидеть некоторые примерыздесь.

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

решение2

Я нашел решение некоторое время назад. Вывод команды az vm list, если vm недоступен, по-видимому, представляет собой пустую строку. Но для сравнения нужно использовать один знак равенства вместо двух.

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

Связанный контент