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).

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

Примечание:

При публикации в ArcGIS Enterprise или ArcGIS Server 10.9.1 или более ранней версии задайте номер gромежуточной версии при использовании инструмента Организовать сервис. Для получения списка номеров сервера предназначен параметр инструмента Промежуточная версия.

Синтаксис

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}, {choiceLists})
ПараметрОписаниеТип данных
result
[result,...]

One or multiple Result objects or result files (.rlt). Multiple results must be supplied in a list format. The following example demonstrates multiple results as input to the CreateGPSDDraft function:

import arcpy
result1 = arcpy.analysis.Buffer("inPts", "output.shp", "100 Meters")
result2 = arcpy.management.GetCount("FireStations")
arcpy.CreateGPSDDraft([result1, result2], "output.sddraft", "myservice")
Result
out_sddraft

The path and file name for the output .sddraft file.

String
service_name

The name of the service. This is the name people will see and use to identify the service. The name can only contain alphanumeric characters and underscores. No spaces or special characters are allowed. The name cannot be more than 120 characters.

String
server_type

Specifies the server type. If a connection_file_path parameter value is not provided, a server_type value must be specified. If a connection_file_path parameter value is provided, the server_type value is taken from the connection file. In this case, you can specify FROM_CONNECTION_FILE or skip the parameter.

Примечание:

MY_HOSTED_SERVICES is only available when creating .sddraft files from ArcGIS Pro.

  • ARCGIS_SERVERThe ArcGIS Server server type. This is the default.
  • FROM_CONNECTION_FILEThe connection_file_path parameter value will be used.
  • MY_HOSTED_SERVICESAn .sddraft file is created that will be published to the current portal.

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

String
connection_file_path

The path and file name to the ArcGIS Server connection file (.ags).

String
copy_data_to_server

Specifies whether the data referenced in the result parameter will be copied to the server. This parameter is only used if the server_type value is ARCGIS_SERVER and the connection_file_path value isn't provided. If the connection_file_path value is provided, the server's registered data stores will be used. For example, if the data in the result parameter is registered with the server, copy_data_to_server will always be False. Conversely, if the data in the result parameter is not registered with the server, copy_data_to_server will always be True.

  • FalseThe data will not be copied to the server. This is the default.
  • TrueThe data will be copied to the server.

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

Boolean
folder_name

The folder name where the service definition will be published. If the folder does not exist, it will be created. The default folder is the server root level.

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

String
summary

The Item Description Summary text.

Use this parameter to override the user interface summary or to provide a summary if one does not exist. The summary provided here will not be persisted in the map document.

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

String
tags

The Item Description tags.

Use this parameter to override the user interface tags or to provide tags if they do not exist. The tags provided here will not be persisted in the map document.

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

String
executionType

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

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

String
resultMapServer

Specifies whether the result of all tasks will be visualized with the service as a map (in addition to other results of the task) when publishing a geoprocessing service. The map is created on the server using a map service for transport back to the client as an image (a .jpeg file, for example). The symbology, labeling, transparency, and all other properties of the returned map are the same as the settings of the output layer. If you are creating result layers in the Python scripting environment (outside ArcGIS Pro), default symbology will be used. To maintain control over symbology, create the layer files with symbology and use them to modify the output symbology of the task.

When True, a map service is automatically created on the server with the same name as the geoprocessing service. The default is False.

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

Boolean
showMessages

Specifies the message level that will be used for the geoprocessing service. The following are the valid message levels the service will return to the client:

  • NoneNo geoprocessing messages will be returned to the client except those stating whether the process succeeded or failed. This is the default.
  • ErrorOnly tool messages that produce an error will be returned to the client.
  • WarningAll tool error and warning messages will be returned to the client.
  • InfoAll tool messages from processing will be returned to the client.

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

String
maximumRecords

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

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

Integer
minInstances

The minimum number of instances a service will start and make available for use. For heavily used services, you can increase this value.

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

Integer
maxInstances

The maximum number of instances a service can start and make available for use. For heavily used services, you can increase this value. Ensure that the server has adequate hardware to support the maximum number of instances indicated.

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

Integer
maxUsageTime

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

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

Integer
maxWaitTime

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

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

Integer
maxIdleTime

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

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

Integer
capabilities

Specifies the capabilities a service will support. Currently, only Uploads is supported.

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

String
constantValues
[constantValues,...]

A list of parameter names to be set as a constant. If multiple tools are included, parameter names must be qualified with the tool name, for example, ["toolX.parameterA", "toolY.parameterD"].

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

String
choiceLists

Constrains values for any input parameter with a choice list input mode in the web tool or geoprocessing service.

The choice list and its values must be created before using this property; you cannot use this property to add new values to the choice list. If you have a feature or raster input, you must create the layer for each value in the choice list first and use this property to constrain.

The property uses a dictionary with the service task and parameter name as the key, and a list of the string values as the value, for example, {"ServiceTaskName.parameterName":["string1", "string2"]}.

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

Dictionary
Возвращаемое значение
Тип данныхОписание
Dictionary

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

Пример кода

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

Следующий скрипт демонстрирует полный процесс публикации веб-инструмента на интегрированном сервере. Автоматизация публикации веб-инструментов использует комбинацию функций 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.reports.MyCustomAnalysis("c:/gis/data/parcels.gdb/taxlots",
                                        "40", "MyOutput.pdf")

# Sign in to 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'] == {}:
    # The following runs StageService for ArcGIS 11 Enterprise. If you're using version
    # 10.9.1 or earlier, you must provide the staging version. For example, 
    # the staging version for 10.9.1 server is 209.   
    arcpy.server.StageService(sddraft, sd)

    # Run UploadServiceDefinition
    # Use URL to a federated server
    arcpy.server.UploadServiceDefinition(sd, serverURL)
else:
    # If the sddraft analysis contained errors, display them
    print(analyzeMessages['errors'])
CreateGPSDDraft, пример 2: публикация на отдельном сервере

Следующий скрипт демонстрирует полный процесс публикации сервиса геообработки на отдельном сервере. Рабочий процесс похож на публикацию на интегрированном сервере, кроме необходимости входа на портал. Кроме того, задайте параметр типа сервера ARCGIS_SERVER, а для функции .ags укажите файл подключения к серверу (CreateGPSDDraft). Файл параметров подключения к серверу инструмента Загрузить определение сервиса также следует указать, вместе с файлом подключения к серверу. Убедитесь, что в файле .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.reports.MyCustomAnalysis("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'] == {}:
    # The following runs StageService for ArcGIS 11 server. If you're using version 10.9.1 
    # or earlier, you must provide the staging version. For example, the staging 
    # version for 10.9.1 server is 209. 
    arcpy.server.StageService(sddraft, sd)

    # Run UploadServiceDefinition
    # Use URL to a federated server 
    arcpy.server.UploadServiceDefinition(sd, serverconnectionfile)
else:
    # If the sddraft analysis contained errors, display them
    print(analyzeMessages['errors'])

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