Проблема пакетной задачи Azure при выполнении файла VBS - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь запустить файл VBS как пакетную задачу Azure и постоянно получаю сообщения о том, что файл сценария не может быть найден.

Вот одна из команд, которая работает:

string appPath = String.Format("%AZ_BATCH_APP_PACKAGE_{0}#{1}%", appPackageId, appPackageVersion);
string taskCommandLine = String.Format("cmd /c {0}\\ffmpeg-3.4-win64-static\\bin\\ffmpeg.exe -i {1} -vcodec libx264 -crf 28 -c:a aac -b:a 128k {2} & del {3} & rename {4} {5}", appPath, inputMediaFile, outputMediaFile, inputMediaFile, outputMediaFile, inputMediaFile);

Это работает правильно, но перед тем, как запустить ffmpeg для входного файла, я хотел бы сначала выполнить некоторые проверки с помощью ffprobe и делать это с отстойами типа .bat, поэтому я попытался сделать это в VBScript.

string appPath = String.Format("%AZ_BATCH_APP_PACKAGE_{0}#{1}%", appPackageId, appPackageVersion);
string taskCommandLine = String.Format("cmd /c cscript {0}\\ffmpeg-3.4-win64-static\\bin\\scan_run1.vbs {1} {2}", appPath, inputMediaFile, outputMediaFile);

Что приводит к:

Microsoft (R) Windows Script Host версии 5.8 Copyright (C) Microsoft Corporation.Все права защищены.

Ошибка ввода: не удается найти файл сценария "D: \ batch \ tasks \ Applications \ ffmpeg3.42019-02-01-19-50 \ ffmpeg-3.4-win64-static \ bin \scan_run1.vbs "

Я почти уверен, что vbs есть, потому что запуск ffmpeg.exe в том же месте работает нормально.

Портал Azure удаляет VBSиз файла ZIP, когда я загружаю его как пакет?Что там происходит?

Спасибо.


Оказывается, портал Azure не обновляет пакет приложения, когда я его заменяю.Так что у него есть «scan_run.vbs», но нет «scan_run1.vbs», хотя он есть у моего ZIP-файла.

1 Ответ

0 голосов
/ 05 февраля 2019

Это поможет в лучшем понимании, по сути, короткий ответ таков:

Ссылка из документа здесь: https://docs.microsoft.com/en-us/azure/batch/batch-application-packages

Подобно пулу, вы указываете ссылки на пакеты приложенийдля задачи.Когда запланировано выполнение задачи на узле, пакет загружается и извлекается непосредственно перед выполнением командной строки задачи. Если указанный пакет и версия уже установлены на узле, пакет не загружается и используется существующий пакет .

Сведения

Как я уже упоминал в комментариях, если у вас другая версия пакета приложения, рекомендуется.

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

рекомендации

Как работает версия, подробно здесь:

Дополнительно:

Общие Gotchas

  • Если пользовательское приложение загружает pkgs приложения на лету через API или вручную, убедитесь, что пакет правильно загружен, Программно обычно non async поведение приводит к проблеме, поэтому всегда ждитевыгрузка заканчивается до того, как Пакетное создание пула и продолжается.
...