Interfejs wiersza polecenia usługi Azure DevOps w usłudze Azure Pipeline YAML
Azure DevOps Services
Jeśli chcesz użyć interfejsu wiersza polecenia usługi Azure DevOps z potokiem YAML, możesz użyć poniższych przykładów, aby zainstalować interfejs wiersza polecenia platformy Azure, dodać rozszerzenie Usługi Azure DevOps i uruchomić polecenia interfejsu wiersza polecenia usługi Azure DevOps.
Uwaga
Kroki opisane w tym artykule pokazują, jak uwierzytelniać się za pomocą usługi Azure DevOps i uruchamiać az devops
polecenia przy użyciu rozszerzenia interfejsu wiersza polecenia usługi Azure DevOps. Jeśli chcesz użyć interfejsu wiersza polecenia platformy Azure do interakcji z zasobami platformy Azure, użyj zadania AzureCLI.
Uwierzytelnianie za pomocą usługi Azure DevOps
Niektóre polecenia interfejsu wiersza polecenia usługi Azure DevOps, które nie są wywoływane w usłudze Azure DevOps, takie jak az devops configure
i az devops -h
, nie wymagają żadnego uwierzytelniania, ale 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.
- 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 (PAT).
Interfejs wiersza polecenia usługi Azure DevOps z hostowanymi agentami systemu 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 ubuntu-latest
obrazu agenta hostowanego przez firmę Microsoft, ale można go zamienić na dowolne inne obrazy hostowane w systemie Windows lub Linux.
W tym przykładzie uwierzytelnia się za pomocą interfejsu wiersza polecenia usługi Azure DevOps przy użyciu tokenu zabezpieczającego System.AccessToken używanego przez 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)
Interfejs wiersza polecenia usługi Azure DevOps z agentami hostowanymi 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'
Wersja interfejsu wiersza polecenia platformy Azure 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 przypadku innych użytkowników 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 potok działa na kilku obrazach maszyn wirtualnych hostowanych przez firmę Microsoft, niektóre z nich nie mają zainstalowanego rozszerzenia interfejsu wiersza polecenia usługi Azure DevOps, należy wykonać instalację warunkowo.
trigger:
- main
# Run on multiple Microsoft-hosted agent images
strategy:
matrix:
linux22:
imageName: "ubuntu-22.04"
linux20:
imageName: "ubuntu-20.04"
mac13:
imageName: "macos-13"
mac12:
imageName: "macos-12"
mac11:
imageName: "macos-11"
windows2019:
imageName: "windows-2019"
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.
- Instalowanie interfejsu 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@0
nie instaluje języka Python na własnym agencie. 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@0
tego zadania.
- 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
# 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'
- Instalowanie rozszerzenia DevOps interfejsu wiersza polecenia platformy Azure
- Zainstalowano interfejs wiersza polecenia platformy Azure w wersji 2.10.1 lub nowszej.
- Na agencie jest zainstalowana wersja
bash
i ś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 , a następnie 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'
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).
Powiązane artykuły
- 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