Azure CLI를 통해 VM이 이미 존재하는지 어떻게 확인하나요?

Azure CLI를 통해 VM이 이미 존재하는지 어떻게 확인하나요?

이것은 작동하는 솔루션이지만 그다지 깨끗하지는 않습니다.

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 스크립팅의 전문가가 아니며 결과를 16진수 또는 이와 유사한 값으로 변환하여 표시하는 방법을 모릅니다.

그래서 저는 이 솔루션의 짧은 버전이나 좀 더 깔끔한 접근 방식을 찾고 있습니다. 불행히도 나는 같은 것을 찾을 수 없었습니다 az vm exists.

답변1

당신은 사용할 수 있습니다Azure 그래프그것을 하기 위해서.

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

얼마전에 해결책을 찾았습니다. vm을 사용할 수 없는 경우 az vm list 명령의 출력은 분명히 빈 문자열입니다. 하지만 비교를 위해서는 두 개의 등호 대신 하나의 등호를 사용해야 합니다.

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

관련 정보