AzureCLI@2 - Azure CLI v2 任务

在 Linux 代理上运行时,针对 PowerShell Core/shell 脚本中的 Azure 订阅运行 Azure CLI 命令。 或者,在 Windows 代理上运行时,在 PowerShell/PowerShell Core/batch 脚本中针对 Azure 订阅运行 Azure CLI 命令。

在 Linux 代理上运行时,针对 PowerShell Core/shell 脚本中的 Azure 订阅运行 Azure CLI 命令。 或者,在 Windows 代理上运行时,在 PowerShell/Powershell Core/batch 脚本中针对 Azure 订阅运行 Azure CLI 命令。

语法

# Azure CLI v2
# Run Azure CLI commands against an Azure subscription in a PowerShell Core/Shell script when running on Linux agent or PowerShell/PowerShell Core/Batch script when running on Windows agent.
- task: AzureCLI@2
  inputs:
    azureSubscription: # string. Alias: connectedServiceNameARM. Required. Azure Resource Manager connection. 
    scriptType: # 'ps' | 'pscore' | 'batch' | 'bash'. Required. Script Type. 
    scriptLocation: 'scriptPath' # 'inlineScript' | 'scriptPath'. Required. Script Location. Default: scriptPath.
    scriptPath: # string. Required when scriptLocation = scriptPath. Script Path. 
    #inlineScript: # string. Required when scriptLocation = inlineScript. Inline Script. 
    #arguments: # string. Alias: scriptArguments. Script Arguments. 
    #powerShellErrorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. Optional. Use when scriptType = ps || scriptType = pscore. ErrorActionPreference. Default: stop.
  # Advanced
    #addSpnToEnvironment: false # boolean. Access service principal details in script. Default: false.
    #useGlobalConfig: false # boolean. Use global Azure CLI configuration. Default: false.
    #workingDirectory: # string. Alias: cwd. Working Directory. 
    #failOnStandardError: false # boolean. Fail on Standard Error. Default: false.
    #powerShellIgnoreLASTEXITCODE: false # boolean. Optional. Use when scriptType = ps || scriptType = pscore. Ignore $LASTEXITCODE. Default: false.
# Azure CLI v2
# Run Azure CLI commands against an Azure subscription in a PowerShell Core/Shell script when running on Linux agent or PowerShell/Powershell Core/Batch script when running on Windows agent.
- task: AzureCLI@2
  inputs:
    azureSubscription: # string. Alias: connectedServiceNameARM. Required. Azure Resource Manager connection. 
    scriptType: # 'ps' | 'pscore' | 'batch' | 'bash'. Required. Script Type. 
    scriptLocation: 'scriptPath' # 'inlineScript' | 'scriptPath'. Required. Script Location. Default: scriptPath.
    scriptPath: # string. Required when scriptLocation = scriptPath. Script Path. 
    #inlineScript: # string. Required when scriptLocation = inlineScript. Inline Script. 
    #arguments: # string. Alias: scriptArguments. Script Arguments. 
    #powerShellErrorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. Optional. Use when scriptType = ps || scriptType = pscore. ErrorActionPreference. Default: stop.
  # Advanced
    #addSpnToEnvironment: false # boolean. Access service principal details in script. Default: false.
    #useGlobalConfig: false # boolean. Use global Azure CLI configuration. Default: false.
    #workingDirectory: # string. Alias: cwd. Working Directory. 
    #failOnStandardError: false # boolean. Fail on Standard Error. Default: false.
    #powerShellIgnoreLASTEXITCODE: false # boolean. Optional. Use when scriptType = ps || scriptType = pscore. Ignore $LASTEXITCODE. Default: false.

输入

azureSubscription - Azure 资源管理器连接
输入别名: connectedServiceNameARMstring. 必需。

为部署选择 Azure 资源管理器服务连接。


scriptType - 脚本类型
string. 必需。 允许的值: ps (PowerShell) 、 pscore (PowerShell Core) 、 batchbash (Shell) 。

脚本的类型。 在 Linux 代理上运行时, bash 选择 或 pscore 脚本。 或者,在 Windows 代理上运行时,选择 batchpspscore 脚本。 pscore脚本可以在跨平台代理上运行, (Linux、macOS 或 Windows) 。


scriptType - 脚本类型
string. 必需。 允许的值: ps (Powershell) 、 pscore (Powershell Core) 、 batchbash (Shell) 。

脚本的类型。 在 Linux 代理上运行时, bash 选择 或 pscore 脚本。 或者,在 Windows 代理上运行时,选择 batchpspscore 脚本。 pscore脚本可以在跨平台代理上运行, (Linux、macOS 或 Windows) 。


scriptLocation - 脚本位置
string. 必需。 允许的值: inlineScript (内联脚本) 、 scriptPath (脚本路径) 。 默认值:scriptPath

脚本的路径。


scriptPath - 脚本路径
string. 当 scriptLocation = scriptPath 时,需要此选项。

脚本的完全限定路径。 使用基于 Windows 的代理时,请使用 .ps1.bat.cmd 。 当使用基于 Linux 的代理或相对于默认工作目录的路径时,请使用 .ps1.sh


inlineScript - 内联脚本
string. 当 scriptLocation = inlineScript 时,需要此选项。

可以在此处以内联编写脚本。 使用 Windows 代理时,请使用 PowerShell、PowerShell Core 或批处理脚本。 使用基于 Linux 的代理时,请使用 PowerShell Core 或 shell 脚本。 对于批处理文件,请在每个 Azure 命令之前使用 前缀 call 。 还可以使用参数将预定义变量和自定义变量传递给此脚本。

下面是 PowerShell/PowerShellCore/shell 的示例。

az --version 
az account show 

下面是批处理的示例。

call  az --version 
call az account show

arguments - 脚本参数
输入别名: scriptArgumentsstring.

传递给脚本的参数。


powerShellErrorActionPreference - ErrorActionPreference
string. 可选。 在 时 scriptType = ps || scriptType = pscore使用 。 允许的值:stopcontinuesilentlyContinue。 默认值:stop

在 PowerShell/PowerShell Core 脚本的顶部添加行 $ErrorActionPreference = 'VALUE'


addSpnToEnvironment - 脚本中的访问服务主体详细信息
boolean. 默认值:false

将所选 Azure 终结点的服务主体 ID、服务主体密钥或工作负载联合身份验证令牌以及租户 ID 添加到脚本的执行环境中。 可以在脚本中使用 servicePrincipalIdservicePrincipalKeyidTokentenantId 变量。

仅当 Azure 终结点具有服务主体身份验证方案或工作负载联合身份验证身份验证方案时,才遵循这一点。

以下列表显示了基于脚本类型访问环境变量的语法。

  • PowerShell 脚本语法: $env:servicePrincipalId

  • Batch 脚本语法: %servicePrincipalId%

  • Shell 脚本语法: $servicePrincipalId


useGlobalConfig - 使用全局 Azure CLI 配置
boolean. 默认值:false

如果此输入为 false,则此任务将使用其自己的 Azure CLI 配置目录。 使用此任务在 并行 版本中运行 Azure CLI 任务。


workingDirectory - 工作目录
输入别名: cwdstring.

运行脚本的当前工作目录。 如果留空,则此输入是存储库的根 (生成) 或项目 (发布) ,即 $(System.DefaultWorkingDirectory)


failOnStandardError - 标准错误失败
boolean. 默认值:false

如果此输入为 true,则将任何错误写入 StandardError 流时,此任务将失败。 清除复选框可忽略标准错误,而是依赖退出代码来确定状态。


powerShellIgnoreLASTEXITCODE - 忽略$LASTEXITCODE
boolean. 可选。 在 时 scriptType = ps || scriptType = pscore使用 。 默认值:false

如果此输入为 false,则行 if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } 将追加到脚本的末尾。 这会从外部命令传播最后一个退出代码作为 PowerShell 的退出代码。 否则,该行不会追加到脚本的末尾。


任务控制选项

除了任务输入,所有任务都有控制选项。 有关详细信息,请参阅 控制选项和常见任务属性

输出变量

无。

备注

版本任务版本 2.0 中的新增功能

  • 支持 PowerShell 和 PowerShell Core 脚本。
  • PowerShell Core 可与跨平台代理 (Linux、macOS 或 Windows) 配合使用,确保代理具有 PowerShell 版本 6 或更高版本。
  • Powershell 脚本仅适用于 Windows 代理,请确保代理具有 PowerShell 版本 5 或更低版本。

先决条件

  • 一个 Microsoft Azure 订阅。
  • 到你 Azure 帐户的 Azure 资源管理器服务连接
  • Microsoft 托管代理已预安装 Azure CLI。 但是,如果使用的是专用代理,请在运行生成和发布代理的计算机上安装 Azure CLI。 如果代理已在安装了 Azure CLI 的计算机上运行,请重启代理,确保所有相关阶段变量得到更新。

示例

以下示例列出了 Azure CLI 的版本,并获取订阅的详细信息。

- task: AzureCLI@2
  displayName: Azure CLI
  inputs:
    azureSubscription: <Name of the Azure Resource Manager service connection>
    scriptType: ps
    scriptLocation: inlineScript
    inlineScript: |
      az --version
      az account show

以下示例演示如何将参数传递给脚本。

  • 将参数传递给内联脚本:

    - task: AzureCLI@2
      inputs:
        azureSubscription: <Azure_Resource_Manager_Service_Connection>
        scriptType: 'ps'
        scriptLocation: 'inlineScript'
        arguments: '$(AZURE_STORAGE_ACCOUNT) $(AZURE_STORAGE_KEY)'
        inlineScript: './scripts/publish.ps1 $1 $2'
    
  • 使用脚本路径传递参数:

    - task: AzureCLI@2
      inputs:
        azureSubscription: <Azure_Resource_Manager_Service_Connection>
        scriptType: 'ps'
        scriptLocation: 'scriptPath'
        arguments: '$(AZURE_STORAGE_ACCOUNT) $(AZURE_STORAGE_KEY)'
        scriptPath: './scripts/publish.ps1'
    

要求

要求 说明
管道类型 YAML、经典版本、经典版本
运行平台 Agent、DeploymentGroup
需求
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任意
可设置变量 任意
代理版本 2.0.0 或更高版本
任务类别 部署

另请参阅