AzurePowerShell@5 - Azure PowerShell v5 任务

使用此任务在 Azure 环境中运行 PowerShell 脚本。 Azure 上下文使用提供的 Azure 资源管理器服务连接进行身份验证。

注意

默认情况下,Azure PowerShell v5 使用适用于 Linux 代理的 PowerShell Core,对 Windows 代理使用 Windows PowerShell。 若要在 Windows 代理上使用最新版本的 PowerShell,请将 pwsh 参数设置为 true。 然后将改用 PowerShell Core。

语法

# Azure PowerShell v5
# Run a PowerShell script within an Azure environment.
- task: AzurePowerShell@5
  inputs:
    azureSubscription: # string. Alias: ConnectedServiceNameARM. Required. Azure Subscription. 
    #ScriptType: 'FilePath' # 'FilePath' | 'InlineScript'. Script Type. Default: FilePath.
    #ScriptPath: # string. Optional. Use when ScriptType = FilePath. Script Path. 
    #Inline: # string. Optional. Use when ScriptType = InlineScript. Inline Script. 
    #ScriptArguments: # string. Optional. Use when ScriptType = FilePath. Script Arguments. 
    #errorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
    #FailOnStandardError: false # boolean. Fail on Standard Error. Default: false.
  # Azure PowerShell version options
    #azurePowerShellVersion: 'OtherVersion' # 'LatestVersion' | 'OtherVersion'. Alias: TargetAzurePs. Azure PowerShell Version. Default: OtherVersion.
    preferredAzurePowerShellVersion: # string. Alias: CustomTargetAzurePs. Required when TargetAzurePs = OtherVersion. Preferred Azure PowerShell Version. 
  # Advanced
    #pwsh: false # boolean. Use PowerShell Core. Default: false.
    #validateScriptSignature: false # boolean. Optional. Use when ScriptType = FilePath. Validate script signature. Default: false.
    #workingDirectory: # string. Working Directory.
# Azure PowerShell v5
# Run a PowerShell script within an Azure environment.
- task: AzurePowerShell@5
  inputs:
    azureSubscription: # string. Alias: ConnectedServiceNameARM. Required. Azure Subscription. 
    #ScriptType: 'FilePath' # 'FilePath' | 'InlineScript'. Script Type. Default: FilePath.
    #ScriptPath: # string. Optional. Use when ScriptType = FilePath. Script Path. 
    #Inline: # string. Optional. Use when ScriptType = InlineScript. Inline Script. 
    #ScriptArguments: # string. Optional. Use when ScriptType = FilePath. Script Arguments. 
    #errorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
    #FailOnStandardError: false # boolean. Fail on Standard Error. Default: false.
  # Azure PowerShell version options
    #azurePowerShellVersion: 'OtherVersion' # 'LatestVersion' | 'OtherVersion'. Alias: TargetAzurePs. Azure PowerShell Version. Default: OtherVersion.
    preferredAzurePowerShellVersion: # string. Alias: CustomTargetAzurePs. Required when TargetAzurePs = OtherVersion. Preferred Azure PowerShell Version. 
  # Advanced
    #pwsh: false # boolean. Use PowerShell Core. Default: false.
    #workingDirectory: # string. Working Directory.

输入

azureSubscription - Azure 订阅
输入别名: ConnectedServiceNameARMstring. 必需。

Azure 资源管理器运行 PowerShell 之前要配置的订阅。


ScriptType - 脚本类型
string. 允许的值: FilePath (脚本文件路径) , InlineScript (内联脚本) 。 默认值:FilePath

脚本的类型:文件路径或内联。


ScriptPath - 脚本路径
string. 可选。 在 时 ScriptType = FilePath使用 。

脚本的路径。 这应该是一个完全限定的路径或相对于默认工作目录的路径。


Inline - 内联脚本
string. 可选。 在 时 ScriptType = InlineScript使用 。 默认值:# You can write your azure powershell scripts inline here. \n# You can also pass predefined and custom variables to this script using arguments

指定要执行的脚本。 支持的最大内联脚本长度为 5000 个字符。 如果要使用较长的脚本,请使用文件中的脚本。


ScriptArguments - 脚本参数
string. 可选。 在 时 ScriptType = FilePath使用 。

要传递给 PowerShell 的其他参数。 这些参数可以是序号参数,也可以是命名参数。 不适用于内联脚本选项。


errorActionPreference - ErrorActionPreference
string. 允许的值:stopcontinuesilentlyContinue。 默认值:stop

选择用于执行脚本的 ErrorActionPreference 变量的值。


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

如果为 true,则如果错误写入错误管道或将任何数据写入标准错误流,则此任务将失败。


azurePowerShellVersion - Azure PowerShell 版本
输入别名: TargetAzurePsstring. 允许的值: LatestVersion (最新版本) , OtherVersion (指定其他版本) 。 默认值:OtherVersion

对于托管代理,支持的Azure PowerShell版本为 1.0.01.6.02.3.22.6.03.1.0 (托管 VS2017 队列) 。 若要选择代理上可用的最新版本,请选择 LatestVersion “ (最新安装版本) ”。

对于专用代理,可以使用 (指定其他版本) OtherVersion 指定首选版本的 Azure PowerShell。


preferredAzurePowerShellVersion - 首选Azure PowerShell版本
输入别名: CustomTargetAzurePsstring. 当 TargetAzurePs = OtherVersion 时,需要此选项。

首选Azure PowerShell版本需要是适当的语义版本,例如。 1.2.3. 不支持等 2.\*,2.3.\* 正则表达式。 托管 VS2017 池当前支持 Az 模块版本 1.0.01.6.02.3.22.6.03.1.0


pwsh - 使用 PowerShell Core
boolean. 默认值:false

如果为 true,则在 Windows 代理上运行的任务将从路径powershell.exe而不是 使用 pwsh.exe


validateScriptSignature - 验证脚本签名
boolean. 可选。 在 时 ScriptType = FilePath使用 。 默认值:false

如果为 true,则任务将首先检查,以确保指定的脚本在执行之前已签名且有效。


workingDirectory - 工作目录
string.

运行脚本的工作目录。


任务控制选项

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

输出变量

无。

备注

疑难解答

脚本在本地工作,但在管道中失败

当管道中使用的服务连接没有足够的权限来运行脚本时,通常会发生这种情况。 脚本在本地使用凭据运行,并且会成功,因为你可能具有所需的访问权限。

若要解决此问题,请确保服务主体/身份验证凭据具有所需的权限。 有关详细信息,请参阅使用 Role-Based 访问控制 管理对 Azure 订阅资源的访问权限

错误:找不到版本为“version>”的模块:“<模块名称”。<> 如果模块是最近安装的,请在重启 Azure Pipelines 任务代理后重试

Azure PowerShell任务使用 Azure/AzureRM/Az PowerShell 模块与 Azure 订阅进行交互。 当 PowerShell 模块在托管代理上不可用时,会出现此问题。 因此,对于特定任务版本,必须在可用版本列表中的Azure PowerShell版本选项中指定首选Azure PowerShell版本。 已安装的软件可以在 Microsoft 托管代理“软件”表中找到。

服务连接问题

若要排查与服务连接相关的问题,请参阅 服务连接故障排除

示例

以下示例演示如何从文件调用脚本并将脚本参数传递给该文件。

- task: AzurePowerShell@5
  inputs:
    azureSubscription: my-arm-service-connection
    scriptType: filePath
    scriptPath: $(Build.SourcesDirectory)\myscript.ps1
    scriptArguments:
      -Arg1 val1 `
      -Arg2 val2 `
      -Arg3 val3
    azurePowerShellVersion: latestVersion
    pwsh: true

以下参数演示如何调用内联脚本。

- task: AzurePowerShell@5
  inputs:
    azureSubscription: 'Azure subscription connection placeholder'
    azurePowerShellVersion: LatestVersion
    ScriptType: 'InlineScript'
    Inline: |
      # You can write your azure powershell scripts inline here. 
      # You can also pass predefined and custom variables to this script using arguments
      Write-Host 'Hello'
      Write-Host 'World!'

要求

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