Skip To Content

将 notebook 发布为 Web 工具

ArcGIS Notebooks 允许您将 notebook 发布为 Web 工具。 具有发布 web 工具权限的管理员和 notebook 创作者可以将自己拥有的 notebook 发布为 web 工具。 将 notebook 发布为 web 工具时,将在 ArcGIS Notebook Server 计算机上创建异步地理处理服务并将其注册为 web 工具。 Notebook 和 web 工具之间是一对一的关系,即针对每个 notebook 只能发布一个 web 工具,且系统将为网络工具项目分配与父 notebook 相同的共享权限。 任何可以使用 RESTful 异步地理处理服务的客户端应用程序都可以使用 Web 工具。

运行时版本为 6.0 或更高版本的 notebook 支持将 notebook 发布为 web 工具。 要检查 notebook 的运行时信息,请单击 notebook 编辑器顶部功能区或 notebook 项目页面上的设置选项卡中的信息按钮。 有关 notebook 运行时的详细信息,请参阅查看可用 Python

通过 notebook 编辑器,您可以为 notebook 配置输入和输出参数。 输入参数对应于 notebook 中的输入变量,当 notebook 作为 Web 工具运行时,您希望将这些输入变量具体化以供用户输入。 输出参数表示您希望作为 Web 工具输出返回的 notebook 中的输出变量。 当您注册一个或多个输入或输出变量并发布 notebook 时,这些参数将可用作相应 Web 工具的输入或输出参数。

注:

将 notebook 发布为 Web 工具时,不需要定义输入或输出参数。 例如,使用预定义的输入和输出(例如由 itemId 引用的要素图层)执行任务的 notebook 可能不需要输入或输出参数。

注:

支持以下数据类型作为输入或输出参数:字符串型、长整型、双精度型。布尔型、要素集、记录集、日期和线性单位。 有关详细信息,请参阅 ArcGIS Notebook Server REST API 文档中的地理处理服务数据类型

当 Web 工具运行时,ArcGIS Notebook Server 将打开一个新容器并在没有任何用户交互的情况下运行 notebook,从而在 notebook 服务器计算机上自动运行 notebook。 具有 notebook 权限并与其共享 notebook 的用户能够访问和运行 Web 工具。 除了所需的 notebook 权限外,还需要运行 notebook 所需的所有其他权限。 有关权限的详细信息,请参阅用户类型、角色和权限主题。

注:

在创作要作为 Web 工具共享的Notebook时,如果Notebook从您的工作区目录中引用文件作为输入数据,则与之共享Notebook或 Web 工具的其他人不可以访问这些文件。 如果您有需要在 notebook 中作为输入数据引用的文件,您可以通过 Portal for ArcGIS 中的共享门户项目引用该文件,或者从注册到 ArcGIS Notebook Server 的自定义数据目录上传和引用该文件。

默认情况下,ArcGIS Notebook Server 配置为可在每台 ArcGIS Notebook Server 计算机上最多同时运行 10 个非交互式 notebook。 包括由 Web 工具、计划任务、executeNotebook API 和 webhook 触发器触发的运行。 如有必要,管理员可以增加此限制。

注:

如果您在 notebook 编辑器中没有看到参数发布选项,则您可能不具有发布 Web 工具的权限,或者并非 notebook 的所有者。 如果您在新创建的 notebook 中,则在保存 notebook 之前不会显示参数发布选项。

配置输入参数

输入参数表示Notebook中的输入变量,当Notebook作为 Web 工具运行时,这些变量将被具体化。 使用 notebook 编辑器中的参数窗格,您可以配置输入参数并将其作为变量添加到 notebook 中。

  1. 在 notebook 编辑器中,单击参数
  2. 单击添加
  3. 选择方向的输入。
  4. 变量名称提供名称。

    注:
    此名称必须与 notebook 代码中或已在 notebook 中配置的变量名称匹配。

  5. 为 Web 工具参数提供显示名称
  6. 数据类型下拉菜单中,选择输入参数的数据类型。
  7. 为输入参数提供 Default value 值。 有关支持的数据类型默认值的语法,请参阅地理处理服务数据类型
  8. 对于 Description,提供输入参数的描述。
  9. 单击保存以保存输入参数。
  10. 要添加其他输入参数,请重复步骤 1 到 9。
  11. 添加所有输入参数后,在 notebook 中选择要插入参数的单元格,然后单击插入为变量
  12. 单击保存以保存 notebook。

配置输出参数

您可以通过从 notebook 编辑器的参数窗格中配置输出参数来配置发布为 Web 工具的 notebook 的输出。

  1. 在 notebook 编辑器中,单击参数
  2. 单击添加
  3. Direction 参数选择输出。
  4. Variable name 提供名称。

    注:
    此名称必须与 notebook 代码中或已在 notebook 中配置的变量名称匹配。

  5. 为 Web 工具参数提供 Display name 名称。
  6. Data type 下拉菜单中,选择输出参数的数据类型。
  7. 为输出参数提供 Default value 值。 有关支持的数据类型默认值的语法,请参阅地理处理服务数据类型
  8. 对于 Description,输入输出参数的描述。
  9. 单击保存以保存输出参数。
  10. 在 notebook 中选择一个单元格。 单击添加按钮添加 Python 代码片段,以编写 Web 工具的输出。

    建议您选择 notebook 底部附近的单元格,在创建输出的单元格下方。

  11. 检查添加的代码片段以确保输出变量名称与 notebook 中定义的输出匹配,并对代码片段进行任意其他调整。
  12. 对所有其他输出参数重复步骤 1 到 11。
  13. 单击保存以保存 notebook。

发布 Web 工具

您可以从 notebook 编辑器的发布窗格将 notebook 发布为 Web 工具。

  1. 保存您的 notebook 以确保发布了该 notebook 的最新副本。
  2. 以交互方式手动运行 notebook 的单元格以确保不存在错误。
  3. 注:
    跳过包含输出参数代码片段的单元格,因为它们不在交互模式下运行。
  4. 在 notebook 编辑器功能区上,单击发布
  5. 发布窗格的 TitleDescription 字段中提供 Web 工具的标题和描述。
  6. 验证所有输入和输出参数。
  7. 单击发布以将 notebook 发布为 Web 工具。
  8. 成功发布 Web 工具后,单击查看详细信息以查看 Web 工具的项目详细信息页面。

覆盖 Web 工具

覆盖 Web 工具将更新 Web 工具以使用该Notebook的最新快照。 您可以在Notebook编辑器的发布窗格中覆盖Notebook Web 工具。

  1. 如果需要更新现有输入或输出参数,请按照本主题的编辑现有输入或输出参数部分中的步骤进行操作。
  2. 如果要添加新输入或输出参数,请按照本主题的配置输入参数配置输出参数部分中的步骤进行操作。
  3. 单击保存以确保发布了该Notebook的最新副本。
  4. 手动运行Notebook中的各单元格以确保不存在错误。

    注:
    不要运行包含输出参数代码片段的单元格,因为它们不会在交互模式下运行。

  5. 单击发布
  6. 单击覆盖以覆盖 Web 工具。

删除 Web 工具

您可以通过删除 Web 工具项目来删除从 notebook 发布的地理处理服务。

  1. 在 notebook 编辑器的顶部功能区上,单击发布
  2. 单击查看详细信息以查看 Web 工具的项目详细信息页面。
  3. 单击设置
  4. 单击删除项目并确认您想要移除发布在 ArcGIS Notebook Server 上的 Web 工具项目和地理处理服务。

编辑现有输入或输出参数

您可以从 notebook 编辑器的参数窗格更改现有输入或输出参数。

注:

如果 notebook 已作为 Web 工具发布,则必须先单击参数窗格中的启用编辑切换按钮,然后才能更改参数。 在将 notebook 发布为 Web 工具后,更改参数时要格外谨慎,因为这些更改可能会破坏某些使用 Web 工具的 Web 应用程序。

  1. 在 notebook 编辑器的顶部功能区上,单击参数
  2. 单击参数旁边的选项按钮,然后单击编辑
  3. 更新参数并单击保存
    1. 如果输入参数已更新,请手动清除或移除包含输入变量的现有单元格,然后重复该步骤以将输入参数作为变量插入 notebook 中。
    2. 如果输入参数已更新,请手动清除与输出变量对应的代码片段,然后重复步骤以将输出参数的代码片段添加到 notebook 中。
  4. 单击保存以保存 notebook。

删除现有输入或输出参数

您可以从参数窗格中删除现有的输入或输出参数。

  1. 在 notebook 编辑器的顶部功能区上,单击参数
  2. 单击参数旁边的选项按钮,然后单击删除
  3. 单击删除以永久移除参数。
  4. 手动清除或移除 notebook 中的输入变量或输出代码片段。
  5. 单击保存以保存 notebook。

使用地图范围

当在 Map Viewer 经典版 中运行 web 工具时,地图范围将作为名为 contextPython 变量与其他输入参数一起传递到 notebook 中,如下所示。

context = {
    "extent": {
        "ymin": -25203428.462408017,
        "xmin": -46101923.491795965,
        "ymax": 25203428.462407943,
        "xmax": 46101923.491795965,
        "spatialReference": {
            "wkt": "PROJCS[\"WGS_1984_Web_Mercator_Auxiliary_Sphere\",GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137.0,298.257223563]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Mercator_Auxiliary_Sphere\"],PARAMETER[\"False_Easting\",0.0],PARAMETER[\"False_Northing\",0.0],PARAMETER[\"Central_Meridian\",0],PARAMETER[\"Standard_Parallel_1\",0.0],PARAMETER[\"Auxiliary_Sphere_Type\",0.0],UNIT[\"Meter\",1.0]]"
        },
    }
}

您可以使用 context 变量的值来设置 notebook 中空间分析工作流的范围。 要在将 notebook 发布为 web 工具之前使用地图范围测试空间分析工作流,需使用默认值声明 context 变量。

准备好发布后,将输入参数作为变量插入到声明 context 变量的像元之后。

Web 工具的疑难解答

将Notebook发布为 Web 工具后,您可以从 ArcGIS Notebook Server 服务目录运行任务以验证 Web 工具是否成功运行。

  1. 在 Web 浏览器中,打开 ArcGIS Notebook Server 服务目录 https://notebookserver.domain.com/webadaptorcontext/rest/services
  2. 以 Web 工具所有者身份登录。
  3. 识别服务并浏览到任务页面。
  4. 单击提交作业
  5. 提供任意输入参数然后单击提交作业
  6. 或者,单击再次检查作业详细信息链接以检查作业的状态。

    如果 Web工具成功完成,则会提供指向输出的链接。 对于成功和失败的运行,notebook 运行的 HTML 预览都会默认作为输出提供。

  7. 下载并查看Notebook的 HTML 预览,以验证 Web 工具的运行是否存在任何问题。
  8. 如果 Web 工具失败,请确认 notebook 在 notebook 编辑器中可成功运行。