Zusammenfassung
Lädt einen GIS-Service auf einen angegebenen GIS-Server basierend auf einer bereitgestellten Service-Definitionsdatei (.sd) hoch und veröffentlicht den GIS-Service.
Verwendung
Dieses Werkzeug lädt einen GIS-Service basierend auf der Eingabe-Service-Definition hoch und veröffentlicht ihn. Immer, wenn Sie einen Service mithilfe von ArcGIS Desktop freigeben, wird dieses Werkzeug ausgeführt, und im Fenster Ergebnisse wird ein Ergebnis angezeigt.
Mit diesem Werkzeug werden Service-Definitionsentwurfsdateien (.sddraft) weder hochgeladen noch veröffentlicht. Wenn Sie eine Service-Definitionsentwurfsdatei haben, können Sie diese mithilfe des Werkzeugs Service bereitstellen in eine bereitgestellte Service-Definitionsdatei konvertieren.
Sie können das Werkzeug Beim Portal anmelden zum Herstellen einer Verbindung zu einem ArcGIS Online-Portal verwenden.
Syntax
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})
Parameter | Erklärung | Datentyp |
in_sd_file | Die Service-Definitionsdatei (.sd), die alle Informationen enthält, die zum Veröffentlichen eines GIS-Service erforderlich sind. | File |
in_server | Die Serververbindung. Sie können die ArcGIS Server-Verbindungen verwenden, die unter dem Knoten GIS-Server im Fenster Katalog aufgelistet sind, oder Sie können zu einem Ordner navigieren, in dem Server-Verbindungsdateien gespeichert sind. Wenn Sie eine Verbindung zu ArcGIS Online herstellen, vergewissern Sie sich, dass Sie Eigene gehostete Services für die Serververbindung eingeben. Achten Sie hierbei auf die Großbuchstaben und darauf, dass die einzelnen Wörter durch Leerzeichen voneinander getrennt sein müssen. | ServerConnection |
in_service_name (optional) | Überschreibt den Service-Namen, der aktuell in der Service-Definition angegeben ist, mit einem neuen Namen. | String |
in_cluster (optional) | Ändert den Cluster, dem der Service zugewiesen wurde. Sie müssen aus den Clustern auswählen, die auf dem angegebenen Server verfügbar sind. | String |
in_folder_type (optional) | Gibt die Quelle des Ordners an. Standardmäßig handelt es sich um einen Ordner aus der Service-Definition. Sie können auch einen Ordner auswählen, der bereits auf dem angegebenen Server vorhanden ist, oder einen neuen Ordner, der beim Veröffentlichen des Service erstellt wird.
| String |
in_folder (optional) | Der Ordner für den Service. Standardmäßig handelt es sich um den in der Service-Definition angegebenen Ordner. Wenn Sie den Ordnertyp NEU ausgewählt haben, geben Sie einen neuen Ordnernamen an. Wenn Sie den Ordnertyp VORHANDEN ausgewählt haben, wählen Sie einen vorhandenen Ordner auf dem Server aus. | String |
in_startupType (optional) | Gibt den Start-Status des Service sofort nach dem Veröffentlichen an.
| Boolean |
in_override (optional) | Gibt an, ob die in der Service-Definition festgelegten Freigabeeigenschaften außer Kraft gesetzt werden. Diese Eigenschaften definieren, ob und wie Sie den Service mit ArcGIS Online freigeben. Wenn Sie den Service mit ArcGIS Online freigeben, steht er anderen Benutzern zur Verfügung.
Sie müssen bei ArcGIS Online angemeldet sein, um die Freigabeeigenschaften zu überschreiben. | Boolean |
in_my_contents (optional) | Gibt an, ob der Service auf ArcGIS Online freigegeben werden soll. Alle freigegebenen Services sind über "Eigene Inhalte" verfügbar. Auch wenn Sie den Service nur für eine bestimmte Gruppe in Ihrer Organisation freigeben möchten, wird er ebenfalls über "Eigene Inhalte" freigegeben.
Sie müssen bei ArcGIS Online angemeldet sein, um die Freigabeeigenschaften zu überschreiben. | Boolean |
in_public (optional) | Gibt an, ob der Service öffentlich verfügbar sein soll.
Um die Freigabeeigenschaften zu überschreiben, müssen Sie bei ArcGIS Online angemeldet sein. | Boolean |
in_organization (optional) | Gibt an, ob der Service für Ihre Organisation freigegeben werden soll.
Um die Freigabeeigenschaften zu überschreiben, müssen Sie bei ArcGIS Online angemeldet sein. | Boolean |
in_groups [group_name,...] (optional) | Eine Liste mit Gruppennamen, für die der Service freigegeben werden soll. Um die Freigabeeigenschaften zu überschreiben, müssen Sie bei ArcGIS Online angemeldet sein. | String |
Codebeispiel
UploadServiceDefinition – Beispiel (Python-Fenster)
In diesem Beispiel wird eine Service-Definition auf einen angegebenen Server hochgeladen und veröffentlicht.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.UploadServiceDefinition_server("myMapService.sd", "GIS Servers/myServerConnection")
Veröffentlichungs-Workflow – Beispiel (eigenständiges Skript)
Das folgende Skript veranschaulicht einen Veröffentlichungs-Workflow unter Verwendung der Werkzeuge Stage Service und 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 – Beispiel 2 (eigenständiges Skript)
Das folgende Skript durchläuft alle Service-Definitionen in einem Ordner und veröffentlicht die einzelnen Service-Definitionen auf einem ArcGIS Server-System.
# 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 – Beispiel 3 (eigenständiges Skript)
Das folgende Skript lädt eine vorhandene Service-Definition hoch und verwendet optionale Parameter zum Ändern von Service-Eigenschaften.
# 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)
Überschreiben von Services – Beispiel (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
Dieses Werkzeug verwendet keine Geoverarbeitungsumgebungen.
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja