本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Docker 容器中运行 AWS IoT Greengrass Core 软件
可以将 AWS IoT Greengrass 配置为在 Docker 容器中运行。Docker 是一个平台,为您提供了构建、运行、测试和部署基于 Linux 容器的应用程序的工具。运行 AWS IoT Greengrass Docker 映像时,您可以选择是否向 Docker 容器提供 AWS 凭证,并允许 AWS IoT Greengrass Core 软件安装程序自动预置 Greengrass 核心设备运行所需的 AWS 资源。如果您不想提供 AWS 凭证,则可以手动预置 AWS 资源并在 Docker 容器中运行 AWS IoT Greengrass Core 软件。
主题
支持的平台和要求
主机必须满足以下最低要求才能在 Docker 容器中安装并运行 AWS IoT Greengrass Core 软件:
-
支持互联网连接的基于 Linux 的操作系统。
-
Docker Engine
18.09 版本或更高版本。 -
(可选)Docker Compose
1.22 版本或更高版本。只有当您想使用 Docker Compose CLI 来运行 Docker 映像时,才需要 Docker Compose。
要在 Docker 容器内运行 Lambda 函数组件,必须配置容器以满足其它要求。有关更多信息,请参阅Lambda 函数要求。
在进程模式下运行组件
AWS IoT Greengrass 不支持在 AWS IoT Greengrass Docker 容器内的隔离运行时环境中运行 Lambda 函数或 AWS 提供的组件。您必须在没有任何隔离的情况下在进程模式下运行这些组件。
配置 Lambda 函数组件时,请将隔离模式设置为无容器。有关更多信息,请参阅运行 AWS Lambda 函数。
部署 AWS 提供的以下任意组件时,请更新每个组件的配置,以将 containerMode
参数设置为 NoContainer
。有关配置更新的更多信息,请参阅更新组件配置。
AWS IoT Greengrass Docker 软件下载
AWS IoT Greengrass 提供了 Dockerfile,以构建具有安装在 Amazon Linux 2(x86_64)基本映像上的 AWS IoT Greengrass Core 软件和依赖关系的容器映像。您可以修改 Dockerfile 中的基本映像,以在不同的平台架构上运行 AWS IoT Greengrass。
从 GitHub
Dockerfile 使用的是旧版本的 Greengrass。您应该更新文件,以使用您需要的 Greengrass 版本。有关从 Dockerfile 构建 AWS IoT Greengrass 容器映像的信息,请参阅通过 Dockerfile 构建 AWS IoT Greengrass 容器映像。
选择如何预置 AWS 资源
在 Docker 容器中安装 AWS IoT Greengrass Core 软件时,您可以选择是自动预置 Greengrass 核心设备运行所需的 AWS 资源,还是使用手动预置的资源。
-
自动资源预置 – 当您首次运行 AWS IoT Greengrass 容器映像时,安装程序会预置 AWS IoT 事物、AWS IoT 事物组、IAM 角色和 AWS IoT 角色别名。安装程序还可以将本地开发工具部署到核心设备,因此您可以使用该设备开发和测试自定义软件组件。要选择自动预置这些资源,您必须向 Docker 映像提供 AWS 凭证作为环境变量。
要使用自动预置,您必须设置 Docker 环境变量
PROVISION=true
并挂载凭证文件,才能为容器提供 AWS 凭证。 -
手动资源预置 – 如果您不想为容器提供 AWS 凭证,则可以在运行 AWS IoT Greengrass 容器映像之前手动预置 AWS 资源。您必须创建配置文件,才能向 Docker 容器内的 AWS IoT Greengrass Core 软件安装程序提供有关这些资源的信息。
要使用手动预置,您必须设置 Docker 环境变量
PROVISION=false
。手动预置是默认选项。
有关更多信息,请参阅通过 Dockerfile 构建 AWS IoT Greengrass 容器映像。