Функция разделения Powershell не работает в конвейере VSTS Release - PullRequest
0 голосов
/ 22 апреля 2019

Я написал скрипт powershell, который принимает в качестве входных данных несколько веб-приложений (через запятую). Я делю эти веб-приложения, используя функцию разбиения powershell, и настраиваю веб-приложения, обходя каждое из них, используя цикл for-each. В редакторе Powershell все работает нормально, но когда я настраиваю тот же сценарий для конвейера выпуска VSTS, функция split не работает и приводит к сбою.

Ввод: devopstestwebapp1, devopstestwebapp2

Код: $ WebAppName = $ WebAppName.Split (',')

Вывод (после разделения): devopstestwebapp1 devopstestwebapp2

Ошибка: Ресурс 'Microsoft.Web / sites / devopstestwebapp1 devopstestwebapp2 'в группе ресурсов' DevOpsResourseGroup 'не найдено.

Ниже приведен мой скрипт powershell

# Parameters
param (   
    [Parameter(Position=0,mandatory=$true)]
    [string] $AADAppID,
    [Parameter(Position=1,mandatory=$true)]
    [string] $AADKey,
    [Parameter(Position=2,mandatory=$true)]
    [string] $TenantId,
    [Parameter(Position=3,mandatory=$true)]
    [string] $ResourceGroupName,
    [Parameter(Position=4,mandatory=$true)]
    [string] $ServerName,
    [Parameter(Position=5,mandatory=$true)]
    [string] $RGLocation,
    [Parameter(Position=6,mandatory=$true)]
    [string] $WebAppName,
    [Parameter(Position=7,mandatory=$true)]
    [string] $SubscriptionName
 )

    # Connect to Azure

    $ssAADKey = ConvertTo-SecureString $AADKey -AsPlainText -Force
    $psCredential = New-Object System.Management.Automation.PSCredential($AADAppID, $ssAADKey)

    Connect-AzureRmAccount -ServicePrincipal -Credential $psCredential -Subscription $SubscriptionName -TenantId $TenantId     
    write-host $WebAppName
    $WebAppName = $WebAppName.Split(',')
     write-host $WebAppName
    Foreach ($servicename in $WebAppName)
    {
        write-host $servicename

    }

enter image description here

1 Ответ

0 голосов
/ 22 апреля 2019

Ниже отлично работает с задачей PowerShell VSTS:

Сохранить имя приложения в переменной: enter image description here

$WebAppName = '$(WebAppName)'
write-host $WebAppName
foreach($servicename in $WebAppName.Split(','))
{
        write-host $servicename
}

Выход:

2019-04-22T11:02:02.7680996Z devopstestwebapp1,devopstestwebapp2,devopstestwebapp3
2019-04-22T11:02:02.7737101Z devopstestwebapp1
2019-04-22T11:02:02.7750490Z devopstestwebapp2
2019-04-22T11:02:02.7765756Z devopstestwebapp3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...