Загрузить определение сервиса (Сервер)
Краткая информация
Загружает и публикует ГИС-сервис на указанном ГИС-сервере на основе файла организованного определения сервиса (.sd).
Использование
-
Этот инструмент загружает и публикует ГИС-сервис на основе входного определения сервиса. Всякий раз, когда вы предоставляете общий доступ к сервису с помощью ArcGIS for Desktop, этот инструмент запускается, и вы видите результат в окне геообработки Результаты (Results).
Этот инструмент не загружает и не публикует файлы чернового определения сервиса (.sddraft). Если у вас есть черновое определение сервиса, вы можете преобразовать его в организованное определение сервиса с помощью инструмента Разместить сервис (Stage Service).
Можно создать подключение к ArcGIS for Server, используя ArcGIS for Desktop для создания подключения издателя.
Используйте инструмент Войти на портал, чтобы подключиться к порталу ArcGIS Online.
Синтаксис
Параметр | Объяснение | Тип данных |
in_sd_file |
Определение сервиса (.sd) содержит всю информацию, необходимую для публикации ГИС-сервиса. | File |
in_server |
Вы можете использовать подключения ArcGIS for Server, перечисленные в узле ГИС-серверы (GIS Servers) в окне Каталог (Catalog), или перейти в другую папку, где могут храниться файлы подключения к серверу. При подключении к ArcGIS Online убедитесь, что набираете My Hosted Services для подключения к серверу с заглавной буквой в начале каждого слова и пробелами между ними. | ServerConnection |
in_service_name (дополнительно) |
Используется для того, чтобы заменить имя сервиса, указанное в определении сервиса в настоящее время, на новое имя. | String |
in_cluster (дополнительно) |
Используйте эту команду, если хотите изменить кластер, которому был назначен сервис. Вы должны выбрать из кластеров, доступных на указанном сервере. | String |
in_folder_type [in_folder_type,...] (дополнительно) |
Тип папки используется для определения источника для папки. По умолчанию папку получают из определения сервиса. Вы также можете получить список папок, уже имеющихся на указанном сервере, или задать новую папку, которая будет создана после публикации этого сервиса.
| String |
in_folder (дополнительно) |
Используйте это, чтобы указать папку для сервиса. По умолчанию используется папка, уже указанная в определении сервиса. Если вы выбрали тип папки NEW, этот параметр используется, чтобы ввести имя новой папки. Если вы выбрали тип папки EXISTING, вы можете выбрать одну из папок, существующих на сервере. | String |
in_startupType (дополнительно) | Используется для определения состояния старта/остановки сервиса сразу после публикации.
| Boolean |
in_override (дополнительно) | Используйте этот параметр, если хотите изменить свойства общего доступа, установленные в определении сервиса. Эти свойства определяют, используете ли вы свой сервис совместно с ArcGIS Online и каким образом. Предоставление общего доступа с помощью ArcGIS Online позволяет использовать сервис другим людям.
Вам необходимо войти в ArcGIS Online для того, чтобы изменить свойства общего доступа. | Boolean |
in_my_contents (дополнительно) | Все общие сервисы доступны через Мои ресурсы (My Contents). Даже если вы хотите дать доступ лишь определенной группе в своей организации, сервис будет также распространяться через Мои ресурсы (My Contents).
Вам необходимо войти в ArcGIS Online для того, чтобы изменить свойства общего доступа. | Boolean |
in_public (дополнительно) | Выберите, будет ли ваш сервис доступен для общественности.
Вам необходимо войти в ArcGIS Online для того, чтобы изменить свойства общего доступа. | Boolean |
in_organization (дополнительно) | Вы можете поделиться сервисом со своей организацией.
Вам необходимо войти в ArcGIS Online для того, чтобы изменить свойства общего доступа. | Boolean |
in_groups [group_name,...] (дополнительно) | Список имен групп, которым предоставляется доступ к сервису. Вам необходимо войти в ArcGIS Online для того, чтобы изменить свойства общего доступа. | String |
Пример кода
Загружает и публикует определение сервиса на указанном сервере.
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.UploadServiceDefinition_server("myMapService.sd", "GIS Servers/myServerConnection")
Следующий скрипт демонстрирует процесс публикации с использованием команд Разместить сервис и Загрузить определение сервиса.
# 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)
Следующий скрипт просматривает все определения сервисов в папке и публикует их на ArcGIS for 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
Следующий скрипт загружает существующее определение сервиса и использует дополнительные параметры, чтобы изменить некоторые свойства сервиса.
# 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 or My Hosted Services
# Import system modules
import arcpy
from arcpy import env
import xml.dom.minidom as DOM
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inServiceDefinitionDraft = "myMapService.sddraft"
outServiceDefinition = "myMapService.sd"
newType = 'esriServiceDefinitionType_Replacement'
xml = draftPath + in_sd_draft
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)