Сводка
Загружает и публикует веб-слой, веб-инструмент или сервис на ArcGIS Online, ArcGIS Enterprise или ArcGIS Server.
Использование
Этот инструмент загружает и публикует веб-слой, веб-инструмент или сервис на основе входного определения сервиса. Этот инструмент выполняется всякий раз, когда вы публикуете веб-слой или сервис, используя ArcGIS Pro; при этом в элементе История геообработки на панели Каталог появляется соответствующая форма.
Этот инструмент не загружает и не публикует файлы черновика определения сервиса (.sddraft). Если у вас есть черновое определение сервиса, вы можете преобразовать его в организованное определение сервиса с помощью инструмента Разместить сервис.
Веб-инструменты можно публиковать только в ArcGIS Enterprise. Инструменты геообработки можно публиковать только в ArcGIS Server.
Синтаксис
arcpy.server.UploadServiceDefinition(in_sd_file, in_server, {in_service_name}, {in_cluster}, {in_folder_type}, {in_folder}, {in_startupType}, {in_override}, {in_my_contents}, {in_public}, {in_organization}, {in_groups})
Parameter | Объяснение | Тип данных |
in_sd_file | Файл определения сервиса (.sd), который содержит всю информацию, необходимую для публикации веб-слоя, веб-инструмента или сервиса. | File |
in_server | Строка, представляющая тип сервера. Поддерживаются следующие типы серверов:
| ServerConnection |
in_service_name (Дополнительный) | Используйте эту опцию для того, чтобы заменить имя сервиса, указанное в определении сервиса в настоящее время, на новое имя. | String |
in_cluster (Дополнительный) | Используйте эту опцию, если хотите изменить кластер, которому был назначен данный сервис. Вы должны выбрать из кластеров, доступных на указанном сервере. Прежние версии:Кластеры в ArcGIS Enterprise 10.5.1 признаны устаревшими. Этот параметр будет проигнорирован серверами, которые не поддерживают множественные кластеры. | String |
in_folder_type (Дополнительный) | Задает тип папки используется для определения источника для папки. По умолчанию папку получают из определения сервиса. Вы также можете получить список папок, уже имеющихся на указанном сервере, или задать новую папку, которая будет создана после публикации этого веб-слоя или сервиса.
| String |
in_folder (Дополнительный) | Используйте эту опцию, чтобы указать папку для веб-слоя или сервиса. По умолчанию используется папка, уже указанная в определении сервиса. Если вы выбрали NEW для in_folder_type, используйте этот параметр, чтобы ввести новое имя папки. Если вы выбрали EXISTING для in_folder_type, то вы можете выбрать одну из существующих на сервере папок. | String |
in_startupType (Дополнительный) | Используется для определения состояния сервиса (включен/остановлен) сразу после публикации.
| Boolean |
in_override (Дополнительный) | Используйте этот параметр, если хотите перезаписать свойства общего доступа, установленные в определении сервиса. Эти свойства определяют, как и каким образом вы публикуете веб-слой или веб-инструмент на ArcGIS Online или ArcGIS Enterprise. Публикация веб-слоя или веб-инструмента позволяет другим использовать его.
Для того чтобы переписать свойства общего доступа, необходимо войти на ArcGIS Online или ArcGIS Enterprise. Этот параметр не учитывается при публикации на ArcGIS Server. | Boolean |
in_my_contents (Дополнительный) | Определяет параметры публикации веб-слоев или веб-инструментов. Все опубликованные веб-слои и веб-инструменты доступны через Мои ресурсы. Даже если вы захотите предоставить доступ лишь определенной группе в своей организации, все равно этот веб-слой или веб-инструмент будет также распространяться через Мои ресурсы.
Для того чтобы переписать свойства общего доступа, необходимо выполнить вход на портал. Этот параметр не учитывается при публикации на ArcGIS Server. | Boolean |
in_public (Дополнительный) | Указывает, будет ли веб-слой или веб-инструмент доступен для общественности.
Для того чтобы переписать свойства общего доступа, необходимо войти на ArcGIS Online или ArcGIS Enterprise. Этот параметр не учитывается при публикации на ArcGIS Server. | Boolean |
in_organization (Дополнительный) | Определяет, будет ли веб-слой или веб-инструмент доступен в пределах вашей организации.
Для того чтобы переписать свойства общего доступа, необходимо войти на ArcGIS Online или ArcGIS Enterprise. Этот параметр не учитывается при публикации на ArcGIS Server. | Boolean |
in_groups [group_name,...] (Дополнительный) | Список имен групп, которым предоставляется доступ к веб-слою или веб-инструменту. Для того чтобы переписать свойства общего доступа, необходимо войти на ArcGIS Online или ArcGIS Enterprise. Этот параметр не учитывается при публикации на ArcGIS Server. | String |
Производные выходные данные
Name | Объяснение | Тип данных |
out_soap_svc_url | URL-адрес сервиса SOAP, опубликованного на сервере. | Строковое |
out_rest_svc_url | URL-адрес сервиса REST, опубликованного на сервере. | Строковое |
out_mapServiceItemID | ID элемента слоя изображений карты, опубликованного на портале. | Строковое |
out_featServiceItemID | ID элемента размещенного векторного слоя, опубликованного на портале. | Строковое |
out_cached_service | Сервис изображений или картографический сервис с включенной возможностью кэширования. | Сервис изображений; MapServer |
out_featureServiceURL | URL-адрес REST размещенного векторного слоя, опубликованного на портале. | Строковое |
out_mapServiceURL | URL-адрес REST слоя изображений карты, опубликованного на портале. | Строковое |
out_LayerIDMap | Опубликованные слои и их ID в формате Layer1|ID1;Layer2|ID2; и т.п. | Строковое |
out_standaloneTableIDMap | Опубликованные автономные таблицы и их ID в формате Table1|ID1;Table2|ID2; и т.п. | Строковое |
out_vectorTileServiceID | ID элемента сервиса векторных тайлов. | Строковое |
out_vectorTileServiceURL | REST URL сервиса векторный тайлов. | Строковое |
Пример кода
Следующий скрипт публикует список слоёв из карты как слой веб-листов в ArcGIS Enterprise или ArcGIS Online. Информацию о портале можно получить на странице Portals в ArcGIS Pro.
import arcpy
import os
# Set output file names
outdir = r"C:\Project\Output"
service = "TileSharingDraftExample"
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]
lyrs = []
lyrs.append(m.listLayers('cities')[0])
lyrs.append(m.listLayers('counties')[0])
# Create TileSharingDraft and set service properties
sharing_draft = m.getWebLayerSharingDraft("HOSTING_SERVER", "TILE", service, lyrs)
sharing_draft.summary = "My Summary"
sharing_draft.tags = "My Tags"
sharing_draft.description = "My Description"
sharing_draft.credits = "My Credits"
sharing_draft.useLimitations = "My Use Limitations"
# Create Service Definition Draft file
sharing_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, "My Hosted Services")
print("Successfully Uploaded service.")
Следующий скрипт загружает существующее определение сервиса и использует дополнительные параметры, чтобы изменить свойства сервиса.
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data"
# Set local variables
inSdFile = "myMapService.sd"
inServer = "myServerConnection.ags"
inServiceName = "newServiceName"
inCluster = "myCluster"
inFolderType = "NEW"
inFolder = "newFolder"
inStartup = "STOPPED"
# Execute UploadServiceDefinition
arcpy.UploadServiceDefinition_server(inSdFile, inServer, inServiceName,
inCluster, inFolderType, inFolder,
inStartup)
Следующий скрипт загружает существующее определение сервиса на ArcGIS Online или ArcGIS Enterprise и использует дополнительные параметры, чтобы изменить свойства этого сервиса.
import arcpy
# Set environment settings arcpy.env.workspace = "C:/data"
# Set local variables inSdFile = "myMapService.sd"
inServer = "HOSTING_SERVER"
inServiceName = "newServiceName"
inCluster = "myCluster"
inFolderType = "EXISTING"
inFolder = "existingFolder"
inStartup = "STOPPED"
inOverride = "OVERRIDE_DEFINITION"
inMyContents = "SHARE_ONLINE"
inPublic = "PRIVATE"
inOrganization = "NO_SHARE_ORGANIZATION"
inGroups = ["My Group", "MyGroup 2"]
# Execute UploadServiceDefinition arcpy.UploadServiceDefinition_server(inSdFile, inServer, inServiceName, inCluster, inFolderType, inFolder,
inStartup, inOverride, inMyContents, inPublic, inOrganization, inGroups)
Environments
Информация о лицензиях
- Basic: Да
- Standard: Да
- Advanced: Да