Вызов сценария PowerShell из пакетной пользовательской операции Azure с использованием PowerShell и переменной среды приложения - PullRequest
0 голосов
/ 30 октября 2019

Я медленно выясняю, как вызывать скрипт PowerShell для преобразования журналов IIS с использованием LogParser 2.2. Я решил использовать пользовательское действие пакетной службы фабрики данных Azure для запуска сценария PowerShell. Мне удалось выяснить, как решить многие проблемы с путями к файлам, возникающие при запуске PowerShell из пользовательской пакетной операции Azure, но я не могу понять это.

В настоящее время я простопытаясь распечатать через Write-Host переменную окружения AZ_BATCH_APP_PACKAGE_powershellscripts # 1.0 Я смог напечатать другие переменные окружения, но я считаю, что # 1.0 в конце этого вызывает все мое горе. Кстати, версия 1.0 - это версия приложения, загруженная в пакетную среду в Azure.

Все следующие попытки не увенчались успехом:

powershell powershell Write-Host "$AZ_BATCH_APP_PACKAGE_powershellscripts#1.0"
powershell Write-Host "$AZ_BATCH_APP_PACKAGE_powershellscripts#1.0"
powershell Write-Host "$env:AZ_BATCH_APP_PACKAGE_powershellscripts#1.0"
powershell powershell Write-Host "$env:AZ_BATCH_APP_PACKAGE_powershellscripts\#1.0"
powershell powershell Write-Host "$env:AZ_BATCH_APP_PACKAGE_powershellscripts/#1.0"
powershell powershell Write-Host "$env:AZ_BATCH_APP_PACKAGE_powershellscripts"
powershell powershell Write-Host "$env:AZ_BATCH_APP_PACKAGE_powershellscripts`#1.0"
powershell powershell Write-Host "$env:AZ_BATCH_APP_PACKAGE_powershellscripts`#1`.0"
powershell powershell Write-Host "$env:AZ_BATCH_APP_PACKAGE_powershellscripts\`#1.0"
powershell powershell Write-Host "$AZ_BATCH_APP_PACKAGE_powershellscripts`#1.0"

Это работает, но это окно cmd или нетпеременная, которую я хочу:

powershell powershell Write-Host "$env:AZ_BATCH_TASK_DIR"
powershell powershell Write-Host "$env:AZ_BATCH_ACCOUNT_URL"
cmd /c echo %AZ_BATCH_APP_PACKAGE_powershellscripts#1.0%

Так что же является секретным синтаксическим сахаром для того, чтобы заставить это работать в Azure?

Ответы [ 2 ]

1 голос
/ 01 ноября 2019

Я прошел около 50 попыток, прежде чем заставить его работать следующим образом:

powershell powershell Write-Host (Get-ChildItem Env:AZ_BATCH_TASK_DIR).Value
powershell powershell Write-Host (Get-ChildItem Env:AZ_BATCH_APP_PACKAGE_powershellscripts#1.0).Value

Теперь это было лишь ступенькой к запуску сценария PowerShell, хранящегося в прикрепленном приложении к пакетному модулю Azure. Я надеюсь, что Microsoft добавит блок данных или лучший способ запуска сценария PowerShell в фабрике данных Azure, но до тех пор это единственный метод, который я нашел для запуска сценария powershell:

powershell powershell -command ("(Get-ChildItem Env:AZ_BATCH_APP_PACKAGE_powershellscripts#1.0).Value" + '\Powershell\processWebLogsFromAzure.ps1')

Это должно работатьдля тех, кто просто пытается запустить из Batch Task Dir:

powershell powershell -command ("$env:AZ_BATCH_TASK_DIR" + '\wd\processWebLogsFromAzure.ps1')

Надеюсь, это кому-нибудь поможет!

1 голос
/ 30 октября 2019

Конечно, вы можете сделать это:

powershell powershell Write-Host "$((Get-Variable -Name 'AZ_BATCH_APP_PACKAGE_powershellscripts#1.0').Value)"

Или это:

powershell powershell Write-Host (Get-Variable -Name "AZ_BATCH_APP_PACKAGE_powershellscripts#1.0").Value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...