Service-Definition hochladen (Server)
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 for Desktop freigeben, wird dieses Werkzeug ausgeführt, und im Fenster Ergebnisse wird ein Ergebnis angezeigt.
Dieses Werkzeug lädt keine Service-Definitionsentwurfsdateien (.sddraft) hoch und veröffentlicht sie auch nicht. Wenn Sie einen Service-Definitionsentwurf haben, können Sie ihn mithilfe des Werkzeugs Service bereitstellen in eine bereitgestellte Service-Definition konvertieren.
Sie können eine ArcGIS for Server-Verbindung mithilfe von ArcGIS for Desktop durch Herstellen einer Publisher-Verbindung zu ArcGIS for Server in ArcGIS for Desktop erstellen.
Sie können das Werkzeug Beim Portal anmelden zum Herstellen einer Verbindung zu einem ArcGIS Online-Portal verwenden.
Syntax
Parameter | Erläuterung | Datentyp |
in_sd_file |
Die Service-Definition (.sd) enthält alle Informationen, die zum Veröffentlichen eines GIS-Service erforderlich sind. | File |
in_server |
Sie können ArcGIS for Server-Verbindungen verwenden, die unter dem Knoten GIS-Server im Fenster Katalog aufgelistet sind, oder Sie können zu einem anderen Ordner navigieren, in dem möglicherweise Server-Verbindungsdateien gespeichert sind. Wenn Sie eine Verbindung zu ArcGIS Online herstellen, vergewissern Sie sich, dass Sie Eigene gehostete Services für die Server-Verbindung 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) |
Verwenden Sie dies zum Überschreiben des Service-Namens, der aktuell in der Service-Definition angegeben ist, mit einem neuen Namen. | String |
in_cluster (optional) |
Verwenden Sie dies, wenn Sie den Cluster ändern möchten, 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 [in_folder_type,...] (optional) |
Der Ordnertyp wird verwendet, um die Quelle des Ordners zu bestimmen. Standardmäßig wird ein Ordner aus der Service-Definition abgerufen. Sie können auch eine Liste der Ordner abrufen, die sich bereits auf dem angegebenen Server befinden, oder Sie können einen neuen Ordner angeben, der beim Veröffentlichen des Service erstellt wird.
| String |
in_folder (optional) |
Geben Sie den Ordner für den Service an. Standardmäßig wird der Ordner verwendet, der in der Service-Definition angegeben wurde. Wenn Sie den Ordnertyp NEW auswählen, verwenden Sie diesen Parameter zum Eingeben eines neuen Ordnernamens. Wenn Sie den Ordnertyp EXISTING auswählen, können Sie aus den vorhandenen Ordnern auf dem Server auswählen. | String |
in_startupType | Bestimmen Sie hiermit den Start/Stopp-Status des Service sofort nach dem Veröffentlichen.
| Boolean |
in_override (optional) | Verwenden Sie diesen Parameter, wenn Sie die Freigabeeigenschaften, die in der Service-Definition festgelegt wurden, überschreiben möchten. Diese Eigenschaften definieren, ob und wie Sie den Service mit ArcGIS Online freigeben. Wenn Sie Ihren 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) | 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) | Wählen Sie aus, ob Ihr Service öffentlich verfügbar sein soll.
Sie müssen bei ArcGIS Online angemeldet sein, um die Freigabeeigenschaften zu überschreiben. | Boolean |
in_organization (optional) | Sie können Ihren Service für Ihre Organisation freigeben.
Sie müssen bei ArcGIS Online angemeldet sein, um die Freigabeeigenschaften zu überschreiben. | Boolean |
in_groups [group_name,...] (optional) | Eine Liste mit Gruppennamen, für die der Service freigegeben werden soll. Sie müssen bei ArcGIS Online angemeldet sein, um die Freigabeeigenschaften zu überschreiben. | String |
Codebeispiel
Hochladen und Veröffentlichen einer Service-Definition auf einen bzw. auf einem angegebenen Server.
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.UploadServiceDefinition_server("myMapService.sd", "GIS Servers/myServerConnection")
Das folgende Skript veranschaulicht den Veröffentlichungs-Workflow 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, Spatial Data 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)
Das folgende Skript durchläuft alle Service-Definitionen in einem Ordner und veröffentlicht die einzelnen Service-Definitionen auf einem ArcGIS-Server.
# Name: UploadServiceDefinition_example3.py
# Description: Upload and publish all service definitions contained in a folder
# Requirements: Connection to an ArcGIS Server, Spatial Data 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
Das folgende Skript lädt eine vorhandene Service-Definition hoch und verwendet optionale Parameter zum Modifizieren einiger Eigenschaften des Service.
# 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, Spatial Data 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)
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
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)