

终止支持通知： Amazon 将于 2025 年 12 月 15 日终止对的支持 Amazon IoT Analytics。2025 年 12 月 15 日之后，您将无法再访问 Amazon IoT Analytics 控制台或 Amazon IoT Analytics 资源。有关更多信息，请参阅[Amazon IoT Analytics 终止支持](https://docs.amazonaws.cn/iotanalytics/latest/userguide/iotanalytics-end-of-support.html)。

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

# 容器化笔记本
<a name="automate-containerize"></a>

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

执行高级分析函数的一个选项是使用 [Jupyter 笔记本](https://jupyter.org/)。Jupyter Notebook 提供强大的数据科学工具，可以执行机器学习和一系列统计分析。有关更多信息，请参阅[笔记本模板](https://docs.amazonaws.cn/iotanalytics/latest/userguide/quickstart.html#aws-iot-analytics-notebook-templates)。（请注意，我们目前不支持内部 JupyterLab容器化。） 您可以将 Jupyter Notebook 和库打包到一个容器中，该容器会定期在一批新数据上运行，因为这些数据是在您定义的 delta Amazon IoT Analytics 时间窗口内收到的。您可以计划使用容器和在指定时间窗口中捕获的新分段数据的分析作业，然后存储该作业的输出以用于以后的计划分析。

如果您在 2018 年 8 月 23 日之后使用 Amazon IoT Analytics 控制台创建了 SageMaker AI 实例，则容器化扩展的安装已自动完成，[您可以开始创建容器](https://docs.amazonaws.cn/iotanalytics/latest/userguide/automate.html#aws-iot-analytics-automate-containerized-image)化映像。否则，请按照本节中列出的步骤在您的 SageMaker AI 实例上启用笔记本容器化。在接下来的内容中，您将修改您的 SageMaker AI 执行角色以允许您将容器映像上传到 Amazon， EC2 然后安装容器化扩展。

## 对不是通过控制台创建的笔记本实例启用容器化 Amazon IoT Analytics
<a name="automate-containerize-notebook"></a>

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

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

1. 要授予您的笔记本实例访问 Amazon ECS 的权限，请在 SageMaker AI 页面上选择您的 SageMaker AI 实例：  
![将笔记本装入容器中。 Amazon IoT Analytics](http://docs.amazonaws.cn/iotanalytics/latest/userguide/images/containerize01.png)

1. 在 **IAM 角色 ARN** 下，选择 SageMaker AI 执行角色。  
![将笔记本装入容器中。 Amazon IoT Analytics](http://docs.amazonaws.cn/iotanalytics/latest/userguide/images/containerize02.png)

1. 选择 **Attach Policy (附加策略)**，然后定义并附加[权限](https://docs.amazonaws.cn/iotanalytics/latest/userguide/automate.html#aws-iot-analytics-automate-permissions)中显示的策略。如果尚未附加 `AmazonSageMakerFullAccess` 策略，则附加策略。  
![将笔记本装入容器中。 Amazon IoT Analytics](http://docs.amazonaws.cn/iotanalytics/latest/userguide/images/containerize03.png)

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

1. 在 Jupyter 中，选择 **新建**。  
![将笔记本装入容器中。 Amazon IoT Analytics](http://docs.amazonaws.cn/iotanalytics/latest/userguide/images/containerize04.png)

1. 在显示的菜单中，选择 **终端**。  
![将笔记本装入容器中。 Amazon IoT Analytics](http://docs.amazonaws.cn/iotanalytics/latest/userguide/images/containerize05.png)

1. 在终端内，输入以下命令来下载、解压缩和安装代码。请注意，这些命令会杀死您的笔记本在此 SageMaker AI 实例上运行的所有进程。  
![将笔记本装入容器中。 Amazon IoT Analytics](http://docs.amazonaws.cn/iotanalytics/latest/userguide/images/containerize06.png)

   ```
   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
   ```

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

## 更新笔记本容器化扩展
<a name="automate-update-notebook"></a>

如果您在 2018 年 8 月 23 日之后通过 Amazon IoT Analytics 控制台创建了 SageMaker AI 实例，则会自动安装容器化扩展。您可以通过从 SageMaker AI 控制台重启实例来更新扩展程序。如果您手动安装了扩展程序，则可以通过重新运行对未通过控制台创建的笔记本实例启用容器化中列出的终端命令来对其进行更新。 Amazon IoT Analytics 

## 创建容器化映像
<a name="automate-update-notebook-image"></a>

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

1. 在您的 Jupyter 笔记本中，选择 **New (新建)**，然后从下拉列表中选择所需内核类型。（内核类型应以 “Containerized” 开头，并以原本要选择的任何内核结尾。例如，如果只要一个像“conda\_python3”这样的纯 Python 3.0 环境，请选择“Containerized conda\_python3”）。  
![在 Amazon IoT Analytics中更新笔记本容器化扩展。](http://docs.amazonaws.cn/iotanalytics/latest/userguide/images/containerize07.png)

1. 在完成笔记本中的工作并且想要将其容器化时，请选择**容器化**按钮。  
![在 Amazon IoT Analytics中更新笔记本容器化扩展。](http://docs.amazonaws.cn/iotanalytics/latest/userguide/images/containerize08.png)

1. 输入容器化笔记本的名称。您也可以输入可选描述。  
![在 Amazon IoT Analytics中更新笔记本容器化扩展。](http://docs.amazonaws.cn/iotanalytics/latest/userguide/images/containerize09.png)

1. 指定应用于调用笔记本的 **Input Variables (输入变量)**（参数）。您可以选择从笔记本中自动检测到的输入变量，或定义自定义变量。（请注意，仅当之前已执行过笔记本时，才能检测到输入变量。） 对于每个输入变量，选择一种类型。您还可以输入输入变量的可选描述。  
![在 Amazon IoT Analytics中更新笔记本容器化扩展。](http://docs.amazonaws.cn/iotanalytics/latest/userguide/images/containerize10.png)

1. 选择应将从笔记本中创建的映像上传到的 Amazon ECR 存储库。  
![在 Amazon IoT Analytics中更新笔记本容器化扩展。](http://docs.amazonaws.cn/iotanalytics/latest/userguide/images/containerize11.png)

1. 选择 **容器化** 开始容器化过程。

   您将看到汇总输入情况的概述。请注意，容器化过程启动后便无法取消。该过程可能长达一小时。  
![在 Amazon IoT Analytics中更新笔记本容器化扩展。](http://docs.amazonaws.cn/iotanalytics/latest/userguide/images/containerize12.png)

1. 下一页将显示进度。  
![在 Amazon IoT Analytics中更新笔记本容器化扩展。](http://docs.amazonaws.cn/iotanalytics/latest/userguide/images/containerize13.png)

1. 如果您意外关闭了浏览器，则可从 Amazon IoT Analytics 控制台的**笔记本**部分监视容器化过程的状态。

1. 该过程完成后，容器化映像将存储在 Amazon ECR 中，随时可供使用。  
![在 Amazon IoT Analytics中更新笔记本容器化扩展。](http://docs.amazonaws.cn/iotanalytics/latest/userguide/images/containerize14.png)