描述
过渡服务定义。过渡的服务定义文件 (.sd) 包含用于共享 Web 图层、Web 工具或服务的所有必要信息。
使用方法
此工具用于将服务定义草稿 (.sddraft) 转换为服务定义,随后可将服务定义输入到上传服务定义工具中,以便上传 Web 图层、Web 工具或服务并将其发布到 ArcGIS Online、ArcGIS Enterprise 或 ArcGIS Server。草稿服务定义不能直接用于发布 Web 图层、Web 工具或服务。
无论何时使用 ArcGIS Pro 共享 Web 图层、Web 工具或服务,都要运行过渡服务工具,并会在目录窗格的地理处理历史记录项目中显示一个条目。
该工具将分析 .sddraft 文件,以在将服务定义草稿文件转换为服务定义 (.sd) 文件之前,确定适用性和潜在性能问题的来源。当该工具正在运行时,可以将光标悬停在进度条上以显示一个弹出窗口,其中包含有关该工具的全面信息,包括分析器消息。还可以单击查看详细信息以在分离的窗口中查看相同的详细信息,或者单击打开历史记录以打开工程的地理处理历史记录。该工具运行完毕后,进度条将显示一个图标和一条消息,指示工具状态。有关在地理处理工具中查看消息的详细信息,请参阅运行地理处理工具。
分析 .sddraft 文件时,可能会看到两种类型的消息:错误和警告。必须解决分析器错误,然后才能创建服务定义文件。分析器警告用于标识与性能、外观和数据访问相关的问题,此类问题不会阻止您将服务定义草稿文件转换为服务定义文件。所有分析器消息都具有关联的帮助主题。有关解决这些问题的详细信息,请参阅分析 GIS 资源。
可以使用 arcpy.sharing 模块或 CreateGeocodeSDDraft、CreateGPSDDraft 或 CreateImageSDDraft ArcPy 函数创建服务定义草稿。
语法
arcpy.server.StageService(in_service_definition_draft, out_service_definition, {staging_version})
参数 | 说明 | 数据类型 |
in_service_definition_draft | 输入草稿服务定义。可以使用 arcpy.sharing 模块或者 CreateGeocodeSDDraft、CreateGPSDDraft 或 CreateImageSDDraft ArcPy 函数创建服务定义草稿。 | File |
out_service_definition | 生成的服务定义。默认情况下,服务定义将作为草稿服务定义写入同一目录。 | File |
staging_version (可选) | 服务版本,服务定义将要发布为此版本。 在将要素、切片或影像图层共享至 ArcGIS Enterprise 时,使用 5。在将地图影像图层或 Web 工具共享至 ArcGIS Enterprise 以及将任何图层类型共享至 ArcGIS Online 时,使用 102。这是默认设置。 | Long |
代码示例
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.")
以下脚本用于过渡现有服务定义草稿并显示分析器警告和错误。
import arcpy
try:
arcpy.StageService_server(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)))
环境
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是