Zusammenfassung
Lädt einen Web-Layer, ein Web-Werkzeug oder einen Web-Service in ArcGIS Online, ArcGIS Enterprise oder ArcGIS Server hoch und gibt das Element dort frei.
Verwendung
Dieses Werkzeug lädt einen Web-Layer, ein Web-Werkzeug oder einen Web-Service basierend auf der Eingabe-Service-Definition hoch und gibt das Element frei. Wenn Sie einen Web-Layer, ein Web-Werkzeug oder einen Web-Service mit ArcGIS Pro freigeben, wird dieses Werkzeug ausgeführt und ein Eintrag im Element Geoverarbeitungsverlauf des Bereichs Katalog angezeigt.
Mit diesem Werkzeug werden Service-Definitionsentwurfsdateien (.sddraft) weder hochgeladen noch freigegeben. Wenn Sie einen Service-Definitionsentwurf haben, können Sie ihn mithilfe des Werkzeugs Service bereitstellen in eine bereitgestellte Service-Definition konvertieren.
Web-Werkzeuge können nur in ArcGIS Enterprise freigegeben werden. Geoverarbeitungswerkzeuge können nur in ArcGIS Server freigegeben werden.
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) enthält alle Informationen, die zum Freigeben eines Web-Layers, Web-Werkzeugs oder Web-Service erforderlich sind. | File |
in_server | Eine Zeichenfolge, die den Servertyp darstellt. Die folgenden Servertypen werden unterstützt:
| ServerConnection |
in_service_name (optional) | Verwenden Sie diese Option, um den Service-Namen, der aktuell in der Service-Definition angegeben ist, mit einem neuen Namen zu überschreiben. | String |
in_cluster (optional) | Verwenden Sie diese Option, 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. Ältere Versionen:Cluster werden in ArcGIS Enterprise 10.5.1 nicht mehr unterstützt. Für Server, die keine Unterstützung für mehrere Cluster bieten, wird dieser Parameter ignoriert. | String |
in_folder_type (optional) | Gibt an, welcher Ordnertyp verwendet wird, 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 auf dem angegebenen Online-Server bereits vorhanden sind, oder Sie können einen neuen Ordner angeben, der beim Freigeben dieses Web-Layers oder -Service erstellt wird.
| String |
in_folder (optional) | Verwenden Sie diese Option, um den Ordner für den Web-Layer oder -Service anzugeben. Standardmäßig wird der Ordner verwendet, der in der Service-Definition angegeben wurde. Wenn Sie NEW für in_folder_type angegeben haben, verwenden Sie diesen Parameter zum Eingeben eines neuen Ordnernamens. Wenn Sie EXISTING für in_folder_type angegeben haben, können Sie aus den vorhandenen Ordnern auf dem Server auswählen. | String |
in_startupType (optional) | Geben Sie mit dieser Option den Start- oder Stopp-Status des Service sofort nach dem Veröffentlichen an.
| Boolean |
in_override (optional) | Verwenden Sie diesen Parameter, um die Freigabeeigenschaften, die in der Service-Definition festgelegt wurden, zu überschreiben. Mit diesen Eigenschaften wird definiert, ob und wie der Web-Layer oder das Web-Werkzeug mit ArcGIS Online oder ArcGIS Enterprise freigegeben wird. Wenn Sie den Web-Layer oder das Web-Werkzeug in ArcGIS Online freigeben, steht er anderen Anwendern für die Verwendung zur Verfügung.
Um die Freigabeeigenschaften zu überschreiben, müssen Sie bei ArcGIS Online oder ArcGIS Enterprise angemeldet sein. Dieser Parameter wird beim Freigeben in ArcGIS Server nicht berücksichtigt. | Boolean |
in_my_contents (optional) | Legt fest, wie Web-Layer oder Web-Werkzeuge freigegeben werden sollen. Alle freigegebenen Web-Layer oder Web-Werkzeuge sind über Eigene Inhalte verfügbar. Auch wenn Sie den Web-Layer oder das Web-Werkzeug nur für eine bestimmte Gruppe in Ihrer Organisation freigeben möchten, wird er bzw. es ebenfalls über Eigene Inhalte freigegeben.
Um die Freigabeeigenschaften zu überschreiben, müssen Sie bei einem Portal angemeldet sein. Dieser Parameter wird beim Freigeben in ArcGIS Server nicht berücksichtigt. | Boolean |
in_public (optional) | Gibt an, ob der Web-Layer oder das Web-Werkzeug öffentlich verfügbar sein soll.
Um die Freigabeeigenschaften zu überschreiben, müssen Sie bei ArcGIS Online oder ArcGIS Enterprise angemeldet sein. Dieser Parameter wird beim Freigeben in ArcGIS Server nicht berücksichtigt. | Boolean |
in_organization (optional) | Gibt an, ob der Web-Layer oder das Web-Werkzeug für die eigene Organisation freigegeben werden soll.
Um die Freigabeeigenschaften zu überschreiben, müssen Sie bei ArcGIS Online oder ArcGIS Enterprise angemeldet sein. Dieser Parameter wird beim Freigeben in ArcGIS Server nicht berücksichtigt. | Boolean |
in_groups [group_name,...] (optional) | Eine Liste mit Gruppennamen, für die der Web-Layer oder das Web-Werkzeug freigegeben werden soll. Um die Freigabeeigenschaften zu überschreiben, müssen Sie bei ArcGIS Online oder ArcGIS Enterprise angemeldet sein. Dieser Parameter wird beim Freigeben in ArcGIS Server nicht berücksichtigt. | String |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_soap_svc_url | Die SOAP-URL eines auf dem Server veröffentlichten Service. | Zeichenfolge |
out_rest_svc_url | Die REST-URL eines auf dem Server veröffentlichten Service. | Zeichenfolge |
out_mapServiceItemID | Die Element-ID des im Portal freigegebenen Kartenbild-Layers. | Zeichenfolge |
out_featServiceItemID | Die Element-ID des im Portal freigegebenen gehosteten Feature-Service-Layers. | Zeichenfolge |
out_cached_service | Ein Image-Service oder ein Kartenservice mit aktiviertem Caching. | Image-Service; MapServer |
out_featureServiceURL | Die REST-URL des im Portal freigegebenen gehosteten Feature-Layers. | Zeichenfolge |
out_mapServiceURL | Die REST-URL des im Portal freigegebenen Kartenbild-Layers. | Zeichenfolge |
out_LayerIDMap | Die veröffentlichten Layer und die entsprechenden IDs im Format Layer1|ID1;Layer2|ID2; usw. | Zeichenfolge |
out_standaloneTableIDMap | Die veröffentlichten Standalone-Tabellen und die entsprechenden IDs im Format Tabelle1|ID1;Tabelle2|ID2; usw. | Zeichenfolge |
out_vectorTileServiceID | Die Element-ID des Vektorkachelservice. | Zeichenfolge |
out_vectorTileServiceURL | Die REST-URL des Vektorkachelservice. | Zeichenfolge |
Codebeispiel
Mit dem folgenden Skript wird eine Liste von Layern einer Karte als Web-Kachel-Layer in ArcGIS Enterprise oder ArcGIS Online veröffentlicht. Portal-Informationen sind auf der Seite Portale in ArcGIS Pro verfügbar.
import arcpy
import os
# Set output file names
outdir = r"C:\Project\Output"
service = "TileSharingDraftExample"
sddraft_filename = service + ".sddraft"
sddraft_output_filename = os.path.join(outdir, sddraft_filename)
# Reference map to publish
aprx = arcpy.mp.ArcGISProject(r"C:\Project\World.aprx")
m = aprx.listMaps("World")[0]
lyrs = []
lyrs.append(m.listLayers('cities')[0])
lyrs.append(m.listLayers('counties')[0])
# Create TileSharingDraft and set service properties
sharing_draft = m.getWebLayerSharingDraft("HOSTING_SERVER", "TILE", service, lyrs)
sharing_draft.summary = "My Summary"
sharing_draft.tags = "My Tags"
sharing_draft.description = "My Description"
sharing_draft.credits = "My Credits"
sharing_draft.useLimitations = "My Use Limitations"
# Create Service Definition Draft file
sharing_draft.exportToSDDraft(sddraft_output_filename)
# Stage Service
sd_filename = service + ".sd"
sd_output_filename = os.path.join(outdir, sd_filename)
arcpy.StageService_server(sddraft_output_filename, sd_output_filename)
# Share to portal
print("Uploading Service Definition...")
arcpy.UploadServiceDefinition_server(sd_output_filename, "My Hosted Services")
print("Successfully Uploaded service.")
Das folgende Skript lädt eine vorhandene Service-Definition hoch und verwendet optionale Parameter zum Ändern von Service-Eigenschaften.
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data"
# Set local variables
inSdFile = "myMapService.sd"
inServer = "myServerConnection.ags"
inServiceName = "newServiceName"
inCluster = "myCluster"
inFolderType = "NEW"
inFolder = "newFolder"
inStartup = "STOPPED"
# Execute UploadServiceDefinition
arcpy.UploadServiceDefinition_server(inSdFile, inServer, inServiceName,
inCluster, inFolderType, inFolder,
inStartup)
Das folgende Skript lädt eine vorhandene Service-Definition entweder in ArcGIS Online oder ArcGIS Enterprise hoch und verwendet optionale Parameter zum Ändern von Service-Eigenschaften.
import arcpy
# Set environment settings arcpy.env.workspace = "C:/data"
# Set local variables inSdFile = "myMapService.sd"
inServer = "HOSTING_SERVER"
inServiceName = "newServiceName"
inCluster = "myCluster"
inFolderType = "EXISTING"
inFolder = "existingFolder"
inStartup = "STOPPED"
inOverride = "OVERRIDE_DEFINITION"
inMyContents = "SHARE_ONLINE"
inPublic = "PRIVATE"
inOrganization = "NO_SHARE_ORGANIZATION"
inGroups = ["My Group", "MyGroup 2"]
# Execute UploadServiceDefinition arcpy.UploadServiceDefinition_server(inSdFile, inServer, inServiceName, inCluster, inFolderType, inFolder,
inStartup, inOverride, inMyContents, inPublic, inOrganization, inGroups)
Umgebungen
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja