Я пытаюсь запустить сценарий python внутри моей Windows 10 Azure ВМ. Мне удалось подключиться к виртуальной машине и запустить скрипт из модуля Runbook автоматизации, но, похоже, ничего из скрипта PowerShell не выводится после завершения работы Runbook.
Мой python скрипт хранится в C:\Users\username\Desktop\test.py
:
print("Hello World.")
Мой сценарий PowerShell хранится в C:\Users\username\Desktop\test.ps1
:
Write-Output "Starting Script..."
C:\Users\username\Python\python.exe C:\Users\username\Desktop\test.py
Write-Output "Shutting Down..."
Мой Azure модуль Runbook с именем VMRunTest:
$connectionName = "AzureRunAsConnection"
try
{
# Get the connection "AzureRunAsConnection "
$servicePrincipalConnection=Get-AutomationConnection -Name $connectionName
"Logging in to Azure..."
Add-AzureRmAccount `
-ServicePrincipal `
-TenantId $servicePrincipalConnection.TenantId `
-ApplicationId $servicePrincipalConnection.ApplicationId `
-CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint
}
catch {
if (!$servicePrincipalConnection)
{
$ErrorMessage = "Connection $connectionName not found."
throw $ErrorMessage
} else{
Write-Error -Message $_.Exception
throw $_.Exception
}
}
$rgname ="ParcelTracking"
$vmname ="ParcelTracking-Scraper"
$ScriptToRun = "C:\Users\username\Desktop\test.ps1"
Out-File -InputObject $ScriptToRun -FilePath ScriptToRun.ps1
Invoke-AzureRmVMRunCommand -ResourceGroupName $rgname -Name $vmname -CommandId 'RunPowerShellScript' -ScriptPath ScriptToRun.ps1
Remove-Item -Path ScriptToRun.ps1
Согласно документации также требуется, чтобы я открыл выходной порт на виртуальной машине, чтобы разрешить порт 443
с тегом AzureCloud
. На следующем изображении показаны мои настройки для этого.
Когда я выполняю Azure Runbook, я не получаю ошибок, предупреждений и исключений. Это следующий результат:
Logging in to Azure...
Environments
------------
{[AzureChinaCloud, AzureChinaCloud], [AzureCloud, AzureCloud], [AzureGermanCloud, AzureGermanCloud], [AzureUSGovernme...
Value : {Microsoft.Azure.Management.Compute.Models.InstanceViewStatus,
Microsoft.Azure.Management.Compute.Models.InstanceViewStatus}
Name :
StartTime :
EndTime :
Status : Succeeded
Error :
Output :
Capacity : 0
Count : 0
Item :
Итак, похоже, он был успешным, однако я не вижу упоминания об операторе Hello World.
или каких-либо операторов вывода из сценария powershell. Итак, я могу только предположить, что сценарий python не выполняется. Я также знаю это, попробовав этот процесс на сценарии python, запуск которого должен занять примерно ~ 15 минут, и он возвращается как завершенный в течение 1 минуты. подробности где-то. Любая помощь будет принята с благодарностью.