es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Consulta de gráficos de Azure para obtener el nombre de la máquina virtual y la dirección IP privada.

Estoy intentando filtrar las instancias basadas en etiquetas. Estoy utilizando el siguiente comando para listar las instancias que tienen la etiqueta wknhscale == ‘active’. Funciona correctamente y devuelve el nombre de la instancia y el grupo de recursos.

az graph query -q "Resources | where type =~ 'Microsoft.Compute/virtualMachines' | where tags['wknhscale']=='active' | project name, resourceGroup" | jq '[.data[] | {name, resourceGroup}]'

Ahora, al mismo tiempo, también quiero obtener la dirección IP de la instancia. Así que estoy utilizando la siguiente consulta, pero no me está devolviendo ningún dato.

az graph query -q "Resources | where type =~ 'Microsoft.Compute/virtualMachines' type =~ 'Microsoft.Compute/privateIPAddresses' | where tags['wknhscale']=='active'"
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para obtener la dirección IP de la instancia, puedes modificar el primer comando agregando otro filtro para incluir información sobre la dirección IP privada. El comando actualizado es el siguiente:

    az graph query -q "Resources
    | where type =~ 'Microsoft.Compute/virtualMachines' and tags['wknhscale'] == 'active'
    | extend nicId = id
    | join (Resources
            | where type =~ 'Microsoft.Network/networkInterfaces'
            | extend ipConfigs = array_length(properties.ipConfigurations)
            | mv-expand ipconfigArray = properties.ipConfigurations
            | where ipConfigs == 1 or ipconfigArray.properties.primary == true
            | extend privateIp = tostring(ipconfigArray.properties.privateIPAddress)
            | project nicId, privateIp, publicIpId = tostring(ipconfigArray.properties.publicIPAddress.id)
            ) on $left.nicId == $right.id
    | project name, resourceGroup, privateIp, publicIpId
    " | jq '[.data[] | {name, resourceGroup, privateIp, publicIpId}]'
    

    Este comando utiliza el operador join para obtener información sobre la interfaz de red y las configuraciones de IP asociadas a la máquina virtual. El operador extend se utiliza para agregar nicId al recurso de la máquina virtual para que pueda ser utilizado para unirlo con el recurso de la interfaz de red. El operador mv-expand se utiliza para aplanar el arreglo de configuraciones de IP y filtrar solo la configuración de IP primaria. Finalmente, el operador project se utiliza para seleccionar las columnas relevantes.

    Este comando debería devolver el nombre, el grupo de recursos, la dirección IP privada y la dirección IP pública (si la hay) de las instancias que tienen la etiqueta wknhscale establecida como active.

Comments are closed.