容器化笔记本 - Amazon IoT Analytics
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

容器化笔记本

本节包含有关如何使用 Jupyter notebook 构建 Docker 容器的信息。如果重复使用第三方构建的笔记本,则存在安全风险:包含的容器可能使用您的用户权限执行任意代码。此外,笔记本生成的 HTML 可能显示在 Amazon IoT Analytics 控制台中,从而在显示 HTML 的计算机上提供潜在的攻击媒介。在使用之前,请确保您信任任何第三方笔记本的作者。

执行高级分析函数的一个选项是使用 Jupyter 笔记本。Jupyter Notebook 提供强大的数据科学工具,可以执行机器学习和一系列统计分析。有关更多信息,请参阅笔记本模板。(请注意,我们目前在 JupyterLab 中不支持容器化。) 您可以将 Jupyter Notebook 和库打包到一个容器中,当 Amazon IoT Analytics 在您定义的增量时间窗口内收到一批新数据时,该库将针对新数据定期运行。您可以计划使用容器和在指定时间窗口中捕获的新分段数据的分析作业,然后存储该作业的输出以用于以后的计划分析。

如果您在 2018 年 8 月 23 日以后使用Amazon IoT Analytics 控制台创建了 SageMaker 实例,则会自动为您安装容器化扩展,并且您可以开始创建容器化映像。否则,请按照本节中列出的步骤来对 SageMaker 实例启用笔记本容器化。接下来,您修改 SageMaker 执行角色,以允许将容器映像上传到 Amazon EC2 并安装容器化扩展。

对不是通过 Amazon IoT Analytics 控制台创建的笔记本实例启用容器化

建议您通过 Amazon IoT Analytics 控制台而非以下步骤创建新的 SageMaker 实例。新实例将自动支持容器化。

如果在启用容器化后重新启动 SageMaker 实例(如此处所示),则不必重新添加 IAM 角色和策略,但必须重新安装扩展,如最后一步中所示。

  1. 要向笔记本实例授予对 Amazon ECS 的访问权限,请在 SageMaker 页面上选择您的 SageMaker 实例:

    
              在 Amazon IoT Analytics 中将笔记本容器化。
  2. IAM 角色 ARN 下,选择 SageMaker 执行角色。

    
              在 Amazon IoT Analytics 中将笔记本容器化。
  3. 选择 Attach Policy (附加策略),然后定义并附加权限中显示的策略。如果尚未附加 AmazonSageMakerFullAccess 策略,则附加策略。

    
              在 Amazon IoT Analytics 中将笔记本容器化。

您还必须从 Amazon S3 下载容器化代码并将其安装在您的笔记本实例中,第一步是访问 SageMaker 实例的终端。

  1. 在 Jupyter 中,选择 新建

    
              在 Amazon IoT Analytics 中将笔记本容器化。
  2. 在显示的菜单中,选择 终端

    
              在 Amazon IoT Analytics 中将笔记本容器化。
  3. 在终端内,输入以下命令来下载、解压缩和安装代码。请注意,这些命令终止您的笔记本在该 SageMaker 实例上运行的任何进程。

    
              在 Amazon IoT Analytics 中将笔记本容器化。
    cd /tmp aws s3 cp s3://iotanalytics-notebook-containers/iota_notebook_containers.zip /tmp unzip iota_notebook_containers.zip cd iota_notebook_containers chmod u+x install.sh ./install.sh

    等待一两分钟,以便对扩展进行验证和安装。

更新笔记本容器化扩展

如果您在 2018 年 8 月 23 日之后使用 Amazon IoT Analytics 控制台创建了 SageMaker 实例,则已自动安装容器化扩展。您可以通过从 SageMaker 控制台重新启动实例来更新扩展。如果您是手动安装的扩展,则可通过重新运行“对不是通过 Amazon IoT Analytics 控制台创建的笔记本实例启用容器化”中列出的命令来更新该扩展。

创建容器化映像

在本节中,我们将演示实现笔记本容器化所需的步骤。首先,请转至您的 Jupyter 笔记本,创建具有容器化内核的笔记本。

  1. 在您的 Jupyter 笔记本中,选择 New (新建),然后从下拉列表中选择所需内核类型。(内核类型应以 “Containerized” 开头,并以原本要选择的任何内核结尾。例如,如果只要一个像“conda_python3”这样的纯 Python 3.0 环境,请选择“Containerized conda_python3”)。

    
              在 Amazon IoT Analytics 中更新笔记本容器化扩展。
  2. 在完成笔记本中的工作并且想要将其容器化时,请选择 容器化 按钮:

    
              在 Amazon IoT Analytics 中更新笔记本容器化扩展。
  3. 输入容器化笔记本的名称。您也可以输入可选描述。

    
              在 Amazon IoT Analytics 中更新笔记本容器化扩展。
  4. 指定应用于调用笔记本的 Input Variables (输入变量)(参数)。您可以选择从笔记本中自动检测到的输入变量,或定义自定义变量。(请注意,仅当之前已执行过笔记本时,才能检测到输入变量。) 对于每个输入变量,选择一种类型。您还可以输入输入变量的可选描述。

    
              在 Amazon IoT Analytics 中更新笔记本容器化扩展。
  5. 选择应将从笔记本中创建的映像上传到的 Amazon ECR 存储库。

    
              在 Amazon IoT Analytics 中更新笔记本容器化扩展。
  6. 选择 容器化 开始容器化过程。

    您将看到汇总输入情况的概述。请注意,容器化过程启动后便无法取消。该过程可能长达一小时。

    
              在 Amazon IoT Analytics 中更新笔记本容器化扩展。
  7. 下一页将显示进度。

    
              在 Amazon IoT Analytics 中更新笔记本容器化扩展。
  8. 如果您意外关闭了浏览器,则可从 Amazon IoT Analytics 控制台的笔记本部分监视容器化过程的状态。

  9. 该过程完成后,容器化映像将存储在 Amazon ECR 中,随时可供使用。

    
              在 Amazon IoT Analytics 中更新笔记本容器化扩展。