上传服务定义 (服务器)

摘要

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

使用情况

  • 该工具可以根据输入服务定义上传并共享 Web 图层定位器Web 工具服务

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

  • Web 工具仅可共享至 ArcGIS Enterprise。 地理处理服务只能发布到 ArcGIS Server

  • 定位器仅能共享到 ArcGIS Enterprise。 地理编码服务只能发布到 ArcGIS Server

参数

标注说明数据类型
服务定义

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

File
服务器

服务器类型。 支持的服务器类型如下:

  • 我的托管服务 - 将托管的 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 AllSource 工程,且您正使用脚本打开工程或正在 ArcGIS AllSource 中运行工具,则您可以指定 ArcGIS Server 的 URL。

ServerConnection
服务名称
(可选)

此服务名称将覆盖服务定义中指定的当前服务名称。

String
集群
(可选)

集群名称将覆盖已为其分配服务的当前集群。 您必须从指定服务器上的集群中选择。

旧版本:

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

String
文件夹类型
(可选)

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

  • 新建将创建新文件夹。
  • 现有将使用服务器上的现有文件夹。
  • 从服务定义将使用服务定义中的文件夹。 这是默认设置。
String
文件夹
(可选)

Web 图层或服务所对应的文件夹。 如果未提供文件夹,则将使用服务定义中指定的文件夹 如果将文件夹类型指定为 新建,则使用此参数来提供文件夹名称。 如果将文件夹类型指定为现有,则可从服务器上的现有文件夹中选择。

String
立即启动服务
(可选)

指定共享后是否将启动服务。

  • 选中 - 该服务在共享之后启动。 这是默认设置。
  • 未选中 - 该服务在共享之后不会启动。
Boolean
覆盖服务定义共享属性
(可选)

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

  • 选中 - 将覆盖服务定义中设置的共享属性。
  • 未选中 - 不覆盖服务定义中设置的共享属性。 这是默认设置。

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

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

Boolean
在 ArcGIS Online 上共享
(可选)

指定是否共享 web 图层和 Web 工具。

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

  • 选中 - 将在 ArcGIS OnlineArcGIS Enterprise 上共享 Web 图层或 Web 工具。 该 Web 图层或 Web 工具将在我的内容下列出。
  • 未选中 - 该 Web 图层或 Web 工具不会在 ArcGIS OnlineArcGIS Enterprise 上共享,因此其他 ArcGIS OnlineArcGIS Enterprise 用户和 Web 客户端无法对其进行访问。 这是默认设置。

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

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

Boolean
共享给所有人(公共)
(可选)

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

  • 选中 - 将向公众提供 web 图层或 Web 工具。
  • 未选中 - 不向公众提供 web 图层或 web 工具。 这是默认设置。

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

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

Boolean
与您的组织共享
(可选)

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

  • 选中 - 将 web 图层或 Web 工具与您所在的组织共享。
  • 未选中 - 不会将 web 图层或 Web 工具与您所在的组织共享。 这是默认设置。

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

将地图或地理处理服务共享到 ArcGIS Server 时不支持此参数。

Boolean
与这些群组共享
(可选)

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

  • 选中 - 将 web 图层或 Web 工具与特定群组共享。
  • 未选中 - 不会将 web 图层或 Web 工具与特定群组共享。

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

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

String

派生输出

标注说明数据类型
SOAP 服务 URL

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

String
REST 服务 URL

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

String
托管地图服务项 ID

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

String
托管要素服务项 ID

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

String
缓存服务

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

Image Service; Map Server
要素服务 URL

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

String
地图服务 URL

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

String
图层 ID

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

String
服务 URL

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

String
托管矢量切片服务项 ID

矢量切片服务的项目 ID。

String
矢量切片服务 URL

矢量切片服务的 REST URL。

String

arcpy.management.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 AllSource 工程,且您正使用脚本打开工程或正在 ArcGIS AllSource 中运行工具,则您可以指定 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 图层或服务所对应的文件夹。 如果未提供文件夹,则将使用服务定义中指定的文件夹 如果您将 in_folder_type 指定为 NEW,则使用此参数来提供文件夹名称。 如果您将 in_folder_type 指定为 EXISTING,则可从服务器上的现有文件夹中选择。

String
in_startupType
(可选)

指定共享后是否将启动服务。

  • STARTED该服务在共享之后启动。 这是默认设置。
  • STOPPED该服务在共享之后不会启动。
Boolean
in_override
(可选)

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

  • OVERRIDE_DEFINITION将覆盖服务定义中设置的共享属性。
  • USE_DEFINITION不覆盖服务定义中设置的共享属性。 这是默认设置。

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

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

Boolean
in_my_contents
(可选)

指定是否共享 web 图层和 Web 工具。

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

  • SHARE_ONLINE将在 ArcGIS 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
[in_groups,...]
(可选)

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

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

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

String

派生输出

名称说明数据类型
out_soap_svc_url

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

String
out_rest_svc_url

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

String
out_mapServiceItemID

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

String
out_featServiceItemID

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

String
out_cached_service

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

Image Service; Map Server
out_featureServiceURL

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

String
out_mapServiceURL

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

String
out_LayerIDMap

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

String
out_standaloneTableIDMap

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

String
out_vectorTileServiceID

矢量切片服务的项目 ID。

String
out_vectorTileServiceURL

矢量切片服务的 REST URL。

String

代码示例

UploadServiceDefinition 示例 1(独立脚本)

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

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.server.StageService(sddraft_output_filename, sd_output_filename)

# Share to portal
print("Uploading Service Definition...")
arcpy.server.UploadServiceDefinition(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"

# Run UploadServiceDefinition
arcpy.server.UploadServiceDefinition(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"]

# Run UploadServiceDefinition
arcpy.server.UploadServiceDefinition(inSdFile, inServer, inServiceName, 
                                     inCluster, inFolderType, inFolder, 
                                     inStartup, inOverride, inMyContents, 
                                     inPublic, inOrganization, inGroups)

环境

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