容器化笔记本 - AWS IoT Analytics

AWS IoT Analytics 不再向新客户提供。的现有客户 AWS IoT Analytics 可以继续照常使用该服务。了解更多

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

容器化笔记本

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

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

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

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

我们建议您通过 AWS IoT Analytics 控制台创建新的 SageMaker AI 实例,而不是按照以下步骤操作。新实例将自动支持容器化。

如果您在启用容器化后重启 SageMaker AI 实例(如下所示),则无需重新添加 IAM 角色和策略,但必须重新安装扩展,如最后一步所示。

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

    将笔记本装入容器中。 AWS IoT Analytics
  2. IAM 角色 ARN 下,选择 SageMaker AI 执行角色。

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

    将笔记本装入容器中。 AWS IoT Analytics

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

  1. 在 Jupyter 中,选择 新建

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

    将笔记本装入容器中。 AWS IoT Analytics
  3. 在终端内,输入以下命令来下载、解压缩和安装代码。请注意,这些命令会杀死您的笔记本在此 SageMaker AI 实例上运行的所有进程。

    将笔记本装入容器中。 AWS 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 日之后通过 AWS IoT Analytics 控制台创建了 SageMaker AI 实例,则会自动安装容器化扩展。您可以通过从 SageMaker AI 控制台重启实例来更新扩展程序。如果您手动安装了扩展程序,则可以通过重新运行对未通过控制台创建的笔记本实例启用容器化中列出的终端命令来对其进行更新。 AWS IoT Analytics

创建容器化映像

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

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

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

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

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

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

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

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

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

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

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

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