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.