Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure DevOps-tjänster
Note
Den här funktionen lanseras den här veckan och nästa vecka. Om du inte ser funktionen ännu i ditt Azure DevOps Services-projekt kan du checka tillbaka om några dagar.
Azure DevOps CLI gör det möjligt för dig att hantera Azure DevOps-resurserna från kommandoraden. Kör CLI-kommandon i en YAML-pipeline med AzureCLI@3 uppgift för att automatisera vanliga DevOps-uppgifter som en del av ditt CI/CD-arbetsflöde. Microsoft-värdbaserade Windows- och Linux-agenter innehåller redan Azure CLI och Azure DevOps CLI-tillägget.
För autentisering använder du en Azure DevOps tjänstanslutning som backas upp av Microsoft Entra arbetsbelastningsidentitetsfederation. Vi rekommenderar den här metoden eftersom den eliminerar hantering av autentiseringsuppgifter. Använd endast en personlig åtkomsttoken (PAT) när en tjänstanslutning inte är tillgänglig.
Autentisera med Azure DevOps
Vissa Azure DevOps CLI-kommandon, till exempel az devops configure och az devops --help, kräver ingen autentisering. De ansluter inte till Azure DevOps. De flesta kommandon interagerar med Azure DevOps och kräver autentisering.
Du kan autentisera med hjälp av System.AccessToken-säkerhetstoken som används av den körande pipelinen genom att tilldela den till en miljövariabel som heter AZURE_DEVOPS_EXT_PAT, enligt följande exempel.
Att använda System.AccessToken kräver att man har en PAT. Som ett säkrare alternativ använder du en tjänstanslutning. Information om hur du konfigurerar finns i Hantera tjänstanslutningar.
- bash: |
az pipelines build list --organization '$(System.TeamFoundationCollectionUri)' --project '$(System.TeamProject)'
displayName: 'Show build list'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
Om du har flera steg som kräver autentisering lägger du till AZURE_DEVOPS_EXT_PAT miljövariabeln i varje steg.
För mer information om omfattningen av säkerhetstoken som används av den körande pipelinen, se på Åtkomst till arkiv, artefakter och andra resurser.
Mer information om autentisering med hjälp av en personlig åtkomsttoken (PAT) finns i Logga in med en personlig åtkomsttoken.
Logga in på Azure DevOps CLI med Windows- och Linux-värdbaserade agenter
De Microsoft-värdbaserade Windows- och Linux-agenterna är förkonfigurerade med Azure CLI och Azure DevOps CLI-tillägget.
I följande exempel visas hur du loggar in på Azure DevOps och kör några kommandon. I det här exemplet används avbildningen ubuntu-latest Microsoft-hosted agent. Du kan ersätta den med någon av de andra Windows- eller Linux-värdbaserade avbildningarna.
Det här exemplet autentiserar med Azure DevOps CLI. Den använder säkerhetstoken System.AccessToken som används av pipelinen som körs.
trigger:
- main
pool:
vmImage: 'ubuntu-latest'
steps:
- bash: az --version
displayName: 'Show Azure CLI version'
- bash: az devops configure --defaults organization='$(System.TeamFoundationCollectionUri)' project='$(System.TeamProject)' --use-git-aliases true
displayName: 'Set default Azure DevOps organization and project'
- bash: |
az pipelines build list
git pr list
displayName: 'Show build list and PRs'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
Installera Azure DevOps CLI-tillägg med macOS-värdagenter
MacOS-Microsoft-värdbaserade agenter har Azure CLI installerat men inte Azure DevOps CLI-tillägget. Om du vill installera Azure DevOps CLI-tillägget kör du följande kommando i pipelinen innan du gör några Azure DevOps CLI-anrop.
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
Uppgradera värdagentens version av Azure CLI
Microsoft-värdbaserade agenter distribuerar typiskt veckouppdateringar till programvaran i de virtuella miljöerna. För vissa verktyg används den senaste versionen vid tidpunkten för distributionen. I andra fall låses verktyget till specifika versioner.
- Om du vill kontrollera den medföljande programvaran och deras versioner för Microsoft agenter, inklusive den installerade versionen av Azure CLI och Azure DevOps CLI-tillägget, följer du länkarna Included Software i Software tabell.
- Om du vill kontrollera den aktuella versionen för Azure CLI läser du Så här installerar du Azure CLI.
Du kan uppgradera Azure CLI på dina värdbaserade avbildningar genom att köra följande kommandon i pipelinen.
# Specify python version
- task: UsePythonVersion@0
inputs:
versionSpec: '3.x'
architecture: 'x64'
# Update to latest Azure CLI version
- bash: pip install --pre azure-cli
displayName: 'Upgrade Azure CLI'
Installera cli-tillägget för Azure DevOps villkorligt
Om din pipeline körs på flera avbildningar av Microsoft värdbaserade virtuella datorer, varav vissa inte har Azure DevOps CLI-tillägget installerat, kan du installera villkorligt.
trigger:
- main
# Run on multiple Microsoft-hosted agent images
strategy:
matrix:
linux24:
imageName: "ubuntu-24.04"
linux22:
imageName: "ubuntu-22.04"
mac15:
imageName: "macos-15"
mac14:
imageName: "macos-14"
windows2025:
imageName: "windows-2025"
maxParallel: 3
pool:
vmImage: $(imageName)
steps:
- bash: az --version
displayName: 'Show Azure CLI version'
# Install Azure DevOps CLI extension only on macOS images
- bash: az extension add -n azure-devops
condition: contains(variables.imageName, 'mac')
displayName: 'Install Azure DevOps extension'
# Azure DevOps CLI extension call that does not require login or credentials
# since it configures the local environment
- bash: az devops configure --defaults organization='$(System.TeamFoundationCollectionUri)' project='$(System.TeamProject)' --use-git-aliases true
displayName: 'Set default Azure DevOps organization and project'
# Call that does require credentials, use the System.AccessToken PAT
# and assign to AZURE_DEVOPS_EXT_PAT which is known to Azure DevOps CLI extension
- bash: |
az pipelines build list
git pr list
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
displayName: 'Show build list and PRs'
Azure DevOps CLI med lokalt installerade agenter
Du kan använda följande metoder för att installera eller uppgradera Azure DevOps CLI i din lokala agent.
- Installera manuellt Azure CLI och Azure DevOps CLI-tillägg
- Installera Azure CLI och Azure DevOps CLI-tillägget i pipelinen
Installera Azure CLI och Azure DevOps CLI-tillägg manuellt
Det går snabbare att installera Azure CLI- och Azure DevOps CLI-tillägget på din lokala agent när du etablerar den virtuella datoravbildningen för agenten än att installera dem varje gång pipelinen körs.
Information om hur du installerar Azure CLI på din egen värdbaserade agentavbildning finns i Installera Azure CLI. Det finns separata instruktioner för Windows, Linux och macOS.
När du har installerat Azure CLI installerar du CLI-tillägget Azure DevOps.
Installera Azure CLI- och Azure DevOps CLI-tillägget i pipelinen
Följande exempel på hur du konfigurerar Azure CLI och Azure DevOps CLI-tillägget på en lokalt installerad agent med hjälp av en pipeline har följande förutsättningar.
- Installera Azure CLI med hjälp av Python. Python måste installeras på agenten enligt anvisningarna i Python versionsuppgift – Hur kan jag konfigurera en lokalt installerad agent för att använda den här uppgiften?. Uppgiften
UsePythonVersion@0installerar inte Python på din egen värdbaserade agent. Om du bara har en version av Python installerad på din lokala agent och den finns i sökvägen behöver du inte använda uppgiftenUsePythonVersion@0.
# Specify python version if you have side-by-side versions
- task: UsePythonVersion@0
inputs:
versionSpec: '3.x'
architecture: 'x64'
# Update pip to latest
- bash: python -m pip install --upgrade pip
displayName: 'Upgrade pip'
# Update to latest Azure CLI version, min version required for Azure DevOps is 2.10.1
- bash: pip install --pre azure-cli
displayName: 'Upgrade Azure CLI'
Installera Azure CLI DevOps-tillägget:
- Azure CLI version 2.10.1 eller senare har installerats.
- Det finns en version av
bashinstallerad i agentmiljön och i sökvägsmiljön. En bash-installation krävs för att använda bash-uppgiften.
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
# Now you can make calls into Azure DevOps CLI
# ...
I följande exempel installeras Azure CLI följt av Azure DevOps CLI-tillägget.
steps:
# Specify python version if you have side-by-side versions
- task: UsePythonVersion@0
inputs:
versionSpec: '3.x'
architecture: 'x64'
# Update pip to latest
- bash: python -m pip install --upgrade pip
displayName: 'Upgrade pip'
# Update to latest Azure CLI version, min version required for Azure DevOps is 2.10.1
- bash: pip install --pre azure-cli
displayName: 'Upgrade Azure CLI'
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
# Now you can make calls into Azure DevOps CLI
# ...
Tilldela resultatet av ett Azure DevOps CLI-anrop till en variabel
Om du vill lagra resultatet av ett Azure DevOps CLI-anrop till en pipelinevariabel använder du syntaxen task.setvariable som beskrivs i Uppsättningsvariabler i skript. I följande exempel hämtas ID:t för en variabelgrupp med namnet Fabrikam-2023 och det här värdet används i ett efterföljande steg.
variables:
- name: variableGroupId
trigger: none
pool:
vmImage: "ubuntu-latest"
steps:
- bash: az devops configure --defaults organization='$(System.TeamFoundationCollectionUri)' project='$(System.TeamProject)' --use-git-aliases true
displayName: 'Set default Azure DevOps organization and project'
- bash: echo "##vso[task.setvariable variable=variableGroupId]$(az pipelines variable-group list --group-name Fabrikam-2023 --query [].id -o tsv)"
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
displayName: 'Get Fabrikam-2023 variable group id'
- bash: az pipelines variable-group variable list --group-id '$(variableGroupId)'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
displayName: 'List variables in Fabrikam-2023 variable group'
Autentisera med en tjänstanslutning
När du använder en tjänstanslutning tillhandahåller tjänstanslutningen nödvändiga autentiseringsuppgifter för Azure CLI- och Azure DevOps CLI-kommandon i den AzureCLI@3 uppgiften utan att kräva manuell hantering av autentiseringsuppgifter i pipelinen.
Note
När du använder en tjänstanslutning för autentisering med AzureCLI@3 måste du manualt lägga till tjänstens huvudnamn i din Azure DevOps organisation.
Pat-kostnadsfri vägledning och metodtips för tjänstanslutning finns i Hantera tjänstanslutningar.
Det här kodexemplet definierar en ny parameter, serviceConnection, med namnet på en befintlig tjänstanslutning. Den parametern refereras till i AzureCLI@3 aktiviteten. Skriptet använder en hemlighetslös anslutning för att anropa en REST-slutpunkt och listar sedan projekt och pooler.
trigger:
- main
parameters:
- name: serviceConnection
displayName: Azure DevOps Service Connection Name
type: string
default: my-service-connection
steps:
- task: AzureCLI@3
displayName: Secret-less
inputs:
connectionType: 'azureDevOps'
azureDevOpsServiceConnection: '${{ parameters.serviceConnection }}'
scriptType: 'pscore'
scriptLocation: 'inlineScript'
inlineScript: |
az rest --method get `
--url "https://status.dev.azure.com/_apis/status/health?api-version=7.1-preview.1" `
--resource 499b84ac-1321-427f-aa17-267ca6975798 `
--query "sort_by(services[?id=='Pipelines'].geographies | [], &name)" `
-o table
az devops configure -l
az devops project list --query "value[].{Name:name, Id:id}" `
-o table
az pipelines pool list --query "[].{Id:id, Name:name}" `
-o table
failOnStandardError: true
Tilldela resultatet av ett Azure DevOps CLI-anrop till en variabel
Om du vill lagra resultatet av ett Azure DevOps CLI-anrop till en pipelinevariabel använder du syntaxen task.setvariable som beskrivs i Uppsättningsvariabler i skript. I följande exempel hämtas ID:t för en variabelgrupp med namnet kubernetes och det här värdet används i ett efterföljande steg.
trigger:
- main
variables:
- name: variableGroupId
parameters:
- name: serviceConnection
displayName: Azure DevOps Service Connection Name
type: string
default: my-service-connection
steps:
- task: AzureCLI@3
displayName: Set variable group ID
inputs:
connectionType: 'azureDevOps'
azureDevOpsServiceConnection: '${{ parameters.serviceConnection }}'
scriptType: 'pscore'
scriptLocation: 'inlineScript'
inlineScript: |
az devops configure -l
$id = az pipelines variable-group list --group-name kubernetes --query [].id -o tsv
Write-Host "##vso[task.setvariable variable=variableGroupId]$id"
- task: AzureCLI@3
displayName: List variable group variables
inputs:
connectionType: 'azureDevOps'
azureDevOpsServiceConnection: '${{ parameters.serviceConnection }}'
scriptType: 'pscore'
scriptLocation: 'inlineScript'
inlineScript: |
az pipelines variable-group variable list --group-id '$(variableGroupId)'
Fler exempel på hur du arbetar med variabler, inklusive att arbeta med variabler mellan jobb och faser, finns i Definiera variabler. Exempel på den frågesyntax som användes i föregående exempel finns i Så här kör du frågor mot Azure CLI kommandoutdata med hjälp av en JMESPath-fråga.
Relaterat innehåll
- Få åtkomst till Azure DevOps med Microsoft Entra-arbetsbelastningsidentitet
- System.AccessToken
- Komma åt lagringsplatser, artefakter och andra resurser
- Hantera tjänstanslutningar
- Definiera variabler
- Azure DevOps CLI-tilläggsreferens
- Azure DevOps CLI-tillägget az pipelines reference
- Så här ställer du en fråga mot Azure CLI utdata med en JMESPath-fråga