You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure DevOps YAML管道中配置与调用Service Connection

为Azure DevOps YAML管道指定并使用Service Connection

一、为特定YAML管道指定Service Connection

1. 内置Azure任务直接指定

对于Azure官方提供的任务(如AzureCLI、AzurePowerShell、AzureResourceGroupDeployment等),直接通过azureSubscription参数填入你的Service Connection名称即可,示例代码:

steps:
- task: AzureCLI@2
  inputs:
    azureSubscription: '你的Service Connection名称'
    scriptType: 'bash'
    scriptLocation: 'inlineScript'
    inlineScript: |
      az account show

2. 参数化选择(适用于模板场景)

如果需要在运行管道时手动选择Service Connection,可以将其定义为管道参数,让用户在触发时自主选择,示例:

parameters:
- name: azureServiceConnection
  type: string
  default: '默认Service Connection名称'
  values:
  - 'Service Connection A'
  - 'Service Connection B'

steps:
- task: AzureCLI@2
  inputs:
    azureSubscription: ${{ parameters.azureServiceConnection }}
    scriptType: 'bash'
    inlineScript: |
      az account show

二、使用Service Connection凭证配置CLI工具

1. 借助内置任务自动配置

AzureCLI和AzurePowerShell任务会自动基于指定的Service Connection完成Azure登录,无需手动配置凭证,直接在脚本中执行Azure命令即可,参考上面的示例。

2. 手动获取凭证配置(非内置任务场景)

如果需要在自定义脚本或第三方任务中使用Service Connection的凭证,可以通过内置变量或PowerShell获取会话信息,再配置CLI:

steps:
- task: AzurePowerShell@5
  inputs:
    azureSubscription: '你的Service Connection名称'
    ScriptType: 'InlineScript'
    Inline: |
      # 获取Azure上下文信息并导出为环境变量
      $context = Get-AzContext
      Write-Host "##vso[task.setvariable variable=AZURE_TENANT_ID]$($context.Tenant.Id)"
      Write-Host "##vso[task.setvariable variable=AZURE_SUBSCRIPTION_ID]$($context.Subscription.Id)"
    azurePowerShellVersion: 'LatestVersion'

- script: |
    # 用Service Connection内置变量配置Azure CLI
    az login --service-principal -u $(servicePrincipalId) -p $(servicePrincipalKey) --tenant $(AZURE_TENANT_ID)
    az account set --subscription $(AZURE_SUBSCRIPTION_ID)
    # 验证登录状态
    az account show

注:servicePrincipalId和servicePrincipalKey是Service Connection的内置变量,只有在指定了azureSubscription的任务上下文里才能直接引用。

附:官方文档相关内容翻译

  1. 创建新的服务连接后:
    • 如果使用经典编辑器,在管道的“Azure订阅”设置中选择你指定的连接名称。
    • 如果使用YAML,将连接名称复制到代码中作为azureSubscription的值。

内容的提问来源于stack exchange,提问作者Neutrino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 21:40:01