我的代码定义如下:
param ($apim_service_name, $apprid, $rg_name, $tid, $url)
<set-url>@($"$url/{(string)context.Variables["insured-id"]}")</set-url>
$apimContext = New-AzApiManagementContext -ResourceGroupName $rg_name -ServiceName $apim_service_name
Set-AzApiManagementPolicy -Context $apimContext -Format "application/vnd.ms-azure-apim.policy.raw+xml" -ApiId "echo-api" -OperationId "retrieve-resource" -Policy $PolicyStringRead
在pipeline变量中,我添加了变量,并在我的pipeline模板中使用我的PowerShell脚本如下所示:
steps:
- task: AzurePowerShell@5
displayName: 'Azure PowerShell script: FilePath'
inputs:
azureSubscription: 'sub-test'
ScriptPath: 'test-policy.ps1'
ScriptArguments: '"$(apim_service_name)" "$(apprid)" "$(rg_name)" "$(tid)" -url $(url)'
azurePowerShellVersion: LatestVersion
在管道的变量部分定义变量
除“url”之外的所有内容都将被替换
是两个“$”符号影响了替换字符串吗?
有人能帮我更新一下吗?因为它需要第一个“$”符号才能读取值
1条答案
按热度按时间m2xkgtsf1#
感谢@jdweng向用户建议正确的解决方案,解决了问题。
PS不会替换单引号内的变量(仅双引号)。请使用两个双引号对单引号进行转义:脚本参数:“$apim服务名称$apprid $rg名称$tid -url $url”
我们可以用单引号或双引号将字符串括起来,但要在发送命令处理之前替换以美元符号($)开头的变量中的值,您必须只使用双引号,如PowerShell引用规则的MS Doc中所示。