#azure #azure-batch
#azure #azure-batch
Вопрос:
Сценарий: у меня есть задание, созданное в azure batch для пула. Теперь я создал другой пул и хочу указать свою работу на вновь созданный пул. Я использую azure-batch SDK для написания следующего фрагмента кода
import azure.batch.batch_service_client as batch
batch_service_client = batch.BatchServiceClient(credentials, batch_url = account_url)
job_id="LinuxTrainingJob"
pool_id="linux-e6a63ad4-9e52-4b9a-8b09-2a0249802981"
pool_info = batch.models.PoolInformation(pool_id=pool_id)
job_patch_param = batch.models.JobPatchParameter(pool_info=pool_info)
batch_service_client.job.patch(job_id, job_patch_param)
Это выдает следующую ошибку
BatchErrorException Traceback (most recent call last)
<ipython-input-104-ada32b24d6a0> in <module>
2 pool_info = batch.models.PoolInformation(pool_id=pool_id)
3 job_patch_param = batch.models.JobPatchParameter(pool_info=pool_info)
----> 4 batch_service_client.job.patch(job_id, job_patch_param)
~/anaconda3/lib/python3.8/site-packages/azure/batch/operations/job_operations.py in patch(self, job_id, job_patch_parameter, job_patch_options, custom_headers, raw, **operation_config)
452
453 if response.status_code not in [200]:
--> 454 raise models.BatchErrorException(self._deserialize, response)
455
456 if raw:
BatchErrorException: {'additional_properties': {}, 'lang': 'en-US', 'value': 'The specified operation is not valid for the current state of the resource.nRequestId:46074112-9a99-4569-a078-30a7f4ad2b91nTime:2020-10-06T17:52:43.6924378Z'}
Учетные данные указаны выше и работают должным образом, поскольку я смог создать пул и задания, используя один и тот же клиент.
Сведения об окружающей среде
azure-batch==9.0.0
python 3.8.3
Ubuntu 18.04
Ответ №1:
Чтобы назначить задание другому пулу, необходимо вызвать API disableJob для удаления текущих задач из пула. Затем вы можете вызвать updateJob, чтобы назначить новый идентификатор пула для запуска. После ее обновления вы можете вызвать enableJob для продолжения выполнения заданий.