Тестовая панель Runbook не показывает запись-вывод - PullRequest
0 голосов
/ 20 сентября 2019

Я новичок в автоматизации, и довольно плохо знаком с Powershell, так что я надеюсь, что это простое решение.:)

Я пытаюсь заставить работать некоторый код.И, насколько я знаю, он работает, но тестовая панель ничего не показывает.Исходя из этой темы: Runbook PowerShell для Azure не показывает вывод , я попытался опубликовать код и очистить кеш браузера, но в моем случае это не помогло, поэтому я думаю, что естьпроблема с кодом?

Вот мой (обобщенный) код):

workflow DB_DailyTasks 
{
    Write-Output "Code starting"

    inlinescript 
    {
        [string] $SqlServerName = "myDb.database.windows.net"
        $Credential = Get-AutomationPSCredential -Name "myDatabase-automation"
        # Setup credentials   
        $ServerName = $Using:SqlServerName
        $UserId = $Using:Credential.UserName
        $Password = ($Using:Credential).GetNetworkCredential().Password

        # Execute the udp_myProc procedure

        # Create connection for each individual database
        $DatabaseConnection = New-Object System.Data.SqlClient.SqlConnection
        $DatabaseCommand = New-Object System.Data.SqlClient.SqlCommand

        Write-Output "ConnectionState is: $(DatabaseConnection.State)"

        $DbName = "myDb"

        # Setup connection string for $DbName
        $DatabaseConnection.ConnectionString = "Server=$ServerName; Database=$DbName; User ID=$UserId; Password=$Password;"
        $DatabaseConnection.Open();

        Write-Output "ConnectionState is: $(DatabaseConnection.State)"

        # Create command for a specific database $DBName
        $DatabaseCommand.Connection = $DatabaseConnection

        Write-Output "Running udp_myProc procedure"

        $DatabaseCommand.CommandText = "EXECUTE [dbo].[udp_myProc]"
        $NonQueryResult = $DatabaseCommand.ExecuteNonQuery()

        # Close connection to $DbName
        $DatabaseConnection.Close()        
    }
}

... и вот что я вижу на тестовой панели, когда пытаюсь проверить: Unhelpful test pane

... который не очень помогает узнать, действительно ли он работал.

Заранее благодарим за любую помощь, которую вы можете предоставить!:)

[Редактировать] Код определенно не запущен.Хранимая процедура вставляет запись в таблицу истории, и нет записи о том, что она выполнялась ни для тестов, ни для тех случаев, когда я запускал опубликованные выходные данные.

Интересная заметка, хотя - когда я запускал опубликованные выходные данные, тамне было ошибок и предупреждений, но на вкладке «Вывод» говорилось: «Это задание не имеет вывода».

[Редактировать # 2]: На моем локальном компьютере тоже ничего не записывается??

[Edit # 3]: Заменить запись-вывод на Write-Host внутри блока inlinescript.Без изменений, ни на консоли администратора Azure, ни на моем локальном компьютере.

1 Ответ

0 голосов
/ 21 сентября 2019

Я предполагаю, что вы создали PowerShell runbook, а не PowerShell Workflow runbook.Если это правильно, то ваш код Runbook объявляет рабочий процесс с именем DB_DailyTasks, но никогда не вызывает его.Например, вы можете объявить функцию, но не ожидаете, что из-за этого она будет автоматически вызываться .

Если вы не уверены, что вам нужен workflow , а не обычный runbook PowersShell, я бы порекомендовал удалить workflow и InlineScript из вашего кода и иметь дело с обычным PowerShell.

Однако, если вам действительно нужен рабочий процесс(не рекомендуется, если вам не нужно использовать контрольные точки и такие вещи, как parallel и foreach -parallel), а затем создайте модуль Runbook типа «Рабочий процесс PowerShell»: он обрабатывает ключевое слово workflow по-другому, поэтому ваш код будет правильным.

...