本篇文章主要包含两部分内容,一是共享实例,二是Pro直连server发布服务
一、共享实例
ArcGIS 10.7中更新了个好东西,共享实例和专用实例,主要是为了节省发布服务的资源占用,关于ArcGIS发布服务和实例的关系,参考大神的文章【附录1】(此处给大神姐打个广告,欢迎大家关注她的公众号)
大概总结一下,当发布一个GIS服务的时候,整个处理流程是这样的:
实例是什么呢?实例是Server用于处理服务请求时启动的资源,每个server节点会启动一个实例,放在资源池中,以便快速响应用户请求,每个服务中也会有最大最小实例,物理CPU核数,决定了最大实例设置,而最大实例数则影响最终的并发响应时间。
总而言之,以前server发布服务的时候非常占用资源,但是通过现在的共享实例,可以节约资源(暂时还有些搞不清楚,等我好好学习一下,再来补充),所以大家一定要买10.7,哈哈哈。共享实例的说明可以参考【附录2】
官方给出的文档里注明,如果想要体验共享实例,需要满足以下几个条件:
总结一下:想要用共享实例,请用ArcGIS Pro发布地图服务,这就引出了第二部分,如何通过Pro直连server发布服务。
二、Pro直连server发布服务
ArcGIS Pro是个好东西,三维,机器学习,人工智能,大数据……你想要的它都有。问题是没有盗版,so……,但是有试用,试用请参考【附录3】
Pro2.2之前,是只能连接Portal发布服务的,比如发布地图包,场景图层等等,是无法直连server发布服务的,但是Pro2.3发布啦,有了直连server发布服务的功能,蛋疼的是,没有现成的工具,只提供了python模块,arcpy.sharing模块,用于直连server发布服务。
通过ArcGIS Pro的python直连server发布服务,整个过程其实和ArcMap连接server发服务一样的,此处略过,代码参考如下,改改文件名,路径,server连接地址就能用啦:
import arcpy
import os
# Set output file names
outdir = r"E:\test"
service = "MapServiceDraftExample"
sddraft_filename = service + ".sddraft"
sddraft_output_filename = os.path.join(outdir, sddraft_filename)
# Reference map to publish
#aprx = arcpy.mp.ArcGISProject(r"E:\test\China.aprx")
aprx = arcpy.mp.ArcGISProject("CURRENT")
m = aprx.listMaps("Map")[0]
# Create MapServiceDraft and set service properties
service_draft = arcpy.sharing.CreateSharingDraft("STANDALONE_SERVER", "MAP_SERVICE", service, m)
service_draft.targetServer = "https://ip:6443/arcgis/"
# 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, "https://ip:6443/arcgis/")
print("Successfully Uploaded service.")
三、最终结果
参考:
(1)https://mp.weixin.qq.com/s/1RnZpYe47l-VbXXpsV3WWw
(2)http://enterprise.arcgis.com/en/server/latest/administer/windows/configure-service-instance-settings.htm
(3)https://www.esri.com/zh-cn/arcgis/products/arcgis-pro/trial
(4)https://pro.arcgis.com/en/pro-app/arcpy/sharing/createsharingdraft.htm