Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure DevOps Services
Note
Questa funzionalità viene implementata questa settimana e la prossima. Se la funzionalità non è ancora visibile nel progetto di Azure DevOps Services, controlla nuovamente tra qualche giorno.
Azure DevOps CLI consente di gestire le risorse di Azure DevOps dalla riga di comando. Esegui i comandi CLI in una pipeline YAML con l'attività AzureCLI@3 per automatizzare attività DevOps comuni come parte del flusso di lavoro CI/CD. Gli agenti Microsoft ospitati Windows e Linux includono già interfaccia della riga di comando di Azure e l'estensione CLI di Azure DevOps.
Per l'autenticazione, usare una connessione al servizio Azure DevOps supportata dalla federazione delle identità di carico di lavoro di Microsoft Entra. È consigliabile questo approccio perché elimina la gestione delle credenziali. Usare un token di accesso personale (PAT) solo quando una connessione al servizio non è disponibile.
Eseguire l'autenticazione con Azure DevOps
Alcuni comandi dell'interfaccia della riga di comando di Azure DevOps, ad esempio az devops configure e az devops --help, non richiedono alcuna autenticazione. Non si connettono a Azure DevOps. La maggior parte dei comandi interagisce con Azure DevOps e richiede l'autenticazione.
È possibile eseguire l'autenticazione usando il token di sicurezza System.AccessToken usato dalla pipeline in esecuzione assegnandolo a una variabile di ambiente denominata AZURE_DEVOPS_EXT_PAT, come illustrato nell'esempio seguente.
L'uso di System.AccessToken si basa sulla presenza di un PAT. Come alternativa più sicura, usare una connessione al servizio. Per indicazioni sulla configurazione, vedere Gestire le connessioni al servizio.
- bash: |
az pipelines build list --organization '$(System.TeamFoundationCollectionUri)' --project '$(System.TeamProject)'
displayName: 'Show build list'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
Se sono presenti più passaggi che richiedono l'autenticazione, aggiungere la AZURE_DEVOPS_EXT_PAT variabile di ambiente a ogni passaggio.
Per altre informazioni sull'ambito del token di sicurezza usato dalla pipeline in esecuzione, vedere Accedere a repository, artefatti e altre risorse.
Per altre informazioni sull'autenticazione tramite un token di accesso personale, vedere Accedere con un token di accesso personale.
Accedere all'interfaccia della riga di comando di Azure DevOps con agenti ospitati Windows e Linux
Gli agenti Windows e Linux ospitati da Microsoft sono preconfigurati con interfaccia della riga di comando di Azure e l'estensione CLI di Azure DevOps.
Nell'esempio seguente viene illustrato come accedere a Azure DevOps ed eseguire alcuni comandi. In questo esempio viene utilizzata l'immagine dell'agente ospitato ubuntu-latest da Microsoft. È possibile sostituirlo con qualsiasi altra immagine ospitata su Windows o Linux.
Questo esempio esegue l'autenticazione con l'interfaccia della riga di comando di Azure DevOps. Usa il token di sicurezza System.AccessToken usato dalla pipeline in esecuzione.
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)
Installare l'estensione della CLI di Azure DevOps con gli agenti ospitati su macOS
Gli agenti Microsoft ospitati in macOS hanno interfaccia della riga di comando di Azure installato ma non l'estensione dell'interfaccia della riga di comando di Azure DevOps. Per installare l'estensione dell'interfaccia della riga di comando di Azure DevOps, eseguire il comando seguente nella pipeline prima di effettuare chiamate all'interfaccia della riga di comando di Azure DevOps.
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
Aggiornare la versione dell'agente ospitato interfaccia della riga di comando di Azure
gli agenti ospitati da Microsoft tipicamente distribuiscono gli aggiornamenti settimanali al software negli ambienti virtuali. Per alcuni strumenti, viene usata la versione più recente al momento della distribuzione. In altri casi, lo strumento è fissato a versioni specifiche.
- Per controllare il software incluso e le relative versioni per gli agenti ospitati Microsoft, inclusa la versione installata di interfaccia della riga di comando di Azure e l'estensione dell'interfaccia della riga di comando Azure DevOps, seguire la tabella Included Software nella tabella Software.
- Per controllare la versione corrente per interfaccia della riga di comando di Azure, vedere Come installare il interfaccia della riga di comando di Azure.
È possibile aggiornare il interfaccia della riga di comando di Azure nelle immagini ospitate eseguendo i comandi seguenti nella pipeline.
# 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'
Installare in modo condizionale l'estensione dell'interfaccia della riga di comando di Azure DevOps
Se la tua pipeline viene eseguita su diverse immagini di macchine virtuali ospitate da Microsoft, alcune delle quali non hanno installata l'estensione CLI di Azure DevOps, puoi installarla in modo condizionale.
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'
interfaccia a riga di comando di Azure DevOps con agenti self-hosted
È possibile usare i metodi seguenti per installare o aggiornare l'interfaccia della riga di comando di Azure DevOps nell'agente self-hosted.
- Installa manualmente interfaccia della riga di comando di Azure e l'estensione Azure DevOps CLI
- Installare nella pipeline interfaccia della riga di comando di Azure e l'estensione CLI di Azure DevOps
Installare manualmente interfaccia della riga di comando di Azure e l'estensione dell'interfaccia della riga di comando di Azure DevOps
L'installazione di interfaccia della riga di comando di Azure e dell'estensione CLI di Azure DevOps sul tuo agente self-hosted al momento del provisioning dell'immagine della macchina virtuale per l'agente è più veloce rispetto all'installazione ogni volta che viene eseguita la pipeline.
Per installare interfaccia della riga di comando di Azure nell'immagine dell'agente self-hosted, vedere Installare l'interfaccia della riga di comando di Azure. Sono disponibili istruzioni separate per Windows, Linux e macOS.
Dopo aver installato interfaccia della riga di comando di Azure, installare l'estensione Azure DevOps cli.
Installare interfaccia della riga di comando di Azure e l'estensione Azure DevOps CLI nella pipeline
L'esempio seguente sulla configurazione di interfaccia della riga di comando di Azure e dell'estensione della CLI di Azure DevOps tramite una pipeline in un agente self-hosted presenta i prerequisiti seguenti.
- Installare interfaccia della riga di comando di Azure usando Python. Python deve essere installato nell'agente in base alle istruzioni riportate nell'attività di Python versione: come è possibile configurare un agente self-hosted per usare questa attività?. L'attività
UsePythonVersion@0non installa Python nell'agente self-hosted. Se è installata una sola versione di Python nell'agente self-hosted e si trova nel percorso, non è necessario usare l'attivitàUsePythonVersion@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'
Installare interfaccia della riga di comando di Azure'estensione DevOps:
- è installata interfaccia della riga di comando di Azure versione 2.10.1 o versione successiva.
- È disponibile una versione di
bashinstallata nell'agente e nel percorso. Per usare l'attività bash è necessaria un'installazione di bash.
# 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
# ...
L'esempio seguente installa interfaccia della riga di comando di Azure seguito dall'estensione dell'interfaccia della riga di comando di Azure DevOps.
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
# ...
Assegnare i risultati di una chiamata dell'interfaccia della riga di comando Azure DevOps a una variabile
Per archiviare i risultati di una chiamata dell'interfaccia della riga di comando di Azure DevOps a una variabile della pipeline, usare la sintassi task.setvariable descritta in Set variabili negli script. L'esempio seguente ottiene l'ID di un gruppo di variabili denominato Fabrikam-2023 e usa questo valore in un passaggio successivo.
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'
Eseguire l'autenticazione con una connessione al servizio
Quando si utilizza una connessione al servizio, quest'ultima fornisce le credenziali necessarie per interfaccia della riga di comando di Azure e per i comandi CLI di Azure DevOps nell'attività "AzureCLI@3" senza richiedere la gestione manuale delle credenziali nella pipeline.
Note
Quando si usa una connessione al servizio per l'autenticazione con AzureCLI@3, è necessario aggiungere l'entità servizio all'organizzazione Azure DevOps.
Per indicazioni gratuite su PAT e procedure consigliate per la connessione al servizio, vedere Gestire le connessioni al servizio.
Questo esempio di codice definisce un nuovo parametro, serviceConnection, con il nome di una connessione al servizio esistente. Tale parametro viene fatto riferimento nell'attività AzureCLI@3 . Lo script usa una connessione senza segreto per chiamare un endpoint REST, quindi elenca i progetti e i pool.
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
Assegnare i risultati di una chiamata dell'interfaccia della riga di comando Azure DevOps a una variabile
Per archiviare i risultati di una chiamata dell'interfaccia della riga di comando di Azure DevOps a una variabile della pipeline, usare la sintassi task.setvariable descritta in Set variabili negli script. L'esempio seguente ottiene l'ID di un gruppo di variabili denominato kubernetes e usa questo valore in un passaggio successivo.
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)'
Per altri esempi di utilizzo delle variabili, tra cui l'uso di variabili tra processi e fasi, vedere Definire le variabili. Per esempi della sintassi di query usata nell'esempio precedente, vedere Come interrogare l'output del comando di interfaccia della riga di comando di Azure utilizzando una query JMESPath.
Contenuti correlati
- System.AccessToken
- Accedi a repository, artefatti e altre risorse
- Gestire le connessioni al servizio
- Definire le variabili
- Riferimento all'estensione CLI di Azure DevOps
- Riferimento all'estensione az pipelines della CLI di Azure DevOps
- Come eseguire una query sull'output dei comandi di interfaccia della riga di comando di Azure usando una query JMESPath