Получение сведений о виртуальной машине с помощью запросов
Вы можете получить подробные сведения о созданной виртуальной машине. Используемая команда для получения сведений из ресурса — это show
.
az vm show --name $vmName --resource-group $resourceGroup
Виртуальная машина имеет множество свойств, которые могут быть сложными для визуального анализа. Возвращаемые данные JSON содержат сведения об аутентификации, хранилище сетевого интерфейса и многом другом. Самое главное — они содержат идентификаторы объектов Azure для ресурсов, подключенных к виртуальной машине. Идентификаторы объектов обеспечивают непосредственный доступ к этим ресурсам для получения дополнительных сведений о конфигурации и возможностях виртуальной машины.
Для извлечения идентификатора --query
объекта используется аргумент. Запросы написаны на языке запросов JMESPath. Начните с получения идентификатора объекта для сетевой карты.
az vm show --name $vmName \
--resource-group $resourceGroup \
--query 'networkProfile.networkInterfaces[].id' \
--output tsv
После добавления запроса происходит много действий. Каждая часть запроса ссылается на ключ в выходных данных JSON или является оператором JMESPath.
networkProfile
— это ключ JSON верхнего уровня сnetworkInterfaces
в качестве вложенного ключа. Если значение JSON является словарем, на его ключи ссылается родительский ключ с помощью оператора.
.- Значение
networkInterfaces
представляет собой массив, поэтому он неструктурирован с[]
помощью оператора. Этот оператор выполняет остальную часть запроса к каждому элементу массива. В этом случае он возвращает значениеid
каждого элемента массива.
Формат выходных данных tsv
(значение с разделением знаками табуляции) гарантированно включают только данные результатов и пробелы (знаки табуляции и символы новой строки).
Так как возвращаемое значение является одной строкой без доступа, она безопасно назначать непосредственно переменной оболочки.
Дополнительные сведения о запросе выходных данных Azure CLI см. в статье "Как запросить выходные данные команды Azure CLI с помощью запроса JMESPath"
Назначьте идентификатор объекта сетевого адаптера переменной оболочки.
nicId=$(az vm show \
-n $vmName \
-g $resourceGroup \
--query 'networkProfile.networkInterfaces[].id' \
-o tsv)
В этом примере также показано использование коротких аргументов. Вы можете использовать -g
вместо --resource-group
, -n
вместо --name
и -o
вместо --output
.