VSTS任务组Powershell参数

时间:2018-03-23 10:41:42

标签: powershell azure-devops

我使用带有四个参数的Azure Powershell任务内联脚本创建了VSTS任务组。我已将此任务组添加到版本定义和已配置的参数。当我尝试释放它失败并出现以下错误

  

2018-03-23T10:28:42.2811600Z ## [错误]在   C:\ Users \用户buildguest \应用程序数据\本地\ TEMP \ 6e927620-8956-47d6-b926-00d9177a4c26.ps1:2   焦炭:9   + [String] Container-Service,   +〜参数声明是一个逗号分隔的变量名列表,带有可选的初始化表达式。

     

目前   C:\ Users \用户buildguest \应用程序数据\本地\ TEMP \ 6e927620-8956-47d6-b926-00d9177a4c26.ps1:2   焦炭:9   + [String] Container-Service,   +〜缺少')'在函数参数列表中。

这是Azure Powershell脚本

 Param(  
[String] $(apiManagementRg),   
[String] $(apiManagementName),     
[String] $(swaggerUrl),     
[String] $(basePath),   
[String] $(apiId)
)

$ApiMgmtContext = New-AzureRmApiManagementContext -ResourceGroupName $(apiManagementRg) -ServiceName $(apiManagementName)
Import-AzureRmApiManagementApi -Context $ApiMgmtContext -SpecificationFormat "Swagger" -SpecificationUrl $(swaggerUrl) -Path $(basePath) -ApiId $(apiId)

发布定义截图 Last data

1 个答案:

答案 0 :(得分:3)

这主要是由PowerShell脚本语法错误引起的。

根据您的脚本,似乎$(apiManagementRg)$(apiManagementName)$(swaggerUrl)$(basePath)$(apiId)是您的发布定义中定义的变量。

要将版本定义中的用户定义变量用于Powershell脚本参数,您应在脚本参数中指定用户定义的变量,以将值传递到PowerShell参数中。

详细步骤如下:

  • 删除您创建的任务组。
  • 使用Azure PowerShell任务重新创建任务组,如下所示:

    内联脚本:

    Param(  
    [String] $Rg,   
    [String] $Name,     
    [String] $Url,     
    [String] $path,   
    [String] $apiId
    )
    
    $ApiMgmtContext = New-AzureRmApiManagementContext -ResourceGroupName $Rg -ServiceName $Name
    Import-AzureRmApiManagementApi -Context $ApiMgmtContext -SpecificationFormat "Swagger" -SpecificationUrl $url -Path $path -ApiId $apiId
    

    脚本参数:

    -Rg "$(apiManagementRg)" -Name "$(apiManagementName)" -Url "$(swaggerUrl)" -path "$(basePath)" -apiId "$(apiId)"
    

    enter image description here