Delen via


De Azure CLI-aliasextensie gebruiken

Met de aliasextensie kunnen gebruikers aangepaste opdrachten definiëren voor de Azure CLI door gebruik te maken van bestaande opdrachten. Met aliassen kunt u uw werkstroom eenvoudig houden door snelkoppelingen toe te laten. De Jinja2-sjabloonengine zorgt voor Azure CLI-aliassen en biedt geavanceerde argumentverwerking.

Notitie

De aliasextensie is momenteel in openbare preview. De functies en indeling van het configuratiebestand kunnen nog veranderen.

De aliasextensie installeren

De minimaal vereiste Azure CLI-versie waarmee u de aliasextensie kunt gebruiken, is 2.0.28. Voer az --version uit om uw versie te controleren. Als u uw installatie moet bijwerken, volgt u de instructies in De Azure CLI installeren.

Installeer de aliasextensie met de opdracht az extension add .

az extension add --name alias

Controleer de installatie van de extensie met az extension list. Als de aliasextensie correct is geïnstalleerd, wordt deze weergegeven in de uitvoer van die opdracht.

az extension list --output table --query '[].{Name:name}'
Name
------
alias

De aliasextensie up-to-date houden

De aliasextensie is nog in ontwikkeling en er worden daarom regelmatig nieuwe versies uitgebracht. Nieuwe versies worden niet geïnstalleerd wanneer u de CLI bijwerkt. Installeer de updates voor de extensie met az extension update.

az extension update --name alias

Aliassen voor de Azure CLI beheren

Met de aliasextensie kunt u aliassen voor andere CLI-opdrachten maken en beheren. Als u alle beschikbare opdrachten en parameterdetails wilt weergeven, voert u de aliasopdracht uit met --help.

az alias --help

Eenvoudige aliasopdrachten maken

Aliassen kunnen onder meer worden gebruikt om de bestaande namen van opdrachtgroepen of opdrachten in te korten. U kunt bijvoorbeeld de naam van de opdrachtgroep group inkorten tot rg en de naam van de opdracht list tot ls.

az alias create --name rg --command group
az alias create --name ls --command list

Deze nieuw gedefinieerde aliassen kunnen nu overal worden gebruikt waar u normaliter de oorspronkelijke opdracht(groep)namen zou gebruiken.

az rg list
az rg ls
az vm ls

Neem deze niet op az als onderdeel van de aliasopdracht.

Aliassen kunnen ook snelkoppelingen zijn voor volledige opdrachten. In het volgende voorbeeld worden de beschikbare resourcegroepen en hun locaties als tabeluitvoer weergegeven:

az alias create --name ls-groups --command "group list --query '[].{Name:name, Location:location}' --output table"

Nu kan ls-groups worden uitgevoerd als elke andere CLI-opdracht.

az ls-groups

Een aliasopdracht maken met argumenten

U kunt ook positionele argumenten toevoegen aan een aliasopdracht door ze als {{ arg_name }} op te nemen in de naam van de alias. De witruimte binnen de accolades is vereist.

az alias create --name "alias_name {{ arg1 }} {{ arg2 }} ..." --command "invoke_including_args"

In de volgende voorbeeldalias ziet u hoe u positionele argumenten gebruikt om het openbare IP-adres van een VM op te halen.

az alias create \
    --name "get-vm-ip {{ resourceGroup }} {{ vmName }}" \
    --command "vm list-ip-addresses --resource-group {{ resourceGroup }} --name {{ vmName }}
        --query [0].virtualMachine.network.publicIpAddresses[0].ipAddress"

Wanneer u deze opdracht uitvoert, kent u waarden toe aan de positionele argumenten.

az get-vm-ip MyResourceGroup MyVM

U kunt ook omgevingsvariabelen gebruiken in aliasopdrachten. Deze worden tijdens runtime geëvalueerd. In het volgende voorbeeld ziet u de alias create-rg, die een resourcegroep in eastus maakt en vervolgens de tag owner toevoegt. Deze tag wordt toegewezen aan de waarde van de lokale omgevingsvariabele USER.

az alias create \
    --name "create-rg {{ groupName }}" \
    --command "group create --name {{ groupName }} --location eastus --tags owner=\$USER"

Als u de omgevingsvariabelen in de opdracht van de alias wilt registreren, moet het dollarteken $ worden voorzien van escape-tekens.

Argumenten verwerken met Jinja2-sjablonen

Jinja2 voert de vervanging van het argument uit in de aliasextensie. Met Jinja2-sjablonen kunt u de argumenten bewerken.

Met Jinja2-sjablonen kunt u aliassen maken die andere typen argumenten gebruiken dan de onderliggende opdracht. U kunt bijvoorbeeld een alias maken die een opslag-URL gebruikt. Deze URL wordt vervolgens geparseerd om de namen van het account en de container door te geven aan de opslagopdracht.

az alias create \
    --name 'storage-ls {{ url }}' \
    --command "storage blob list
        --account-name {{ url.replace('https://', '').split('.')[0] }}
        --container-name {{ url.replace('https://', '').split('/')[1] }}"

Raadpleeg de Jinja2-documentatie voor meer informatie over de sjabloon-engine Jinja2.

Configuratiebestand van de alias

Een andere manier om aliassen te maken en te wijzigen is door het configuratiebestand van de alias te wijzigen. Opdrachtdefinities voor aliassen worden naar een configuratiebestand geschreven dat zich in $AZURE_CONFIG_DIR/alias bevindt. De standaardwaarde van AZURE_CONFIG_DIR is $HOME/.azure in macOS en Linux en %USERPROFILE%\.azure in Windows. Het configuratiebestand voor aliassen heeft de configuratiebestandsindeling INI. De indeling voor aliasopdrachten is:

[alias_name]
command = invoked_commands

Voor aliassen die positionele argumenten bevatten, is de indeling voor aliasopdrachten als volgt:

[alias_name {{ arg1 }} {{ arg2 }} ...]
command = invoked_commands_including_args

Een aliasopdracht maken met argumenten via het configuratiebestand van de alias

Het volgende voorbeeld laat een alias voor een opdracht met argumenten zien. Deze opdracht haalt het openbare IP-adres voor een virtuele machine op. Aliasopdrachten moeten zich allemaal op één regel bevinden en alle argumenten in de aliasnaam gebruiken.

[get-vm-ip {{ resourceGroup }} {{ vmName }}]
command = vm list-ip-addresses --resource-group {{ resourceGroup }} --name {{ vmName }} --query [0].virtualMachine.network.publicIpAddresses[0].ipAddress

De aliasextensie verwijderen

Gebruik de opdracht az extension remove om de extensie te verwijderen.

az extension remove --name alias

Verwijdert u de extensie vanwege een bug of andere problemen? Meld dit dan op GitHub, zodat we naar een oplossing kunnen zoeken.