Working With Azure CLI 2.0

This is a sequel to my previous post of Introduction to Azure CLI 2.0 and its Installation, where I talked about why we need Azure CLI 2.0 and what’s exactly changed. Azure CLI 2.0 is a Command Line Utility and now we are going to look into the command.
Azure CLI 2.0 uses the keyword az whereas Azure XPlat CLI uses Azure so both the utilities can run on your system simultaneously. If you have been using Azure XPlat CLI, the transaction will not be difficult and you just have to use the above mantra az noun verb.

For eg if you want to list the VMs in an account then say

az vm list

Here VM is the Service or the noun and the list is the operation or the verb in the above methodology.

Getting started with the account


When we run this command, then it will generate an authentication key for me and we need to go to the URL alias ms/devicelogin and paste the code generated by the Command Line. Login to my Azure account to tell my command line to use the account.

Once you’re into the account, it’s going to give you the details about all the subscriptions associated with the account. Now you need to set one account.

az account set


I have used the subscription ID to set as my default subscription but you can use the name of the subscription as well.

Now to verify, we can use az account show command given below.


Working with Resource Groups

Let us create a new Resource Group.


To check all the existing groups

az group list

Now, the command given above gave me a lot of data and it was pretty hard to take out the information from it. Hence we will talk about how to format the output and query it.


To format the output, we have 4 options. I am going to use az storage account list command but I am going to add –out or –o to tell my command line to format 

  • TSV (TAB Spaced Values)
    It is going to format the output in tab space values. It’s suitable when you have less content and you’re querying it on some particular property.

    az storage account list –out tsv


  • Table
    As the name suggests, this is going to format the output in a tabular form and its suitable for the big data with the multiple properties.


  • JSON
    Now all of us work with JSON day in and day out so it is my default output format as I can directly take out the output in a JSON and pass it to some other tool/Application as per the requirement.


  • Jsonc
    Jsonc is nothing but the same JSON but in the color coded format, which is more readable from the user prospective as well as useful as it is in the same JSON format that is usable across.


You can set your default output format by using the command given below.

az configure –output jsonc


As I needed some colors in my life and screen, I opted for the jsonc and pressed 2 as my choice.


As we are getting a lot of data, we need a mechanism to query. For Querying, Azure CLI 2.0 uses a utility call JMESPath It's a query language for JSON, which is popular amongst the open source and AWS developer. You can directly query from the command prompt or pass the output to the jmespath terminal and use the JMESPath query structure. Let us check out the query in the command line

We need to use Query to query the data and as we are getting the data in the form of an array, so we need to say –query “[].PropertyName

Let us run this for the storage account list and take out just the names of the account

az storage account list --query “[].name”


As we can see, we are only getting the name of the storage accounts, as expected. In this example, I am using the svccat as 4 out of 5 storage accounts have it in its name and piping, the output to further query down to the name of the storage account as without it we are going to get all the details of the 4 storage account queried in the first query.



We saw that writing a query is so easy in this Azure CLI 2.0 and with the az noun verb nomenclature becomes quite easy and even if you don’t know the command, you can type –h for all the available commands associated with that group. Also, we looked into the output formats and query the outputs in the command line itself.