Список запущенных и ожидающих заданий в рабочем пространстве AzureML

Вопрос или проблема

Документация по получению списка заданий с использованием AzureML REST API доступна здесь: https://learn.microsoft.com/en-us/rest/api/azureml/jobs/list?view=rest-azureml-2024-04-01&tabs=HTTP

Однако этот запрос может вернуть сотни завершенных заданий. Меня интересует фильтрация списка на стороне сервера так, чтобы отображались только задания в очереди или выполняющиеся. Мне не удалось указать правильную комбинацию директив свойств, чтобы получить эти задания — в чем секрет?

Стоит отметить, что AzureML Studio использует другой API по адресу https://ml.azure.com/api/…/entities для получения этого списка, но этот API не поддерживается Az REST CLI.

Ответ или решение

Чтобы получить список текущих и ожидающих заданий в рабочем пространстве Azure ML, вы можете воспользоваться REST API Azure Machine Learning. В документации, на которую вы ссылаетесь, указано, как получить список всех заданий, однако, как вы правильно заметили, это может вернуть много завершённых заданий, что усложняет анализ.

Для того чтобы фильтровать задания по статусу, вы можете использовать параметр filter в вашем запросе. Вот как это можно сделать:

  1. Подготовьте свой запрос: Вам нужно будет отправить GET запрос к следующему URL:

    https://<your-workspace-region.api.azureml.ms/ml/v1.0/jobs?filter=status in ('Queued','Running')

    Замените <your-workspace-region> на регион вашего рабочего пространства.

  2. Аутентификация: Убедитесь, что вы используете правильные учётные данные и токен доступа при выполнении запроса. Вам нужно передать токен в заголовке запроса, например:

    Authorization: Bearer <your-access-token>
  3. Формирование полного запроса:
    Пример запроса с использованием curl:

    curl -X GET "https://<your-workspace-region.api.azureml.ms/ml/v1.0/jobs?filter=status in ('Queued','Running')" \
    -H "Authorization: Bearer <your-access-token>" \
    -H "Content-Type: application/json"
  4. Обработка ответа: В ответе на ваш запрос будут перечислены только те задания, которые находятся в состоянии Queued или Running. Вы сможете обработать полученные данные согласно вашим нуждам.

Если вы используете Python, вы можете использовать библиотеку requests для выполнения запроса:

import requests

workspace_region = 'your-workspace-region'
access_token = 'your-access-token'

url = f"https://{workspace_region}.api.azureml.ms/ml/v1.0/jobs?filter=status in ('Queued','Running')"
headers = {
    'Authorization': f'Bearer {access_token}',
    'Content-Type': 'application/json'
}

response = requests.get(url, headers=headers)

if response.status_code == 200:
    jobs = response.json()
    print(jobs)  # Вывод списка заданий
else:
    print(f"Ошибка: {response.status_code}, {response.text}")

Таким образом, вы сможете получить только те задания, которые находятся в запущенном или ожидающем состоянии без необходимости вручную отсеивать завершённые задания.

Оцените материал
Добавить комментарий

Капча загружается...