Краткая информация
Создает MapServiceDraft из Map в проекте ArcGIS Pro.
Обсуждение
Функция CreateSharingDraft создает MapServiceDraft из Map проекта ArcGIS Pro, который можно настроить и опубликовать в ArcGIS Server. MapServiceDraft представляет собой настраиваемый набор свойств картографического сервиса. После настройки публикации черновика, его можно сохранить в файле черновика определения сервиса (.sddraft) с помощью функции exportToSDDraft из класса MapServiceDraft. Затем черновик определения сервиса может быть создан и опубликован в ArcGIS Server с помощью инструментовОрганизовать сервис и Загрузить определение сервиса.
Примечание:
Создание и публикация черновика определения сервиса требует наличия ArcGIS Server 10.6 или более поздней версии.
Синтаксис
CreateSharingDraft (server_type, service_type, service_name, draft_value)
Параметр | Описание | Тип данных |
server_type | Тип сервера. Поддерживаются следующие типы серверов:
| String |
service_type | Тип сервиса. Поддерживаются следующие типы сервисов:
| String |
service_name | Имя сервиса. Имя может содержать только буквы, цифры и подчеркивания; пробелы и специальные символы не поддерживаются. Длина имени не должна превышать 120 символов. | String |
draft_value | Map, Layer или список слоев. Для публикации можно использовать поднабор слоев с карты. | List |
Тип данных | Описание |
Object | Возвращает объект класса MapServiceDraft. |
Пример кода
Следующий скрипт публикует карту проекта ArcGIS Pro в качестве картографического сервиса в ArcGIS Server.
import arcpy
import os
# Set output file names
outdir = r"C:\Project\Output"
service = "MapServiceDraftExample"
sddraft_filename = service + ".sddraft"
sddraft_output_filename = os.path.join(outdir, sddraft_filename)
# Reference map to publish
aprx = arcpy.mp.ArcGISProject(r"C:\Project\World.aprx")
m = aprx.listMaps("World")[0]
# Create MapServiceDraft and set service properties
service_draft = arcpy.sharing.CreateSharingDraft("STANDALONE_SERVER", "MAP_SERVICE", service, m)
service_draft.targetServer = r"C:\Project\myserver.ags.esri.com (publisher).ags"
# Create Service Definition Draft file
service_draft.exportToSDDraft(sddraft_output_filename)
# Stage Service
sd_filename = service + ".sd"
sd_output_filename = os.path.join(outdir, sd_filename)
arcpy.StageService_server(sddraft_output_filename, sd_output_filename)
# Share to portal
print("Uploading Service Definition...")
arcpy.UploadServiceDefinition_server(sd_output_filename, r"C:\Project\myserver.ags.esri.com (publisher).ags")
print("Successfully Uploaded service.")