2016-12-27 2 views
0

Я использую API-интерфейс Azure batch python. Когда я создаю новое задание, я вижу код выхода 128 (изображение прикреплено). Как я могу узнать, в чем причина этого?Не удалось выполнить задачи запуска пакетной задачи Azure

exit code error

Я создаю новую работу, используя этот код:

def wrap_commands_in_shell(commands): 
    return "/bin/bash -c 'set -e; set -o pipefail; {}; wait'".format(';'.join(commands)) 

job_tasks = ['cd /mnt/batch/tasks/shared/ && git clone https://github.com/cryptobiu/OSPSI.git', 
      'cd /mnt/batch/tasks/shared/OSPSI && git checkout cloud', 
      'cd /mnt/batch/tasks/shared/OSPSI && cmake CMake', 
      'cd /mnt/batch/tasks/shared/OSPSI && mkdir -p assets' 
      ] 

job_creation_information = batch.models.JobAddParameter(job_id, batch.models.PoolInformation(pool_id=pool_id), 
                 job_preparation_task=batch.models.JobPreparationTask(
                  command_line=wrap_commands_in_shell(
                   job_tasks), 
                  run_elevated=True, 
                  wait_for_success=True 
                 ) 
                 ) 

ответ

2

Для диагностики, вы можете посмотреть на stderr.txt и stdout.txt для задачи подготовки работы, который не удалось в Azure Portal , используя Azure Batch Explorer или используя SDK через код. Если вы посмотрите, какой узел выполнил задачу подготовки задания, перейдите к этому узлу, затем в каталог заданий. В каталоге заданий вы должны увидеть каталог jobpreparation. В этом каталоге будут stderr.txt и stdout.txt.

Что касается кода выхода, есть несколько потенциальных проблем, которые могут привести к следующим образом:

  1. ли установлен git, cmake и любых других зависимостей в рамках запуска задачи?
  2. Я получаю 404, когда пытаюсь перейти на: https://github.com/cryptobiu/OSPSI. Существует ли это репо? Если это частный репозиторий, вы предоставляете правильные учетные данные?

Несколько замечаний по поводу вашей job_tasks массива:

  • Вы не должны жёстко пути /mnt/batch/tasks/shared. Этот путь к «общему» каталогу может отличаться от дистрибутивов Linux. Вместо этого вы должны использовать переменную окружения $AZ_BATCH_NODE_SHARED_DIR. Вы можете просмотреть полный список предустановленных переменных окружения Azure Batch here.
  • Вам не нужно записывать cd в каталог для каждой команды, вам нужно только сделать это один раз. Вы можете переписать job_tasks как: ['cd $AZ_BATCH_NODE_SHARED_DIR', 'TODO: INSERT YOUR COMMANDS TO SETUP AUTH WITH GITHUB FOR PRIVATE REPO', 'git clone https://github.com/cryptobiu/OSPSI.git', 'cd OSPSI', 'cmake CMake', 'mkdir -p assets']
+0

мой репозиторий является приватным и только авторизованные пользователи могут смотреть. Я установил все зависимости (git, cmake ..). Спасибо за ваш ответ – liorko

Смежные вопросы