Сводка
Загружает и публикует ГИС-сервис на указанном ГИС-сервере на основе файла организованного определения сервиса (.sd).
Использование
Этот инструмент загружает и публикует ГИС-сервис на основе входного определения сервиса. Всякий раз, когда вы предоставляете общий доступ к сервису с помощью ArcGIS Desktop, этот инструмент запускается, и вы видите результат в окне геообработки Результаты.
Этот инструмент не загружает и не публикует файлы чернового определения сервиса (.sddraft). Если у вас есть файл чернового определения сервиса, вы можете преобразовать его в организованное определение сервиса с помощью инструмента Разместить сервис.
Используйте инструмент Войти на портал, чтобы подключиться к порталу ArcGIS Online.
Синтаксис
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})
Параметр | Объяснение | Тип данных |
in_sd_file | Файл определения сервиса (.sd) содержит всю информацию, необходимую для публикации ГИС-сервиса. | File |
in_server | Подключение к серверу. Вы можете использовать подключения ArcGIS Server, перечисленные в узле ГИС-серверы в окне Каталог, или перейти в другую папку, где могут храниться файлы подключения к серверу. При подключении к ArcGIS Online убедитесь, что набираете My Hosted Services для подключения к серверу с заглавной буквой в начале каждого слова и пробелами между ними. | ServerConnection |
in_service_name (Дополнительный) | Заменяет имя сервиса, указанное в определении сервиса в настоящее время, на новое имя. | String |
in_cluster (Дополнительный) | Изменяет кластер, которому был назначен сервис. Вы должны выбрать из кластеров, доступных на указанном сервере. | String |
in_folder_type (Дополнительный) | Задает источник папки. По умолчанию папка поступает из определения сервиса. Вы также можете выбрать папку, уже находящуюся на указанном сервере, или задать новую папку, которая будет создана после публикации этого сервиса.
| String |
in_folder (Дополнительный) | Папка для сервиса. По умолчанию используется папка, уже указанная в определении сервиса. Если для папки выбрано NEW, укажите ее имя. Если выбрано EXISTING, можно выбрать одну из папок, существующих на сервере. | String |
in_startupType (Дополнительный) | Задает состояние старта сервиса сразу после публикации.
| Boolean |
in_override (Дополнительный) | Задает, будут ли перезаписываться настройки общего доступа, заданные в определении сервиса. Эти свойства определяют, как и каким образом вы публикуете сервис на ArcGIS Online. Публикация сервиса с помощью ArcGIS Online позволяет использовать его другим людям.
Для того, чтобы перезаписать свойства общего доступа, необходимо войти на ArcGIS Online . | Boolean |
in_my_contents (Дополнительный) | Задает способ публикации сервиса на ArcGIS Online. Все общие сервисы доступны через Мои ресурсы. Даже если вы хотите дать доступ лишь определенной группе в своей организации, сервис будет также распространяться через Мои ресурсы.
Для того, чтобы перезаписать свойства общего доступа, необходимо войти на ArcGIS Online . | Boolean |
in_public (Дополнительный) | Выберите, будет ли ваш сервис доступен для общественности.
Для того чтобы переписать свойства общего доступа, необходимо войти на ArcGIS Online. | Boolean |
in_organization (Дополнительный) | Определяет публикацию сервиса в вашей организации.
Для того чтобы переписать свойства общего доступа, необходимо войти на ArcGIS Online. | Boolean |
in_groups [group_name,...] (Дополнительный) | Список имен групп, которым предоставляется доступ к сервису. Для того чтобы переписать свойства общего доступа, необходимо войти на ArcGIS Online. | String |
Пример кода
UploadServiceDefinition, пример (окно Python)
Загружает и публикует определение сервиса на указанном сервере.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.UploadServiceDefinition_server("myMapService.sd", "GIS Servers/myServerConnection")
Пример процесса публикации (автономный скрипт)
Следующий скрипт демонстрирует процесс публикации с использованием команд инструментов Stage Service и Upload Service Definition.
# Name: StageService_UploadServiceDefinition_example2.py
# Description: Use a service definition draft to create a service definition
# and then upload and publish that service definition.
# Requirements: Connection to an ArcGIS Server or My Hosted Services
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inServiceDefinitionDraft = "myMapService.sddraft"
outServiceDefinition = "myMapService.sd"
# Execute StageService
arcpy.StageService_server(inServiceDefinitionDraft, outServiceDefinition)
# Set local variables
inSdFile = outServiceDefinition
inServer = "GIS Servers/myServerConnection"
# Execute UploadServiceDefinition
arcpy.UploadServiceDefinition_server(inSdFile, inServer)
UploadServiceDefinition, пример 2 (автономный скрипт)
Следующий скрипт просматривает все определения сервисов в папке и публикует их на ArcGIS Server.
# Name: UploadServiceDefinition_example3.py
# Description: Upload and publish all service definitions contained in a folder
# Requirements: Connection to an ArcGIS Server or My Hosted Services
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variable
inServer = "myServerConnection.ags"
print "Publishing to " + inServer
# Find all the service definitions (.sd or .sds) in a workspace and
# upload\publish each one to an ArcGIS Server, Spaital Data Server, or My Hosted Services
sdList = arcpy.ListFiles("*.sd")
for inSdFile in sdList:
print "Publishing " + sdName
try:
arcpy.UploadServiceDefinition_server(inSdFile, inServer)
except Exception, e:
print e.message
UploadServiceDefinition, пример 3 (автономный скрипт)
Следующий скрипт загружает существующее определение сервиса и использует дополнительные параметры, чтобы изменить свойства сервиса.
# Name: UploadServiceDefinition_example5.py
# Description: Uploads an existing service definition and uses optional
# parameters to modify some details of the service
# Requirements: Connection to an ArcGIS Server or My Hosted Services
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inSdFile = "myMapService.sd"
inServer = "myServerConnection.ags"
inServiceName = "newServiceName"
inCluster = "myCluster"
inFolderType = "NEW"
inFolder = "newFolder"
inStartup = "STOPPED"
inOverride = "OVERRIDE_DEFINITION"
inMyContents = "SHARE_ONLINE"
inPublic = "PRIVATE"
inOrganization = "NO_SHARE_ORGANIZATION"
inGroups = "My Group"
# Execute UploadServiceDefinition
arcpy.UploadServiceDefinition_server(inSdFile, inServer, inServiceName,
inCluster, inFolderType, inFolder,
inStartup, inOverride, inMyContents,
inPublic, inOrganization, inGroups)
Пример перезаписи сервисов (автономный скрипт)
Следующий скрипт создает и загружает определение сервиса, которое можно использовать для перезаписи существующего сервиса.
# Name: StageService_example3_UploadServiceDefinition_example4.py
# Description: Creates a service definition that can be used to overwrite an
# existing service. When this service definition is published it
# will overwrite the existing service.
# Requirements: Connection to an ArcGIS Server, Spatial Data Server,
# or My Hosted Services
# Import system modules
import arcpy
import xml.dom.minidom as DOM
# Set environment settings
arcpy.env.workspace = "C:/data"
# Set local variables
inServiceDefinitionDraft = "myMapService.sddraft"
outServiceDefinition = "myMapService.sd"
newType = 'esriServiceDefinitionType_Replacement'
xml = os.path.join(arcpy.env.workspace, inServiceDefinitionDraft)
doc = DOM.parse(xml)
descriptions = doc.getElementsByTagName('Type')
for desc in descriptions:
if desc.parentNode.tagName == 'SVCManifest':
if desc.hasChildNodes():
desc.firstChild.data = newType
outXml = xml
f = open(outXml, 'w')
doc.writexml( f )
f.close()
# Execute StageService
arcpy.StageService_server(inServiceDefinitionDraft, outServiceDefinition)
# Set local variables
inSdFile = outServiceDefinition
inServer = "GIS Servers/myServerConnection"
# Execute UploadServiceDefinition
arcpy.UploadServiceDefinition_server(inSdFile, inServer)
Параметры среды
Этот инструмент не использует параметры среды геообработки
Информация о лицензиях
- Basic: Да
- Standard: Да
- Advanced: Да