标注 | 说明 | 数据类型 |
服务定义草稿 | 输入草稿服务定义。 可以使用 arcpy.sharing 模块、CreateGeocodeSDDraft 或 CreateGPSDDraft ArcPy 函数创建服务定义草稿。 | File |
服务定义 | 生成的服务定义。 默认情况下,服务定义将写入与服务定义草稿相同的目录中。 | File |
过渡版本 (可选) | 发布的服务定义版本。 在将要素、切片或影像图层共享至 ArcGIS Enterprise 时,使用值 5。 将地图图像图层或网络工具共享到 ArcGIS Enterprise, 以及将任何图层类型共享到 ArcGIS Online, 时,请使用 102 作为值。 这是默认设置。 在将网络工具或地理处理服务共享到 ArcGIS Enterprise 或 ArcGIS Server 使用 GeoprocessingSharingDraft 或 CreateGPSDDraft 功能时,请使用以下列表中与版本号相对应的值:
| Long |
摘要
过渡服务定义。 过渡的服务定义文件 (.sd) 包含用于共享 Web 图层、定位器、Web 工具或服务的所有必要信息。
使用情况
此工具用于将服务定义草稿文件 (.sddraft) 转换为服务定义,随后可将服务定义输入到上传服务定义工具中,以便上传 Web 图层、定位器、Web 工具或服务并将其发布到 ArcGIS Online、ArcGIS Enterprise 或 ArcGIS Server。 草稿服务定义不能直接用于发布 Web 图层、定位器、Web 工具或服务。
该工具将分析 .sddraft 文件,以在将 .sddraft 文件转换为 .sd 文件之前,确定适用性和潜在性能问题的来源。 当该工具正在运行时,可以将光标悬停在进度条上以显示一个弹出窗口,其中包含有关该工具的全面信息,包括分析器消息。 还可以单击查看详细信息以在分离的窗口中查看相同的信息,或者单击打开历史记录以打开工程的地理处理历史记录。 该工具运行完毕后,进度条将显示一个图标和一条消息,指示工具状态。 有关在地理处理工具中查看消息的详细信息,请参阅使用地理处理工具。
分析 .sddraft 文件时,可能会看到两种类型的消息:错误和警告。 必须解决分析器错误,然后才能创建 .sd 文件。 分析器警告用于标识与性能、外观和数据访问相关的问题,此类问题不会阻止您将 .sddraft 文件转换为 .sd 文件。 所有分析器消息都具有关联的帮助主题。 有关解决这些问题的详细信息,请参阅分析 GIS 资源。
可以使用 arcpy.sharing 模块、CreateGeocodeSDDraft 或 CreateGPSDDraft ArcPy 函数创建服务定义草稿。
参数
arcpy.management.StageService(in_service_definition_draft, out_service_definition, {staging_version})
名称 | 说明 | 数据类型 |
in_service_definition_draft | 输入草稿服务定义。 可以使用 arcpy.sharing 模块、CreateGeocodeSDDraft 或 CreateGPSDDraft ArcPy 函数创建服务定义草稿。 | File |
out_service_definition | 生成的服务定义。 默认情况下,服务定义将写入与服务定义草稿相同的目录中。 | File |
staging_version (可选) | 发布的服务定义版本。 在将要素、切片或影像图层共享至 ArcGIS Enterprise 时,使用值 5。 将地图图像图层或网络工具共享到 ArcGIS Enterprise, 以及将任何图层类型共享到 ArcGIS Online, 时,请使用 102 作为值。 这是默认设置。 在将网络工具或地理处理服务共享到 ArcGIS Enterprise 或 ArcGIS Server 使用 GeoprocessingSharingDraft 或 CreateGPSDDraft 功能时,请使用以下列表中与版本号相对应的值:
| Long |
代码示例
以下脚本将地图中的图层列表作为 web 切片图层发布至 ArcGIS Enterprise 或 ArcGIS Online。 Portal 信息是从 ArcGIS AllSource 中的 Portals 页面获取的。
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.")
以下脚本用于过渡现有服务定义草稿并显示分析器警告和错误。
import arcpy
try:
arcpy.server.StageService(r"C:\Data\World.sddraft", r"C:\Data\World.sd")
warnings = arcpy.GetMessages(1)
print(warnings)
except Exception as stage_exception:
print("Sddraft not staged. Analyzer errors encountered - {}".format(str(stage_exception)))