Service-Definition hochladen (Server)

Lizenzstufe:BasicStandardAdvanced

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

Syntax

UploadServiceDefinition_server (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})
ParameterErläuterungDatentyp
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.

  • NEWErstellen Sie hiermit einen neuen Ordner.
  • EXISTINGGeben Sie hiermit einen Ordner an, der auf dem Server vorhanden ist.
  • FROM_SERVICE_DEFINITIONVerwenden Sie den Ordner, der bereits in der Service-Definition angegeben wurde. Dies ist die Standardeinstellung.
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.

  • STARTEDDer Service wird sofort nach dem Veröffentlichen gestartet.
  • STOPPEDDer Service wird nach dem Veröffentlichen nicht gestartet. Sie müssen den Service manuell starten.
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.

  • OVERRIDE_DEFINITIONÜberschreiben Sie die in der Service-Definition festgelegten Freigabeeigenschaften mit neuen Werten.
  • USE_DEFINITIONDie aktuell in der Service-Definition festgelegten Freigabeeigenschaften werden verwendet, wenn der Service veröffentlicht wird. Dies ist die Standardeinstellung.

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.

  • SHARE_ONLINEGibt den Service auf ArcGIS Online frei. Der Service wird unter "Eigene Inhalte" aufgelistet.
  • NO_SHARE_ONLINEDer Service wird nicht auf ArcGIS Online freigegeben, und andere ArcGIS Online-Benutzer und -Clients im Web können nicht auf ihn zugreifen.

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.

  • PUBLICDer Service wird öffentlich freigegeben.
  • PRIVATEDer Service wird nicht öffentlich freigegeben.

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.

  • SHARE_ORGANIZATIONDer Service wird für Ihre Organisation freigegeben.
  • NO_SHARE_ORGANIZATIONDer Service wird nicht für Ihre Organisation freigegeben.

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

UploadServiceDefinition - Beispiel (Python-Fenster)

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")
Veröffentlichungs-Workflow - Beispiel (eigenständiges Skript)

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)
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.

# 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
UploadServiceDefinition – Beispiel 3 (eigenständiges Skript)

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)
Ü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
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)

Umgebung

Dieses Werkzeug verwendet keine Geoverarbeitungsumgebungen.

Verwandte Themen

Lizenzierungsinformationen

ArcGIS for Desktop Basic: Ja
ArcGIS for Desktop Standard: Ja
ArcGIS for Desktop Advanced: Ja
9/11/2013