CreateSharingDraft

描述

ArcGIS Pro 工程中从 Map 创建 MapServiceDraft

讨论

CreateSharingDraft 函数可以在可配置和共享到 ArcGIS ServerArcGIS Pro 工程中从 Map 创建 MapServiceDraftMapServiceDraft 是适用于地图服务的可配置属性集。共享草稿配置完成后,可以使用 MapServiceDraft 类中的 exportToSDDraft 函数将其保存到服务定义草稿 (.sddraft) 文件。然后可以使用过渡服务上传服务定义工具将服务定义草稿过渡并共享到 ArcGIS Server

注:

过渡和共享服务定义草稿需要 ArcGIS Server 10.6 或更高版本。

语法

CreateSharingDraft (server_type, service_type, service_name, draft_value)
参数说明数据类型
server_type

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

  • STANDALONE_SERVER支持将地图服务发布到 ArcGIS Server
String
service_type

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

  • MAP_SERVICE支持将地图服务发布到 ArcGIS Server
String
service_name

服务的名称。名称只能包含字母数字字符和下划线;不支持空格和特殊字符。名称长度不能超过 120 个字符。

String
draft_value

MapLayer 或图层列表。您可以使用地图中的图层子集进行发布。

List
返回值
数据类型说明
Object

返回 MapServiceDraft 类对象。

代码示例

MapServiceDraft 示例

以下脚本用于将 ArcGIS Pro 工程中的地图作为地图服务发布到 ArcGIS Server

import arcpy
import os

# Set output file names
outdir = r"C:\Project\Output"
service = "MapServiceDraftExample"
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]

# Create MapServiceDraft and set service properties
service_draft = arcpy.sharing.CreateSharingDraft("STANDALONE_SERVER", "MAP_SERVICE", service, m)
service_draft.targetServer = r"C:\Project\myserver.ags.esri.com (publisher).ags"

# Create Service Definition Draft file
service_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, r"C:\Project\myserver.ags.esri.com (publisher).ags")

print("Successfully Uploaded service.")