CreateGPSDDraft

Сводка

Функция конвертирует объекты Result и файлы результата (.rlt) в файлы черновика определения сервиса (.sddraft).

Примечание:

Проект определения сервиса не содержит данные. Проект сервиса сам по себе не может использоваться для публикации сервиса.

Описание

CreateGPSDDraft – это первый шаг для автоматизации публикации результатов геообработки на ГИС-сервере с помощью ArcPy. Результатом работы CreateGPSDDraft является файл Черновика определения сервиса (.sddraft). Черновик определения сервиса – это комбинация файла результата или объекта Result, информации о сервере и набора свойств сервиса. Объект Result может быть создан в скрипте Python путем задания переменной для выполнения инструмента. Например, в следующем выражении результат буферизации сохраняется в переменную result.

import arcpy
result = arcpy.Buffer_analysis("inPts", "output.shp", "100 Meters")

Информация о сервере содержит подключение к серверу, тип сервера, на который выполняется публикация, тип публикуемого сервиса, метаданные для сервиса (информация об элементе Item) и ссылки на данные (копируются данные на сервер или нет).

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

Черновик определения сервиса затем должен быть конвертирован в полностью готовый файл определения сервиса (.sd) с помощью инструмента Промежуточный сервис. Во время подготовки компилируется вся информация, необходимая для успешной публикации ГИС-ресурса. Если данные не зарегистрированы на сервере, они будут добавлены после подготовки проекта определения сервиса. Наконец, файл определения сервиса можно загрузить и опубликовать как ГИС-сервис на заданном сервере ГИС с помощью инструмента Загрузить определение сервиса. На этом шаге файл определения сервиса копируется на сервер, извлекается необходимая информация и публикуется ГИС-ресурс. Дополнительные сведения см. в Обзоре группы инструментов Публикация.

Синтаксис

CreateGPSDDraft (result, out_sddraft, service_name, {server_type}, {connection_file_path}, {copy_data_to_server}, {folder_name}, {summary}, {tags}, {executionType}, {resultMapServer}, {showMessages}, {maximumRecords}, {minInstances}, {maxInstances}, {maxUsageTime}, {maxWaitTime}, {maxIdleTime}, {capabilities}, {constantValues})
ParameterОбъяснениеТип данных
result
[result,...]

Ссылка на один или несколько объектов Result или файлов результата (.rlt) на диске. Множество результатов должно быть предоставлено в формате списка. Следующий пример демонстрирует использование множества результатов в качестве входных данных для функции CreateGPSDDraft.

import arcpy
result1 = arcpy.Buffer_analysis("inPts", "output.shp", "100 Meters")
result2 = arcpy.GetCount_management("FireStations")
arcpy.CreateGPSDDraft([result1, result2], "output.sddraft", "myservice")
Result
out_sddraft

Строка, представляющая путь и имя файла для выходного файла черновика определения сервиса (.sddraft).

String
service_name

Строка, представляющая имя сервиса. Это то имя, которое будут видеть другие пользователи и использовать для обозначения этого сервиса. Имя может содержать только буквы, цифры и знак подчеркивания. В имени нельзя использовать пробелы и специальные символы. Длина имени не должна превышать 120 символов.

String
server_type

Строка, представляющая тип сервера. Если параметр connection_file_path не указан, то должен быть предоставлен параметр server_type. Если параметр connection_file_path указан, то параметр server_type берется из файла подключения. В этом случае можно выбрать FROM_CONNECTION_FILE или пропустить весь параметр.

Примечание:

MY_HOSTED_SERVICES доступен только при создании файлов .sddraft в ArcGIS Pro.

  • ARCGIS_SERVERТип сервера ArcGIS Server.
  • FROM_CONNECTION_FILEПолучить server_type, как указано в параметре connection_file_path.
  • MY_HOSTED_SERVICESСоздает файл .sddraft для публикации на текущем портале.

(Значение по умолчанию — ARCGIS_SERVER)

String
connection_file_path

Строка, содержащая путь и имя файла подключения к ArcGIS Server (.ags).

String
copy_data_to_server

Булев параметр, указывающий на то, будут ли данные, на которые ссылается result, скопированы на сервер или нет. Параметр copy_data_to_server используется, только если параметр server_type содержит значение ARCGIS_SERVER, а параметр connection_file_path не задан. Если параметр connection_file_path указан, используются зарегистрированные хранилища данных сервера. Например, если данные в result зарегистрированы на сервере, то значение copy_data_to_server всегда будет равно False. И наоборот, если данные в result не зарегистрированы на сервере, значение copy_data_to_server всегда будет равно True.

(Значение по умолчанию — False)

Boolean
folder_name

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

(Значение по умолчанию — None)

String
summary

Строка, представляющая краткую информацию для элемента.

Используйте этот параметр для замены сводки пользовательского интерфейса или введения сводки, если она не существует. Приведенная здесь краткая информация не будет сохранена в документе карты.

(Значение по умолчанию — None)

String
tags

Строка, представляющая теги описания элемента.

Используйте этот параметр для замены тегов пользовательского интерфейса или для введения тегов, если они отсутствуют. Приведенные здесь теги не будут сохранены в документе карты.

(Значение по умолчанию — None)

String
executionType

Синхронность и асинхронность определяют, как клиент (приложение, использующее задачу) будет взаимодействовать с сервером и получать результаты выполнения задачи. Когда сервис настроен на синхронность, клиент ждет, пока задача будет закончена. Как правило, синхронная задача выполняется быстро – 5 секунд и меньше. Асинхронная задача обычно выполняется медленнее, а клиент должен периодически запрашивать сервер, выполнена ли задача, и если задача выполнена, получить результат. Веб-приложение, использующее асинхронную задачу, должно иметь реализованную логику для проверки статуса задания и обработки результата, когда выполнение завершено. Клиенты ArcGIS for Desktop поддерживают оба типа выполнения.

(Значение по умолчанию — Asynchronous)

String
resultMapServer

При публикации сервиса геообработки можно выбрать просмотр результата всех задач сервиса в виде карты (в дополнение к любым другим результатам задачи). Карта создается на сервере с помощью картографического сервиса (Map Service), а затем отправляется обратно клиенту в виде изображения (например, .jpeg). Символы, надписи, прозрачность и все другие свойства возвращенной карты соответствуют настройкам вашего выходного слоя. Не забывайте, что если вы создаете слои результата в среде скриптов Python (вне ArcGIS Pro), то будут использоваться символы, установленные по умолчанию. Чтобы управлять символами, вам необходимо создать файлы слоя заново с расширенными возможностями символов, и использовать их для изменения выходных символов для вашей задачи.

При выборе этой опции картографический сервис автоматически создается на сервере с тем же именем, что и сервис геообработки.

(Значение по умолчанию — False)

Boolean
showMessages

Строка, задающая уровень сообщения для сервиса геообработки. Далее приведен список доступных уровней сообщений, которые сервис будет возвращать :

  • NoneКлиенту не возвращаются сообщения геообработки, только сообщение о том, что выполнение было завершено успешно или со сбоем.
  • ErrorКлиенту возвращаются только сообщения об ошибках инструмента.
  • WarningКлиенту возвращаются все сообщения об ошибках и предупреждениях инструмента.
  • InfoКлиенту возвращаются все сообщения, касающиеся выполнения инструмента.

(Значение по умолчанию — None)

String
maximumRecords

Максимальное количество результатов, которое сервис может вернуть клиенту. Определение большего значения для этого параметра будет означать, что ГИС сервер сможет обрабатывать отправку большого числа отдельных записей или объектов клиенту. Если не нужно возвращать какие-либо объекты, установите для этого параметра значение 0 (нуль). Как правило, это значение равно нулю только при включенном параметре Просмотреть результат с помощью картографического сервиса.

(Значение по умолчанию — 1000)

Integer
minInstances

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

(Значение по умолчанию — 1)

Integer
maxInstances

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

(Значение по умолчанию — 2)

Integer
maxUsageTime

Максимальное время (в секундах) использования сервиса. Может понадобится увеличить значение по умолчанию, равное 600 секунд (10 мин), чтобы выполнять долгосрочные задачи геообработки. Кроме того, может понадобиться уменьшить это время, чтобы клиент не использовал сервисы чрезмерно.

(Значение по умолчанию — 600)

Integer
maxWaitTime

Максимальное время в секундах, в течение которого клиент будет ждать подключения к экземпляру, прежде чем истечет срок ожидания. Когда все экземпляры заняты обработкой запросов, последующий запросы добавляются в очередь. Если срок ожидания истекает до того, как экземпляр станет доступным, задача завершится со сбоем. Значение по умолчанию – 60 секунд (1 минута).

(Значение по умолчанию — 60)

Integer
maxIdleTime

Максимальное время в секундах, в течение которого экземпляр будет оставаться активным до сжатия пула. Любые экземпляры, которые превышают минимальное количество неиспользованных экземпляров, будут закрыты после истечения максимального времени в состоянии простоя.

(Значение по умолчанию — 1800)

Integer
capabilities

Определяет возможности, которые могут быть поддержаны в сервисе. В настоящее время поддерживается только UPLOADS.

(Значение по умолчанию — None)

String
constantValues
[constantValues,...]

Список имен параметров, которые будут настроены в виде константы. Если содержится несколько инструментов, имена параметров должны включать имя инструмента, например, ["toolX.parameterA", "toolY.parameterD"].

(Значение по умолчанию — None)

String
Значение отраженного сигнала
Тип данныхОбъяснение
Dictionary

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

Пример кода

CreateGPSDDraft, пример 1: публикация на интегрированном сервере

Следующий скрипт демонстрирует полный процесс публикации веб-инструмента на интегрированном сервере. Автоматизация публикации веб-инструментов использует комбинацию функций ArcPy и инструментов геообработки в составе набора инструментов Публикация. Рабочий процесс начинается с выполнения задачи геообработки, которую вы хотите опубликовать. После успешного выполнения задачи геообработки, войдите на портал для продолжения. Затем используйте функцию ArcPy CreateGPSDDraft для создания черновика определения сервиса. Помните, что Описание элемента, Краткая информация и Теги во входном результате геообработки перезаписываются значениями параметров summary и tags. Функция возвращает словарь анализатора, определяющий проблемы, которые могут помешать успешной публикации. После исправления серьезных ошибок, определение сервиса может быть подготовлено. В ходе подготовки в черновике определения сервиса консолидируется вся информация, необходимая для публикации сервиса в полном определении сервиса. Воспользуйтесь инструментом Сервис подготовки для подготовки определения сервиса. Наконец, запустите инструмент Загрузить определение сервиса для загрузки определения сервиса на портал и публикации веб-инструмента.

import arcpy
toolbox = "c:/gis/gp/MyAnalysisTools.tbx"
sddraft = "c:/gis/gp/drafts/AnalysisReport.sddraft"
sd = "c:/gis/gp/sd/AnalysisReport.sd"
portalurl = "https://myportal.esri.com/portal"
portalusername = "username"
portalpassword = "password"
serverURL = "https://myserver.esri.com/server"
serviceName = "AnalysisReportService"
# Run the tool and set to a result object
arcpy.ImportToolbox(toolbox)
result = arcpy.MyCustomAnalysis_reports("c:/gis/data/parcels.gdb/taxlots",
    "40", "MyOutput.pdf")
# Sign in Portal
arcpy.SignInToPortal(portalurl, portalusername, portalpassword)
# Create service definition draft and return analyzer messages
analyzeMessages = arcpy.CreateGPSDDraft(
    result, sddraft, serviceName, server_type="MY_HOSTED_SERVICES",
    copy_data_to_server=True, folder_name=None, 
    summary="Analysis Service", tags="gp", executionType="Synchronous",
    resultMapServer=False, showMessages="INFO", maximumRecords=5000,
    minInstances=2, maxInstances=3, maxUsageTime=100, maxWaitTime=10,
    maxIdleTime=180)
# Stage and upload the service if the sddraft analysis did not
# contain errors
if analyzeMessages['errors'] == {}:
    # Execute StageService
    arcpy.StageService_server(sddraft, sd)
    # Execute UploadServiceDefinition
    # Use URL to a federated server
    arcpy.UploadServiceDefinition_server(sd, serverURL)
else:
    # If the sddraft analysis contained errors, display them
    print(analyzeMessages['errors'])
CreateGPSDDraft, пример 2: публикация на отдельном сервере

Следующий скрипт демонстрирует полный процесс публикации сервиса геообработки на отдельном сервере. Рабочий процесс похож на публикацию на интегрированном сервере, кроме необходимости входа на портал. Кроме того, параметр типа сервер следует установить на ARCGIS_SERVER, а для функции .ags необходимо указать файл подключения к серверу CreateGPSDDraft. Файл подключения к серверу инструмента Загрузить определение сервиса также следует указать, вместе с файлом подключения к серверу .ags. Убедитесь, что в файле .ags есть данные учетной записи сервера.

import arcpy
toolbox = "c:/gis/gp/MyAnalysisTools.tbx"
sddraft = "c:/gis/gp/drafts/AnalysisReport.sddraft"
sd = "c:/gis/gp/sd/AnalysisReport.sd"
serverconnectionfile = "c:/gis/gp/myserver.ags"
serviceName = "AnalysisReportService"
# Run the tool and set to a result object arcpy.ImportToolbox(toolbox) result = arcpy.MyCustomAnalysis_reports("c:/gis/data/parcels.gdb/taxlots",                                        "40", "MyOutput.pdf")
# Create service definition draft and returns analyzer messages analyzeMessages = arcpy.CreateGPSDDraft(    result, sddraft, serviceName, server_type="MY_HOSTED_SERVICES",      connection_file_path= serverconnectionfile,
    copy_data_to_server=True, folder_name=None,     summary="Analysis Service", tags="gp", executionType="Synchronous",
    resultMapServer=False, showMessages="INFO", maximumRecords=5000,    minInstances=2, maxInstances=3, maxUsageTime=100, maxWaitTime=10,    maxIdleTime=180)
# Stage and upload the service if the sddraft analysis did not
# contain errors if analyzeMessages['errors'] == {}:
    # Execute StageService    arcpy.StageService_server(sddraft, sd)    # Execute UploadServiceDefinition    # Use URL to a federated server     arcpy.UploadServiceDefinition_server(sd, serverconnectionfile)
else:
    # If the sddraft analysis contained errors, display them    print(analyzeMessages['errors'])

Связанные разделы