CreateSharingDraft

Краткая информация

Создает 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

Тип сервера. Поддерживаются следующие типы серверов:

  • STANDALONE_SERVERПоддерживается публикация картографического сервиса в ArcGIS Server.
String
service_type

Тип сервиса. Поддерживаются следующие типы сервисов:

  • MAP_SERVICEПоддерживается публикация картографического сервиса в ArcGIS Server.
String
service_name

Имя сервиса. Имя может содержать только буквы, цифры и подчеркивания; пробелы и специальные символы не поддерживаются. Длина имени не должна превышать 120 символов.

String
draft_value

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

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

Возвращает объект класса MapServiceDraft.

Пример кода

Пример 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.")