Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure DevOps Services
Jeśli chcesz użyć interfejsu wiersza polecenia usługi Azure DevOps z potokiem YAML, możesz użyć rozszerzenia Usługi Azure DevOps lub użyć zadania AzureCLI. Agenci systemu Windows i Linux hostowani przez firmę Microsoft są wstępnie skonfigurowani za pomocą interfejsu wiersza polecenia platformy Azure i rozszerzenia interfejsu wiersza polecenia usługi Azure DevOps. Rozszerzenie interfejsu wiersza polecenia usługi Azure DevOps uruchamia az devops polecenia.
Możesz uwierzytelnić się przy użyciu tokenu PAT lub użyć zadania AzureCLI@2 z połączeniem usługi. Użycie połączenia z usługą jest bezpieczniejszą opcją, ponieważ nie trzeba ręcznie zarządzać poświadczeniami.
Uwierzytelnianie za pomocą usługi Azure DevOps
Niektóre polecenia interfejsu wiersza polecenia usługi Azure DevOps, takie jak az devops configure i az devops --help, nie wymagają żadnego uwierzytelniania. Nie łączą się z usługą Azure DevOps. Większość poleceń współdziała z usługą Azure DevOps i wymaga uwierzytelniania.
Możesz uwierzytelnić się przy użyciu tokenu zabezpieczającego System.AccessToken używanego przez uruchomiony potok, przypisując go do zmiennej środowiskowej o nazwie AZURE_DEVOPS_EXT_PAT, jak pokazano w poniższym przykładzie.
Używanie System.AccessToken opiera się na posiadaniu PAT. Bezpieczniejszą alternatywą jest użycie zadania AzureCLI@2 do skonfigurowania połączenia usługi.
- bash: |
az pipelines build list --organization '$(System.TeamFoundationCollectionUri)' --project '$(System.TeamProject)'
displayName: 'Show build list'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
Jeśli masz wiele kroków wymagających uwierzytelniania, dodaj zmienną AZURE_DEVOPS_EXT_PAT środowiskową do każdego kroku.
Aby uzyskać więcej informacji na temat zakresu tokenu zabezpieczającego używanego przez uruchomiony potok, zobacz Access repozytoria, artefakty i inne zasoby.
Aby uzyskać więcej informacji na temat uwierzytelniania przy użyciu osobistego tokenu dostępu , zobacz Logowanie się przy użyciu osobistego tokenu dostępu.
Logowanie się do interfejsu wiersza polecenia usługi Azure DevOps przy użyciu agentów hostowanych w systemach Windows i Linux
Agenci systemu Windows i Linux hostowani przez firmę Microsoft są wstępnie skonfigurowani za pomocą interfejsu wiersza polecenia platformy Azure i rozszerzenia interfejsu wiersza polecenia usługi Azure DevOps.
W poniższym przykładzie pokazano, jak zalogować się do usługi Azure DevOps i uruchomić kilka poleceń. W tym przykładzie użyto obrazu agenta hostowanego ubuntu-latest przez firmę Microsoft. Możesz zastąpić go dowolnym z innych obrazów hostowanych w systemie Windows lub Linux.
Ten przykład uwierzytelnia się za pomocą Azure DevOps CLI. Używa tokenu zabezpieczającego System.AccessToken, którego używa uruchomiony potok.
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)
Instalowanie rozszerzenia interfejsu wiersza polecenia usługi Azure DevOps przy użyciu agentów hostowanych w systemie macOS
Agenci hostowani przez firmę Microsoft dla systemu macOS mają zainstalowany interfejs wiersza polecenia platformy Azure, ale nie rozszerzenie interfejsu wiersza polecenia usługi Azure DevOps. Aby zainstalować rozszerzenie interfejsu wiersza polecenia usługi Azure DevOps, uruchom następujące polecenie w potoku przed wykonaniem wywołań interfejsu wiersza polecenia usługi Azure DevOps.
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
Uaktualnianie wersji Azure CLI hostowanego agenta
Agenci hostowani przez firmę Microsoft zwykle wdrażają cotygodniowe aktualizacje oprogramowania w środowiskach wirtualnych. W przypadku niektórych narzędzi używana jest najnowsza wersja w momencie wdrożenia. W innych przypadkach narzędzie jest przypięte do określonych wersji.
- Aby sprawdzić dołączone oprogramowanie i ich wersje dla agentów hostowanych przez firmę Microsoft, w tym zainstalowaną wersję interfejsu wiersza polecenia platformy Azure i rozszerzenia interfejsu wiersza polecenia usługi Azure DevOps, postępuj zgodnie z linkami dołączonymi do oprogramowania w tabeli Software .
- Aby sprawdzić bieżącą wersję interfejsu wiersza polecenia platformy Azure, zobacz Jak zainstalować interfejs wiersza polecenia platformy Azure.
Interfejs wiersza polecenia platformy Azure można uaktualnić na hostowanych obrazach, uruchamiając następujące polecenia w potoku.
# 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'
Warunkowe instalowanie rozszerzenia interfejsu wiersza polecenia usługi Azure DevOps
Jeśli twój potok działa na kilku obrazach maszyn wirtualnych hostowanych przez firmę Microsoft, a niektóre z nich nie mają zainstalowanego rozszerzenia Azure DevOps CLI, możesz zainstalować go warunkowo.
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"
mac13:
imageName: "macos-13"
windows2025:
imageName: "windows-2025"
windows2022:
imageName: "windows-2022"
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'
Interfejs wiersza polecenia usługi Azure DevOps z własnymi agentami
Poniższe metody umożliwiają zainstalowanie lub uaktualnienie interfejsu wiersza polecenia usługi Azure DevOps w własnym agencie.
- Ręczne instalowanie interfejsu wiersza polecenia platformy Azure i rozszerzenia interfejsu wiersza polecenia usługi Azure DevOps
- Instalowanie interfejsu wiersza polecenia platformy Azure i rozszerzenia interfejsu wiersza polecenia usługi Azure DevOps w potoku
Ręczne instalowanie interfejsu wiersza polecenia platformy Azure i rozszerzenia interfejsu wiersza polecenia usługi Azure DevOps
Instalowanie interfejsu wiersza polecenia platformy Azure i rozszerzenia interfejsu wiersza polecenia usługi Azure DevOps na własnym agencie podczas aprowizowania obrazu maszyny wirtualnej dla agenta jest szybsze niż instalowanie ich przy każdym uruchomieniu potoku.
Aby zainstalować interfejs wiersza polecenia platformy Azure na obrazie własnego agenta, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure. Istnieją oddzielne instrukcje dotyczące systemów Windows, Linux i macOS.
Po zainstalowaniu interfejsu wiersza polecenia platformy Azure zainstaluj rozszerzenie interfejsu wiersza polecenia usługi Azure DevOps.
Instalowanie interfejsu wiersza polecenia platformy Azure i rozszerzenia interfejsu wiersza polecenia usługi Azure DevOps w potoku
Poniższy przykład konfigurowania interfejsu wiersza polecenia platformy Azure i rozszerzenia interfejsu wiersza polecenia usługi Azure DevOps na własnym agencie przy użyciu potoku ma następujące wymagania wstępne.
- Zainstaluj interfejs wiersza polecenia platformy Azure przy użyciu języka Python. Język Python musi być zainstalowany na agencie zgodnie z instrukcjami w zadaniu wersji języka Python — jak mogę skonfigurować własnego agenta do korzystania z tego zadania?. Zadanie
UsePythonVersion@0nie instaluje języka Python na agencie instalowanym lokalnie. Jeśli masz tylko jedną wersję języka Python zainstalowaną na własnym agencie i znajduje się w ścieżce, nie musisz używaćUsePythonVersion@0tego zadania.
# 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'
Zainstaluj rozszerzenie Azure CLI do DevOps:
- Zainstalowano interfejs wiersza polecenia platformy Azure w wersji 2.10.1 lub nowszej.
- Na agencie jest zainstalowana wersja
bashi ścieżka. Do korzystania z zadania powłoki bash jest wymagana instalacja powłoki 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
# ...
Poniższy przykład instaluje interfejs wiersza polecenia platformy Azure, a następnie rozszerzenie interfejsu wiersza polecenia usługi 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
# ...
Przypisywanie wyników wywołania interfejsu wiersza polecenia usługi Azure DevOps do zmiennej
Aby przechowywać wyniki wywołania interfejsu wiersza polecenia usługi Azure DevOps do zmiennej potoku, użyj składni opisanej task.setvariable w temacie Ustawianie zmiennych w skryptach. Poniższy przykład pobiera identyfikator grupy zmiennych o nazwie Fabrikam-2023 i używa tej wartości w kolejnym kroku.
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'
Uwierzytelnianie za pomocą połączenia z usługą
W przypadku korzystania z połączenia z usługą połączenie usługi zapewnia niezbędne poświadczenia dla interfejsu wiersza polecenia platformy Azure i interfejsu wiersza polecenia usługi Azure DevOps w zadaniu AzureCLI@2 bez konieczności ręcznego zarządzania poświadczeniami w potoku.
Note
W przypadku używania połączenia z usługą do uwierzytelniania z AzureCLI@2należy ręcznie dodać głównego użytkownika usługi do organizacji Azure DevOps.
Ten przykładowy kod definiuje nowy parametr , serviceConnectionz nazwą istniejącego połączenia usługi. Ten parametr jest przywołyny w AzureCLI@2 zadaniu. Zadanie zawiera listę wszystkich projektów (az devops project list) i pul (az pipelines pool list).
trigger:
- main
parameters:
- name: serviceConnection
displayName: Azure Service Connection Name
type: string
default: my-service-connection
steps:
- task: AzureCLI@2
condition: succeededOrFailed()
displayName: 'Azure CLI -> DevOps CLI'
inputs:
azureSubscription: '${{ parameters.serviceConnection }}'
scriptType: pscore
scriptLocation: inlineScript
inlineScript: |
Write-Host "Using logged-in Azure CLI session..."
Write-Host "$($PSStyle.Formatting.FormatAccent)az devops configure$($PSStyle.Reset)"
az devops configure --defaults organization=$(System.CollectionUri) project=$(System.TeamProject)
az devops configure -l
Write-Host "`nUse Azure DevOps CLI (az devops) to list projects in the organization '$(System.CollectionUri)'..."
Write-Host "$($PSStyle.Formatting.FormatAccent)az devops project list$($PSStyle.Reset)"
az devops project list --query "value[].{Name:name, Id:id}" `
-o table
Write-Host "`nUse Azure DevOps CLI (az pipelines) to list pools in the organization '$(System.CollectionUri)'..."
Write-Host "$($PSStyle.Formatting.FormatAccent)az pipelines pool list$($PSStyle.Reset)"
az pipelines pool list --query "[].{Id:id, Name:name}" `
-o table
failOnStandardError: true
Przypisywanie wyników wywołania interfejsu wiersza polecenia usługi Azure DevOps do zmiennej
Aby przechowywać wyniki wywołania interfejsu wiersza polecenia usługi Azure DevOps do zmiennej potoku, użyj składni opisanej task.setvariable w temacie Ustawianie zmiennych w skryptach. Poniższy przykład pobiera identyfikator grupy zmiennych o nazwie kubernetes i używa tej wartości w kolejnym kroku.
trigger:
- main
variables:
- name: variableGroupId
parameters:
- name: serviceConnection
displayName: Azure Service Connection Name
type: string
default: my-service-connection
steps:
- task: AzureCLI@2
condition: succeededOrFailed()
displayName: 'Azure CLI -> DevOps CLI'
inputs:
azureSubscription: '${{ parameters.serviceConnection }}'
scriptType: pscore
scriptLocation: inlineScript
inlineScript: |
Write-Host "Using logged-in Azure CLI session..."
Write-Host "$($PSStyle.Formatting.FormatAccent)az devops configure$($PSStyle.Reset)"
az devops configure --defaults organization=$(System.CollectionUri) project=$(System.TeamProject)
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@2
condition: succeededOrFailed()
displayName: 'Azure CLI -> DevOps CLI'
inputs:
azureSubscription: '${{ parameters.serviceConnection }}'
scriptType: pscore
scriptLocation: inlineScript
inlineScript: |
Write-Host "Using logged-in Azure CLI session..."
az pipelines variable-group variable list --group-id '$(variableGroupId)'
Aby uzyskać więcej przykładów pracy ze zmiennymi, w tym pracy ze zmiennymi między zadaniami i etapami, zobacz Definiowanie zmiennych. Przykłady składni zapytania używanej w poprzednim przykładzie można znaleźć w temacie How to query Azure CLI command output using a JMESPath query (Jak wykonywać zapytania dotyczące poleceń interfejsu wiersza polecenia platformy Azure przy użyciu zapytania JMESPath).
Treści powiązane
- System.AccessToken
- Uzyskiwanie dostępu do repozytoriów, artefaktów i innych zasobów
- Definiowanie zmiennych
- Dokumentacja rozszerzenia interfejsu wiersza polecenia usługi Azure DevOps
- Dokumentacja rozszerzenia interfejsu wiersza polecenia usługi Azure DevOps az pipelines
- Jak wykonywać zapytania względem danych wyjściowych polecenia interfejsu wiersza polecenia platformy Azure przy użyciu zapytania JMESPath