Разместить сервис (Stage Service) (Сервер)
Краткая информация
Указание определения сервиса. Файл организованного определения сервиса (.sd) содержит всю информацию, требуемую для публикации ГИС-сервиса, включая данные, которые необходимо скопировать на сервер, поскольку они отсутствуют в хранилище данных сервера.
Использование
Данный инструмент конвертирует черновик определения сервиса (.sddraft) в определение сервиса, которое затем может быть введено в инструмент Upload_Service_Definition и публикует GIS-сервис на сервере. Черновик определений сервиса не может использоваться для непосредственной публикации GIS-сервиса.
Всякий раз, когда вы предоставляете общий доступ к сервису с помощью ArcGIS for Desktop, запускается инструмент Разместить сервис (Stage Service), и вы видите результат в окне геообработки Результаты (Results).
Черновики определения сервиса могут быть созданы с помощью ArcGIS for Desktop или используя функции arcpy CreateMapSDDraft (в arcpy.mapping), CreateImageSDDraft или CreateGPSDDraft.
После указания происходит удаление входного черновика определения сервиса.
Синтаксис
Параметр | Объяснение | Тип данных |
in_service_definition_draft | Входной черновик определения сервиса. Черновики определения сервиса можно создавать с помощью ArcGIS for Desktop. Для получения дополнительной информации см. раздел помощи О черновых сервисах. Вы также можете использовать функцию arcpy.mapping CreateMapSDDraft для создания черновых определений сервиса. После указания происходит удаление входного черновика определения сервиса. | File |
out_service_definition |
Результирующее определение сервиса. По умолчанию запись определения сервиса выполняется в ту же директорию, что и черновик определения сервиса. | File |
Пример кода
Указание определения сервиса.
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.StageService_server("myMapService.sddraft", "myMapService.sd")
Следующий скрипт демонстрирует процесс публикации с использованием команд 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)
Следующий скрипт создает и загружает определение сервиса, которое можно использовать для перезаписи существующего сервиса.
# 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)