Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Služby Azure DevOps
Note
Tato funkce se zavádí tento týden a další. Pokud tuto funkci ještě v projektu služby Azure DevOps Services nevidíte, vraťte se za několik dní.
rozhraní příkazového řádku Azure DevOps umožňuje spravovat prostředky Azure DevOps z příkazového řádku. Spouštění příkazů rozhraní příkazového řádku v kanálu YAML pomocí úlohy AzureCLI@3 k automatizaci běžných úloh DevOps v rámci pracovního postupu CI/CD. Windows a Linux agenty hostovanými Microsoftem už zahrnují Azure CLI a rozšíření Azure DevOps CLI.
K ověřování použijte připojení služby Azure DevOps založené na federaci identit úloh Microsoft Entra. Tento přístup doporučujeme, protože eliminuje správu přihlašovacích údajů. Osobní přístupový token (PAT) používejte jenom v případech, kdy není připojení služby k dispozici.
Ověřování pomocí Azure DevOps
Některé příkazy rozhraní příkazového řádku Azure DevOps, například az devops configure a az devops --help, nevyžadují žádné ověřování. Nepřipojují se k Azure DevOps. Většina příkazů komunikuje s Azure DevOps a vyžaduje ověřování.
Můžete se ověřit pomocí tokenu zabezpečení System.AccessToken používaného spuštěným kanálem tak, že ho přiřadíte k proměnné prostředí s názvem AZURE_DEVOPS_EXT_PAT, jak je znázorněno v následujícím příkladu.
Použití System.AccessToken spoléhá na mít osobní přístupový token (PAT). Jako bezpečnější alternativu použijte připojení ke službě. Pokyny k nastavení najdete v tématu Správa připojení služeb.
- bash: |
az pipelines build list --organization '$(System.TeamFoundationCollectionUri)' --project '$(System.TeamProject)'
displayName: 'Show build list'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
Pokud máte více kroků, které vyžadují ověření, přidejte proměnnou AZURE_DEVOPS_EXT_PAT prostředí do každého kroku.
Další informace o rozsahu tokenu zabezpečení používaného spuštěným kanálem najdete v tématu Přístupová úložiště, artefakty a další prostředky.
Další informace o ověřování pomocí tokenu PAT najdete v tématu Přihlášení pomocí osobního přístupového tokenu.
Přihlášení k rozhraní příkazového řádku Azure DevOps pomocí agentů hostovaných Windows a Linuxu
Agenti Microsoft hostovaní Windows a Linux jsou předem nakonfigurovaní s Azure CLI a rozšířením rozhraní příkazového řádku Azure DevOps.
Následující příklad ukazuje, jak se přihlásit k Azure DevOps a spustit několik příkazů. Tento příklad používá image hostovaného agenta Microsoftu ubuntu-latest. Můžete ho nahradit některou z jiných Windows nebo Linuxem hostovaných obrazů.
Tento příklad se ověřuje pomocí rozhraní příkazového řádku Azure DevOps. Používá bezpečnostní token System.AccessToken, který používá běžící pipeline.
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)
Instalace rozšíření rozhraní příkazového řádku Azure DevOps s agenty hostovanými v systému macOS
Agenti hostovaní Microsoft macOS mají nainstalované Azure CLI, ale ne rozšíření rozhraní příkazového řádku Azure DevOps. Chcete-li nainstalovat rozšíření Azure DevOps CLI, spusťte následující příkaz v pipeline před provedením jakýchkoli volání Azure DevOps CLI.
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
Upgrade verze hostovaného agenta Azure CLI
Agenti hostovaní Microsoftem obvykle nasazují týdenní aktualizace softwaru ve virtuálních prostředích. U některých nástrojů se používá nejnovější verze v době nasazení. V jiných případech je nástroj připnutý ke konkrétním verzím.
- Pokud chcete zkontrolovat zahrnutý software a jejich verze pro agenty hostované Microsoft, včetně nainstalované verze rozšíření Azure CLI a Azure DevOps CLI, postupujte podle odkazů Included Software v tabulce Software.
- Pokud chcete zkontrolovat aktuální verzi Azure CLI, přečtěte si téma Jak nainstalovat Azure CLI.
Azure CLI na hostovaných imagích můžete upgradovat spuštěním následujících příkazů v 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'
Podmíněná instalace rozšíření rozhraní příkazového řádku Azure DevOps
Pokud vaše pipelina běží na několika imagích virtuálních počítačů hostovaných Microsoftem a některé z nich nemají nainstalované rozšíření Azure DevOps CLI, můžete nainstalovat podmíněně.
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 s agenty v místním prostředí
Následující metody můžete použít k instalaci nebo upgradu rozhraní příkazového řádku Azure DevOps ve vašem místním agentu.
- Ručně nainstalujte Azure CLI a rozšíření CLI pro Azure DevOps
- Nainstalujte Azure CLI a rozšíření CLI Azure DevOps ve vašem potrubí
Ruční instalace rozšíření rozhraní příkazového řádku Azure CLI a Azure DevOps
Instalace Azure CLI a rozšíření Azure DevOps CLI na samostatně hostovaného agenta při zřizování image virtuálního počítače pro agenta je rychlejší než jejich instalace při každém spuštění pipeline.
Pokud chcete nainstalovat Azure CLI na image agenta v místním prostředí, přečtěte si téma Instalace Azure CLI. Existují samostatné pokyny pro Windows, Linux a macOS.
Po instalaci Azure CLI nainstalujte rozšíření rozhraní příkazového řádku Azure DevOps.
Nainstalujte rozšíření Azure CLI a Azure DevOps CLI do vaší pipeline
Následující příklad konfigurace rozšíření Azure CLI a Azure DevOps CLI na samostatně hostovaném agentovi pomocí pipeline má tyto předpoklady.
- Nainstalujte Azure CLI pomocí Python. Python musí být na agenta nainstalovaný podle pokynů v úloze verze Python – jak můžu nakonfigurovat agenta v místním prostředí tak, aby používal tuto úlohu?. Úloha
UsePythonVersion@0nenainstaluje Python na agenta v místním prostředí. Pokud máte na svém self-hostovaném agentovi nainstalovanou jenom jednu verzi Pythonu a je v cestě, nemusíte používat úkolUsePythonVersion@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'
Nainstalujte rozšíření Azure CLI DevOps:
- je nainstalovaná Azure CLI verze 2.10.1 nebo vyšší.
- V agentovi a v cestě je nainstalovaná verze
bash. K použití úlohy Bash se vyžaduje instalace 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
# ...
Následující příklad nainstaluje Azure CLI následované rozšířením Azure DevOps CLI.
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
# ...
Přiřaďte výsledky volání Azure DevOps CLI do proměnné
Pokud chcete uložit výsledky volání Azure DevOps CLI do proměnné pipeline, použijte syntaxi task.setvariable popsanou v Set variables in scripts. Následující příklad získá ID skupiny proměnných s názvem Fabrikam-2023 a použije tuto hodnotu v následujícím 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'
Ověřování pomocí připojení ke službě
Pokud používáte připojení služby, služba poskytuje nezbytné přihlašovací údaje pro příkazy Azure CLI a Azure DevOps CLI v úloze AzureCLI@3, aniž by bylo potřeba ručně spravovat přihlašovací údaje v kanálu.
Note
Pokud pro ověřování s AzureCLI@3 používáte připojení služby, musíte manuálně přidat zástupce služby do organizace Azure DevOps.
Osvědčené postupy bez použití PAT a pro připojení služeb najdete v tématu Správa připojení služeb.
Tento vzorový kód definuje nový parametr serviceConnections názvem existujícího připojení služby. Na tento parametr se AzureCLI@3 odkazuje v úloze. Skript používá připojení bez bezpečnostního kódu k volání koncového bodu REST a poté vypíše projekty a pooly.
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
Přiřaďte výsledky volání Azure DevOps CLI do proměnné
Pokud chcete uložit výsledky volání Azure DevOps CLI do proměnné pipeline, použijte syntaxi task.setvariable popsanou v Set variables in scripts. Následující příklad získá ID skupiny proměnných s názvem kubernetes a použije tuto hodnotu v dalším kroku.
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)'
Další příklady práce s proměnnými, včetně práce s proměnnými napříč úlohami a fázemi, najdete v tématu Definice proměnných. Pro příklady syntaxe dotazu použité v předchozím příkladu se podívejte na Jak dotazovat výstup příkazu Azure CLI pomocí dotazu JMESPath.
Související obsah
- Přístup k Azure DevOps pomocí identity úloh Microsoft Entra
- System.AccessToken
- Přístup k úložištím, artefaktům a dalším prostředkům
- Správa služebních připojení
- Definování proměnných
- Referenční příručka pro rozšíření CLI Azure DevOps
- Rozšíření Azure DevOps CLI az pipelines reference
- Jak dotazovat výstup příkazu Azure CLI pomocí dotazu JMESPath