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ższego przykładu, aby dowiedzieć się, jak można użyć języka YAML do zainstalowania interfejsu 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
  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 osób 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.

Jeśli wydano nowszą wersję interfejsu wiersza polecenia platformy Azure, a obrazy hostowane nie mają jeszcze najnowszej wersji, możesz uaktualnić wersję interfejsu wiersza polecenia platformy Azure do najnowszej wersji, 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 masz potok uruchamiany na kilku obrazach maszyn wirtualnych hostowanych przez firmę Microsoft, z których niektóre nie mają zainstalowanego rozszerzenia interfejsu wiersza polecenia usługi Azure DevOps, możesz wykonać ten krok warunkowo, jak pokazano w poniższym przykładzie.

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

Jeśli własny agent nie jest skonfigurowany z wymaganym oprogramowaniem do korzystania z interfejsu wiersza polecenia usługi Azure DevOps lub jeśli chcesz mieć pewność, że masz najnowsze wersje, możesz zainstalować wymagane oprogramowanie, wykonując następujące kroki.

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 znacznie 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

    # 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

    # 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).