我使用带有四个参数的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
答案 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)"