ArcGIS Notebooks 允许您将笔记本发布为 Web 工具。 具有发布 Web 工具权限的管理员和笔记本作者可以将他们拥有的笔记本发布为 Web 工具。 将 Notebook 发布为 Web 工具时,将创建异步地理处理服务并将其注册为 Web 工具。 笔记本和 Web 工具之间存在一对一关系,这意味着每个笔记本只能发布一个 Web 工具。 任何可以使用 RESTful 异步地理处理服务的客户端应用程序都可以使用 Web 工具。
运行时版本为 6.0 或更高版本的笔记本支持将笔记本发布为 web 工具。 要检查笔记本的运行时信息,请单击笔记本编辑器顶部功能区或笔记本项目详细信息页面上的设置选项卡中的信息按钮。 有关笔记本运行时的详细信息,请参阅查看可用 Python 库。
通过 notebook 编辑器,您可以为 notebook 配置输入和输出参数。 输入参数对应于笔记本中的输入变量,当笔记本作为 Web 工具运行时,您希望将这些输入变量具体化以供用户输入。 输出参数表示您希望作为 Web 工具输出返回的笔记本中的输出变量。 当您注册一个或多个输入或输出变量并发布笔记本时,这些参数将可用作相应 Web 工具的输入或输出参数。
注:
将笔记本发布为 Web 工具时,不需要定义输入或输出参数。 例如,使用预定义的输入和输出(例如由 itemId 引用的要素图层)执行任务的笔记本可能不需要输入或输出参数。
注:
支持以下数据类型作为输入或输出参数:字符串、长整型、双精度型、布尔型、要素集、记录集、日期、线性单位、栅格数据图层和文件。 有关详细信息,请参阅 ArcGIS REST API 文档中的地理处理服务数据类型。
当 Web 工具运行时,ArcGIS Notebooks 打开一个新容器并在没有用户交互的情况下运行 Notebook,从而自动运行 Notebook。 具有运行 web 工具权限并与其共享 web 工具的用户能够访问和运行 Web 工具。 除了所需的运行 web 工具权限外,还需要运行笔记本所需的所有其他权限。 有关权限的详细信息,请参阅用户类型、角色和权限主题。
注:
在创作要作为 Web 工具共享的笔记本时,如果笔记本从您的工作区目录中引用文件作为输入数据,则与之共享笔记本或 Web 工具的其他人不可以访问这些文件。 如果您有一个文件需要在 Notebook 中引用作为输入数据,则可以通过 ArcGIS 内容中的共享项目引用该文件。
注:
如果您在笔记本编辑器中没有看到参数或发布选项,则您可能不具有发布 Web 工具的权限,或者并非笔记本的所有者。 如果您在新创建的笔记本中,则在保存笔记本之前不会显示参数和发布选项。
配置输入参数
输入参数表示笔记本中的输入变量,当笔记本作为 Web 工具运行时,这些变量将被具体化。 使用笔记本编辑器中的参数窗格,您可以配置输入参数并将其作为变量添加到笔记本中。
- 在笔记本编辑器中,单击参数。
- 单击添加。
- 选择方向的输入。
- 为变量名称输入名称。
注:
此名称必须与笔记本代码中或已在笔记本中配置的变量名称匹配。 - 为 Web 工具参数输入显示名称。
- 从数据类型下拉菜单中,选择输入参数的数据类型。
- 为输入参数输入默认值的值。 有关支持的数据类型默认值的语法,请参阅地理处理服务数据类型。
- 对于描述,输入输入参数的描述。
- 单击保存以保存输入参数。
- 要添加更多输入参数,请重复步骤 1 到 9。
- 添加所有输入参数后,在笔记本中选择要插入参数的单元格,然后单击插入为变量。
- 单击保存以保存笔记本。
配置输出参数
您可以通过从笔记本编辑器的参数窗格中配置输出参数来配置发布为 Web 工具的笔记本的输出。
- 在笔记本编辑器中,单击参数。
- 单击添加。
- 选择方向参数的输出。
- 为变量名称输入名称。
注:
此名称必须与笔记本代码中或已在笔记本中配置的变量名称匹配。 - 为 Web 工具参数输入显示名称。
- 从数据类型下拉菜单中,选择输出参数的数据类型。
- 为输出参数输入默认值的值。 有关支持的数据类型默认值的语法,请参阅地理处理服务数据类型。
- 对于描述,输入输出参数的描述。
- 单击保存以保存输出参数。
- 在笔记本中选择一个单元格。 单击添加按钮添加 Python 代码片段,以编写 Web 工具的输出。
建议您选择笔记本底部附近的单元格,在创建输出的单元格下方。
- 检查添加的代码片段以确保输出变量名称与笔记本中定义的输出匹配,并对代码片段进行任意其他调整。
- 对所有其他输出参数重复步骤 1 到 11。
- 单击保存以保存笔记本。
发布 Web 工具
您可以从笔记本编辑器的发布窗格将笔记本发布为 Web 工具。
- 保存您的笔记本以确保发布了该笔记本的最新副本。
- 以交互方式手动运行笔记本的单元格以确保不存在错误。
- 在笔记本编辑器功能区上,单击发布。
- 在发布窗格的标题和描述字段中输入 Web 工具的标题和描述。
- 在最长使用时间字段中指定一个数字。 这是 Web 工具可以继续运行的分钟数,系统将在超时后取消运行。 允许的最长超时时间值为 100 分钟
- 验证所有输入和输出参数。
- 单击发布以将笔记本发布为 Web 工具。
- 成功发布 Web 工具后,单击查看详细信息以查看 Web 工具的项目详细信息页面。
- 单击共享以打开共享窗口。
- 选择组织将 web 工具与组织的所有用户共享。
- 单击编辑群组共享与特定群组共享 Web 工具。
- 选择您想要共享的群组。
- 单击确定。
- 单击保存。
注:
跳过包含输出参数代码片段的单元格,因为它们不在交互模式下运行。共享 Web 工具
要与您的组织或组织中的特定群组共享或更新现有笔记本 Web 工具的共享设置,请按照以下步骤操作。
注:
共享 Web 工具的用户必须具有运行 Web 工具权限以及运行 Notebook 所需的任何其他权限,才能运行共享的 Web 工具。
- 验证您是否已登录 ArcGIS Online 并具有足够的权限与您的组织共享内容。
- 单击内容。
- 选中要共享的 Web 工具标题旁的框。
- 单击共享。
- 选择组织将 web 工具与组织的所有用户共享。
- 单击编辑群组共享与特定群组共享 Web 工具。
- 选择您想要共享的群组。
- 单击确定。
- 单击保存。
覆盖 Web 工具
覆盖 Web 工具将更新 Web 工具以使用该 Notebook 的最新快照。 您可以在 Notebook 编辑器的发布窗格中覆盖 Notebook Web 工具。
- 如果需要更新现有输入或输出参数,请按照本主题的编辑现有输入或输出参数部分中的步骤进行操作。
- 如果要添加新输入或输出参数,请按照本主题的配置输入参数或配置输出参数部分中的步骤进行操作。
- 单击保存以确保发布了该 Notebook 的最新副本。
- 手动运行 Notebook 中的各单元格以确保不存在错误。
注:
不要运行包含输出参数代码片段的单元格,因为它们不会在交互模式下运行。 - 单击发布。
- 单击覆盖以覆盖 Web 工具。
删除 Web 工具
通过删除 Web 工具项目可删除从 Notebook 发布的 Web 工具项目。
- 在笔记本编辑器的顶部功能区上,单击发布。
- 单击查看详细信息以查看 Web 工具的项目详细信息页面。
- 单击设置。
- 单击删除项目并确认您想要移除的 Web 工具项目
注:
如果删除发布 Web 工具的 Notebook 项目,则该 Web 工具项也将被删除。
编辑现有输入或输出参数
您可以从笔记本编辑器的参数窗格更改现有输入或输出参数。
注:
如果笔记本已作为 Web 工具发布,则必须先打开参数窗格中的启用编辑切换按钮,然后才能更改参数。 在将笔记本发布为 Web 工具后,更改参数时要格外谨慎,因为这些更改可能会破坏某些使用 Web 工具的 Web 应用程序。
- 在笔记本编辑器的顶部功能区上,单击参数。
- 单击参数旁边的选项按钮,然后单击编辑。
- 更新参数并单击保存。
- 如果输入参数已更新,请手动清除或移除包含输入变量的现有单元格,然后重复该步骤以将输入参数作为变量插入笔记本中。
- 如果输入参数已更新,请手动清除与输出变量对应的代码片段,然后重复步骤以将输出参数的代码片段添加到笔记本中。
- 单击保存以保存笔记本。
删除现有输入或输出参数
您可以从参数窗格中删除现有的输入或输出参数。
- 在笔记本编辑器的顶部功能区上,单击参数。
- 单击参数旁边的选项按钮,然后单击删除。
- 单击删除以永久移除参数。
- 手动清除或移除笔记本中的输入变量或输出代码片段。
- 单击保存以保存笔记本。
使用地图范围
当您在 Map Viewer 中运行 Web 工具时,如果修改处理范围和输出坐标系,修改值将作为名为 context 的 Python 变量和其他输入参数一起传递到 Notebook 中,如下所示。
context = {
"extent": {
"ymin": 1759249.9654418486,
"xmin": 6481923.176042713,
"ymax": 1795442.256243616,
"xmax": 6531137.243576055,
"spatialReference": {"latestWkid": 2229, "wkid": 102645},
},
"outSR": {"latestWkid": 4269},
}
您可以使用 context 变量的值来设置 Notebook 中空间分析工作流的范围和输出坐标系。 要在将 Notebook 发布为 web 工具之前测试空间分析工作流,需使用默认值声明 context 变量。
准备好发布后,将输入参数作为变量插入到声明 context 变量的像元之后。