Сохранение пакетных заданий и выходных данных задач

Задача, выполняемая пакетной службой Azure, может генерировать выходные данные при запуске. Выходные данные задачи часто требуется хранить, чтобы их могли получать другие задачи в задании и (или) клиентское приложение, которое выполняет это задание. Задачи записывают выходные данные в файловую систему вычислительного узла пакетной службы. При этом все данные на узле удаляются при пересоздании образа или исключении узла из пула. Задачи могут также иметь срок хранения файла, по истечении которого созданные задачей файлы удаляются. Поэтому важно хранить выходные данные задачи, которые понадобятся вам позднее для использования с хранилищем данных, например службой хранилища Azure.

Параметры учетной записи хранения в пакетной службе см. в статье Учетные записи пакетной службы и учетные записи хранения Azure.

К типичным примерам выходных данных задачи относятся:

  • файлы, созданные при обработке задачей входных данных;
  • файлы журналов, сопоставленные с выполнением задачи.

В этой статье описываются различные способы сохранения выходных данных. Сохранять выходные данные из задач и заданий пакетной службы Azure можно в службу хранилища Azure или другие хранилища.

Способы сохранения выходных данных

Существует несколько способов сохранения выходных данных. Выберите оптимальный метод для вашего сценария:

API пакетной службы

Для сохранения выходных данных можно использовать API пакетной службы. Укажите выходные файлы в службе хранилища Azure для данных задачи при добавлении отдельной задачи или коллекции задач в задание.

Дополнительные сведения можно найти в разделе Сохранение данных задачи в службе хранилища Azure с помощью API пакетной службы.

Библиотека соглашений о пакетных файлах

Библиотека соглашений о пакетных файлах — это дополнительный набор соглашений об именовании выходных файлов задач в службе хранилища Azure. Стандарт предоставляет соглашения об именовании для целевого контейнера файла и пути к BLOB-объекту на основе имен задания и задачи.

Использование стандарта соглашений об именовании файлов выходных данных является опциональным. Вместо этого можно присвоить имя целевому контейнеру и пути BLOB-объекта. Если вы используете стандарт соглашений об именовании файлов, вы можете просматривать выходные файлы на портале Azure.

Если вы создаете пакетное решение с помощью C# и .NET, вы можете использовать библиотеку соглашений о пакетных файлах для .NET. Библиотека перемещает выходные файлы в службу хранилища Azure и именует целевые контейнеры и BLOB-объекты в соответствии со стандартом соглашений о пакетных файлах.

Для получения дополнительных сведений см. Сохранение данных заданий и задач в службе хранилища Azure с помощью библиотеки соглашений о пакетных файлах для .NET.

Стандарт соглашений о пакетных файлах

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

  • Требуется использовать общую схему именования.
  • Требуется просмотреть выходные данные задачи на портале Azure.

Пользовательское решение для перемещения файлов

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

  • Требуется сохранить данные задачи в хранилище данных, отличном от службы хранилища Azure. Например, вы хотите передать файлы в хранилище данных, такое как Azure SQL или Azure DataLake. Создайте пользовательский скрипт или исполняемый файл для отправки в это расположение. Затем вызовите пользовательский скрипт или исполняемый файл в командной строке после запуска основного исполняемого файла. Например, на узле Windows вызовите doMyWork.exe && uploadMyFilesToSql.exe.
  • Требуется реализовать контрольные точки или выполнить досрочную отправку начальных результатов.
  • Требуется детально управлять обработкой ошибок. Например, вам необходимо использовать действия зависимостей задач для выполнения определенных операций отправки на основе кодов выхода конкретной задачи.

Рекомендации по проектированию

При разработке решения пакетной службы учитывайте следующие факторы.

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

  • В период существования узла, на котором выполняется задача.
  • В течение заданного для задачи периода хранения файлов.

Когда вы просматриваете задачу пакетной службы на портале Azure и выбираете Файлы на узле, вы видите все файлы для этой задачи, а не только выходные файлы. Чтобы получить выходные данные задачи непосредственно от вычислительных узлов в вашем пуле, необходимо знать имя файла и расположение его выходных данных на узле.

Если вы хотите сохранять выходные данные задачи в течение более длительного срока, настройте задачу для отправки выходных файлов в хранилище данных. В качестве хранилища данных рекомендуется использовать службу хранилища Azure. Существует интеграция для записи выходных данных задачи в службу хранилища Azure в API пакетной службы. Для сохранения данных можно использовать другие варианты длительного хранения. Однако вам нужно самостоятельно написать логику приложения для других вариантов хранения.

Чтобы просмотреть выходные данные в службе хранилища Azure, используйте портал Azure или клиентское приложение этой службы, например, Обозреватель службы хранилища Azure. Запишите расположение выходного файла и перейдите непосредственно в это расположение.

Следующий шаг