Skip To Content

将笔记本发布为 Web 工具

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

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

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

注:

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

注:

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

当 Web 工具运行时,ArcGIS Notebook Server 将打开一个新容器并在没有任何用户交互的情况下运行笔记本,从而在笔记本服务器计算机上自动运行笔记本。 具有笔记本权限并与其共享笔记本的用户能够访问和运行 Web 工具。 除了所需的笔记本权限外,还需要运行笔记本所需的所有其他权限。

注:

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

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

注:

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

配置输入参数

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

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

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

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

配置输出参数

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

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

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

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

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

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

发布 Web 工具

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

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

删除 Web 工具

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

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

编辑现有输入或输出参数

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

注:

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

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

删除现有输入或输出参数

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

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

使用地图范围

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

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 变量的值来设置笔记本中空间分析工作流的范围。 要在将笔记本发布为 web 工具之前使用地图范围测试空间分析工作流,需使用默认值声明 context 变量。

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

Web 工具的疑难解答

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

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

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

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