可以基于用于对街道数据进行建模的网络数据集将路径服务发布到 ArcGIS Enterprise on Kubernetes。 在发布后,路径服务可用于各种应用程序(例如 ArcGIS Pro),或在 Map Viewer 经典版 中获取方向并执行分析。 还可以通过使用这些服务的 ArcGIS web API 和 Runtime SDK 编写应用程序。
要发布路径服务,需要在 ArcGIS Enterprise on Kubernetes 中运行作为“发布工具”地理处理服务的一部分的“发布路径服务”Web 工具。 该工具将基于网络数据集创建所有路径服务并将其注册为各种应用程序的企业门户中的实用程序服务,用于发现和使用这些路径服务。
在运行 Web 工具之前,确保部署中的所有结点均可访问用于发布路径服务的网络数据集。 要执行此操作,可通过在注册为文件夹数据存储的文件夹中为部署存储包含网络数据集的文件地理数据库或移动地理数据库,或通过为存储网络数据集的企业级地理数据库添加数据库数据存储项目。 还需要为具有管理权限的用户获取有效期大于等于 60 分钟的令牌。
示例工作流
本节介绍了如何使用文件地理数据库中的网络数据集发布路径服务。 步骤引用了某些数据路径和 URL,这与直接发布路径服务时的不同。 根据部署替换显示的数据路径和 URL。
步骤引用了在 https://dev0017162.esri.com/arcgis 上运行的 ArcGIS Enterprise on Kubernetes 部署。 路径服务从名为 Routing_ND 的网络数据集进行发布,该数据集包含在名为 NorthAmerica.gdb 的文件地理数据库中名为 Routing 的要素数据集中。
- 使用主要管理员帐户的凭证登录部署的服务目录(例如 https://dev0017162.esri.com/arcgis/rest/services)。
- 在 System 文件夹中(例如 https://dev0017162.esri.com/arcgis/rest/services/System/PublishingTools/GPServer/Publish%20Routing%20Services)浏览到“发布工具”地理处理服务的 Publishing Routing Services 端点。
- 单击位于页面底部的提交作业链接。
- 在“提交作业”Web 表单中,执行以下操作:
- 对于 networkDataset 参数,将该值指定为包含 "datastoreId" 和 "path" 属性的 JSON。 "datastoreId" 值是引用网络数据集工作空间的数据存储项目的 ID,在创建 ArcGIS Enterprise 组织过程中配置共享文件夹时进行创建。 "path" 值是数据存储中网络数据集的相对路径。 例如,如果文件共享上文件地理数据库中的网络数据集的目录路径为 /net/data/NorthAmerica.gdb/Routing/Routing_ND,并且 ID 为 3eba512c2a0841d5adcc4c83029d8bf6 的数据存储项目当前引用 /net/data,则参数值指定如下:
{ "datastoreId": "3eba512c2a0841d5adcc4c83029d8bf6", "path": "/NorthAmerica.gdb/Routing/Routing_ND" }
- 不要指定 networkDatasetExtents 参数的值。
- 对于 serviceFolder 参数,为包含由此工具创建的路径服务的服务器文件夹指定名称。
- 对于 solverTypes 参数,选择默认值,以指定工具将为所有 Network Analyst 求解器创建路径服务。
- 不要指定 configFile 参数的值。
- 对于 authenticationInfo 参数,指定身份验证信息,例如用于发布服务的令牌。 将此参数值指定为包含 "token" 属性和(可选)"referer" 属性的 JSON,后一种属性包含在生成令牌时指定的引用站点值。
警告:
如果未指定 authenticationInfo 参数值,该工具将使用已登录服务目录的用户的令牌。 在大多数情况下,该令牌将在工具完成执行之前到期,从而导致工具失败。
要获取名牌,从企业级门户调用生成令牌操作。 浏览至企业级门户(例如 https://dev0017162.esri.com/arcgis/sharing/rest/generateToken)的“生成令牌”端点,然后通过在“生成令牌”Web 表单中指定以下值生成有效期为一天的令牌:
- Username - 主要管理员的用户名。
- Password - 主要管理员的用户密码。
- Client - 选择 Web 应用程序 URL 选项,然后指定企业级门户(例如 https://dev0017162.esri.com/arcgis)的 URL。
- Expiration - 1 天。
- Format - JSON
单击生成令牌按钮。 这将生成类似以下内容的 JSON:
“生成令牌”的输出
{ "token": "Ci4vgz18Vto2bK7mXVXLOE3XREXmt4sUI-QR60jApa0-Abr9UDZCWtnphxXKcQwJzh6RnHfxnkuIqQtLMVRK5OMXuFEK2E_AQtQMfTldvMagR1pPnWCPXms13QR_kMaLo_gh9gxAAi3t7xfE8RY7xPUIY5cuqGYP-WxWRp_IUgJD29FOXvVtLLisTu1THMpF-g0hlc3W5wJJ67SHGGqm8w.D", "expires": 1635360389770, "ssl": true }
authenticationInfo 参数的值为通过在将 "referer" 属性添加至 JSON 的情况下运行 Generate Token 操作获取的 JSON。 例如,如果在生成令牌时指定了 https://dev0017162.esri.com/arcgis 作为 Web 应用程序 URL 的值,则 authenticationInfo 参数值的 JSON 应如下所示:
authenticationInfo 参数的示例值
{ "token": "Ci4vgz18Vto2bK7mXVXLOE3XREXmt4sUI-QR60jApa0-Abr9UDZCWtnphxXKcQwJzh6RnHfxnkuIqQtLMVRK5OMXuFEK2E_AQtQMfTldvMagR1pPnWCPXms13QR_kMaLo_gh9gxAAi3t7xfE8RY7xPUIY5cuqGYP-WxWRp_IUgJD29FOXvVtLLisTu1THMpF-g0hlc3W5wJJ67SHGGqm8w.D", "expires": 1635360389770, "ssl": true, "referer": "https://dev0017162.esri.com/arcgis" }
警告:
指定为 authenticationInfo 参数值的 JSON 必须包含与生成令牌时的 Web 应用程序 URL 值一致的 "referer" 属性。 否则,“发布路径服务”工具将失败并显示令牌无效错误。
- 单击提交作业 (POST) 按钮。
将开始执行“发布路径服务”工具。 工具最多可能需要一个小时完成。 要监控正在运行的工具的进度,单击再次检查作业详细信息链接查看最新的状态消息。 在工具执行时通过浏览至 URL(例如 https://dev0017162.esri.com/arcgis/rest/services/System/PublishingTools/GPServer/Publish%20Routing%20Services/jobs/jd891ca3b935d4ed9a6fd38646d31a99c)使用作业 ID 值检查状态和结果。
- 对于 networkDataset 参数,将该值指定为包含 "datastoreId" 和 "path" 属性的 JSON。 "datastoreId" 值是引用网络数据集工作空间的数据存储项目的 ID,在创建 ArcGIS Enterprise 组织过程中配置共享文件夹时进行创建。 "path" 值是数据存储中网络数据集的相对路径。 例如,如果文件共享上文件地理数据库中的网络数据集的目录路径为 /net/data/NorthAmerica.gdb/Routing/Routing_ND,并且 ID 为 3eba512c2a0841d5adcc4c83029d8bf6 的数据存储项目当前引用 /net/data,则参数值指定如下:
在工具完成后,将发布路径服务并将其配置为企业级门户中的实用程序服务。 基于组织中的预期使用情况将适当的资源分配至路径服务。