描述
在 ArcGIS Pro 工程中从 Map 创建 MapServiceDraft。
讨论
CreateSharingDraft 函数可以在可配置和共享到 ArcGIS Server 的 ArcGIS Pro 工程中从 Map 创建 MapServiceDraft。MapServiceDraft 是适用于地图服务的可配置属性集。共享草稿配置完成后,可以使用 MapServiceDraft 类中的 exportToSDDraft 函数将其保存到服务定义草稿 (.sddraft) 文件。然后可以使用过渡服务和上传服务定义工具将服务定义草稿过渡并共享到 ArcGIS Server。
注:
过渡和共享服务定义草稿需要 ArcGIS Server 10.6 或更高版本。
语法
CreateSharingDraft (server_type, service_type, service_name, draft_value)
参数 | 说明 | 数据类型 |
server_type | 服务器类型。支持的服务器类型如下:
| String |
service_type | 服务类型。支持的服务类型如下:
| String |
service_name | 服务的名称。名称只能包含字母数字字符和下划线;不支持空格和特殊字符。名称长度不能超过 120 个字符。 | String |
draft_value | List |
数据类型 | 说明 |
Object | 返回 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.")