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