上传服务定义 (服务器)

描述

将 Web 图层、Web 工具或服务上传并共享至 ArcGIS OnlineArcGIS EnterpriseArcGIS Server

使用方法

  • 该工具可以根据输入服务定义上传并共享 Web 图层、Web 工具或服务。无论何时使用 ArcGIS Pro 共享 Web 图层或服务,都要运行此工具,并会在目录窗格的地理处理历史记录项目中显示一个条目。

  • 该工具不能上传或共享服务定义草稿文件 (.sddraft)。如果您有服务定义草稿,则您可以使用过渡服务工具将其转换成过渡的服务定义。

  • Web 工具仅可共享至 ArcGIS Enterprise。地理处理工具仅可共享至 ArcGIS Server

语法

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})
参数说明数据类型
in_sd_file

服务定义文件 (.sd) 包含共享 Web 图层、Web 工具或服务所需的所有信息。

File
in_server

表示服务器类型的字符串。支持的服务器类型如下:

  • 我的托管服务 - 将托管的 Web 图层上传并共享至 ArcGIS OnlineArcGIS Enterprise 时使用。针对服务器连接,输入我的托管服务。将每个单词的第一个字母大写,并且在单词之间包含空格。
  • HOSTING_SERVER - 将托管的 Web 图层共享至 ArcGIS OnlineArcGIS Enterprise 时使用。
  • ArcGIS Enterprise 门户联合服务器的 URL - 将 Web 工具或地图图像图层共享到 ArcGIS Enterprise 门户联合服务器时使用。
  • ArcGIS Server 连接 - 将地图或地理处理服务共享到 ArcGIS Server 时使用。您可以使用在工程窗口中服务器节点下列出的 ArcGIS Server 连接,也可以浏览至存储服务器连接文件的文件夹。
  • ArcGIS Server 的 URL - 将地图或地理处理服务共享到 ArcGIS Server 时使用。如果您已将 ArcGIS Server发布者连接添加到 ArcGIS Pro 工程,且您正使用脚本打开工程或正在 ArcGIS Pro 中运行工具,则您可以指定 ArcGIS Server 的 URL。

ServerConnection
in_service_name
(可选)

使用此选项以用新名称来覆盖当前在服务定义中指定的服务名称。

String
in_cluster
(可选)

如果您要更改已分配服务的集群,则可以使用此选项。您必须从指定服务器上的可用集群中选择。

旧版本:

ArcGIS Enterprise 10.5.1 中已弃用了集群。对于不支持多个集群的服务器,此参数将被忽略。

String
in_folder_type
(可选)

指定用于确定文件夹来源的文件夹类型。默认设置是从服务定义中获取文件夹。您还可以选择获取指定在线服务器上已经存在的一系列文件夹,或者您可以在共享此 Web 图层或服务时指定创建新的文件夹。

  • NEW创建新文件夹。
  • EXISTING指定服务器上存在的文件夹。
  • FROM_SERVICE_DEFINITION在服务定义中指定文件夹。这是默认设置。
String
in_folder
(可选)

使用此选项来指定 Web 图层或服务所对应的文件夹。默认设置是使用服务定义中指定的文件夹。如果您将 NEW 指定为 in_folder_type,则使用此参数来输入新的文件夹名称。如果您将 EXISTING 指定为 in_folder_type,则可从服务器上的现有文件夹中选择。

String
in_startupType
(可选)

使用此选项在发布之后立即指定该服务的开始或停止状态。

  • STARTED该服务在共享之后立即启动。
  • STOPPED该服务在共享之后不会启动。服务将通过手动方式启动。
Boolean
in_override
(可选)

要覆盖在服务定义中设置的共享属性,请使用此参数。这些属性定义了您是否正在与 ArcGIS OnlineArcGIS Enterprise 共享您的 Web 图层或 Web 工具以及共享的方式。共享您的 Web 图层或 Web 工具可以让其他人使用该图层。

  • OVERRIDE_DEFINITION用新值来覆盖在服务定义中设置的共享属性。
  • USE_DEFINITION将在共享 Web 图层或 Web 工具时使用当前在服务定义中设置的共享属性。这是默认设置。

要覆盖共享属性,您必须登录 ArcGIS OnlineArcGIS Enterprise

共享到 ArcGIS Server 时,不支持此参数。

Boolean
in_my_contents
(可选)

指定 web 图层和 Web 工具的共享方式。所有共享 Web 图层和 Web 工具均可通过我的内容提供。即使您只想与组织中的某一特定群组共享,也可通过我的内容共享该 Web 图层或 Web 工具。

  • SHARE_ONLINEArcGIS OnlineArcGIS Enterprise 上共享 Web 图层或 Web 工具。该 Web 图层或 Web 工具将在我的内容下列出。
  • NO_SHARE_ONLINE该 Web 图层或 Web 工具不会在 ArcGIS OnlineArcGIS Enterprise 上共享,因此其他 ArcGIS OnlineArcGIS Enterprise 用户和 Web 客户端无法对其进行访问。

要覆盖共享属性,您必须登录门户。

共享到 ArcGIS Server 时,不支持此参数。

Boolean
in_public
(可选)

指定是否向公众提供 web 图层或 Web 工具。

  • PUBLIC将 Web 图层或 Web 工具与公众共享。
  • PRIVATE不将 Web 图层或 Web 工具与公众共享。

要覆盖共享属性,您必须登录 ArcGIS OnlineArcGIS Enterprise

共享到 ArcGIS Server 时,不支持此参数。

Boolean
in_organization
(可选)

指定是否将 web 图层或 Web 工具与您所在的组织共享。

  • SHARE_ORGANIZATION将 Web 图层或 Web 工具与您所在的组织共享。
  • NO_SHARE_ORGANIZATION不会将 Web 图层或 Web 工具与您所在的组织共享。

要覆盖共享属性,您必须登录 ArcGIS OnlineArcGIS Enterprise

共享到 ArcGIS Server 时,不支持此参数。

Boolean
in_groups
[group_name,...]
(可选)

要将 Web 图层或 Web 工具共享给的群组的名称列表。

要覆盖共享属性,您必须登录 ArcGIS OnlineArcGIS Enterprise

共享到 ArcGIS Server 时,不支持此参数。

String

派生输出

名称说明数据类型
out_soap_svc_url

发布到服务器的服务的 SOAP URL。

字符串
out_rest_svc_url

发布到服务器的服务的 REST URL。

字符串
out_mapServiceItemID

共享到门户的地图图像图层的项目 ID。

字符串
out_featServiceItemID

共享到门户的托管要素服务图层的项目 ID。

字符串
out_cached_service

启用缓存的影像服务或地图服务。

影像服务
out_featureServiceURL

共享到门户的托管要素图层的 REST URL。

字符串
out_mapServiceURL

共享到门户的地图图像图层的 REST URL。

字符串
out_LayerIDMap

已发布图层及其各自的 ID 采用 Layer1|ID1;Layer2|ID2; 的格式,以此类推。

字符串
out_standaloneTableIDMap

已发布独立表及其各自的 ID 采用 Table1|ID1;Table2|ID2; 的格式,以此类推。

字符串
out_vectorTileServiceID

矢量切片服务的项目 ID。

字符串
out_vectorTileServiceURL

矢量切片服务的 REST URL。

字符串

代码示例

UploadServiceDefinition 示例 1(独立脚本)

以下脚本将地图中的图层列表作为 web 切片图层发布至 ArcGIS EnterpriseArcGIS Online。门户信息可从 ArcGIS Pro门户页面中获得。

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.")
UploadServiceDefinition 示例 2(独立脚本)

以下脚本可上传现有的服务定义并可使用可选参数对该服务的属性进行修改。

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)
UploadServiceDefinition 示例 3(独立脚本)

以下脚本可将现有的服务定义上传到 ArcGIS OnlineArcGIS Enterprise 并可使用可选参数对该服务的属性进行修改。

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)

环境

此工具不使用任何地理处理环境。

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题