Zusammenfassung
Stellt eine Service-Definition bereit. Eine bereitgestellte Service-Definitionsdatei (.sd) enthält alle erforderlichen Informationen, um einen GIS-Service zu veröffentlichen, einschließlich Daten, die auf den Server kopiert werden müssen, da sie nicht im Datenspeicher des Servers vorhanden sind.
Verwendung
Dieses Werkzeug konvertiert einen Service-Definitionsentwurf (.sddraft) in eine Service-Definition, die dann in das Werkzeug Service-Definition hochladen eingegeben werden kann, um den GIS-Service auf einen Server hochzuladen und dort zu veröffentlichen. Service-Definitionsentwürfe können nicht verwendet werden, um einen GIS-Service direkt zu veröffentlichen.
Wenn Sie einen Service mit ArcGIS Desktop freigeben, wird das Werkzeug Service bereitstellen ausgeführt, und im Fenster Ergebnisse der Geoverarbeitung wird ein Ergebnis angezeigt.
Service-Definitionsentwürfe können mit ArcGIS Desktop oder den ArcPy-Funktionen CreateMapSDDraft (in arcpy.mapping), CreateImageSDDraft oder CreateGPSDDraft erstellt werden.
Nach der Bereitstellung wird der eingegebene Service-Definitionsentwurf gelöscht.
Syntax
arcpy.server.StageService(in_service_definition_draft, out_service_definition)
Parameter | Erklärung | Datentyp |
in_service_definition_draft | Die Eingabe-Service-Definitionsentwurf. Service-Definitionsentwürfe können mit ArcGIS Desktop erstellt werden. Weitere Informationen finden Sie unter Service-Entwürfe. Service-Definitionsentwürfe lassen sich auch mit der Funktion arcpy.mapping CreateMapSDDraft erstellen. Nach der Bereitstellung wird der eingegebene Service-Definitionsentwurf gelöscht. | File |
out_service_definition | Die resultierende Service-Definition. Standardmäßig wird die Service-Definition in dasselbe Verzeichnis wie der Service-Definitionsentwurf geschrieben. | File |
Codebeispiel
StageService – Beispiel 1 (Python-Fenster)
Stellt eine Service-Definition bereit.
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.StageService_server("myMapService.sddraft", "myMapService.sd")
Veröffentlichungs-Workflow – Beispiel 2 (eigenständiges Skript)
Das folgende Skript veranschaulicht den Workflow beim Veröffentlichen mithilfe von Service bereitstellen und Service-Definition hochladen.
# 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)
Überschreiben von Services – Beispiel 3 (eigenständiges Skript)
Das folgende Skript erstellt und lädt eine Service-Definition hoch, die verwendet werden kann, um einen vorhandenen Service zu überschreiben.
# 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)
Umgebungen
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja