配置Amazon IoT Greengrass核心软件 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

配置Amazon IoT Greengrass核心软件

这些区域有:Amazon IoT Greengrass核心软件提供可用于配置软件的选项。您可以创建部署来配置Amazon IoT Greengrass每个核心设备上的核心软件。

部署 Greengrass 核心组件

Amazon IoT Greengrass提供Amazon IoT Greengrass核心软件作为一个组件,您可以将其部署到您的 Greengrass 核心设备上。您可以创建部署,将相同的配置应用于多个 Greengrass 核心设备。有关更多信息,请参阅 Greengrass更新Amazon IoT Greengrass核心软件 (OTA)

将 Greengrass 核心配置为系统服务

您必须配置Amazon IoT Greengrass将核心软件作为系统服务在设备的初始系统中执行以下操作:

  • 启动Amazon IoT Greengrass设备启动时的核心软件。如果您管理大量设备,这是一种很好的做法。

  • 安装并运行插件组件。几个Amazon-提供的组件是插件组件,这使它们能够直接与 Greengrass 核心接口。有关组件类型的更多信息,请参阅组件类型.

  • 申请 over-the-air (OTA) 更新核心设备的Amazon IoT Greengrass核心软件。有关更多信息,请参阅 更新Amazon IoT Greengrass核心软件 (OTA)

  • 允许组件重新启动Amazon IoT Greengrass部署将组件更新到新版本或更新某些配置参数时的核心软件或核心设备。有关更多信息,请参阅 。引导生命周期步骤.

重要

在 Windows 核心设备上,您必须设置Amazon IoT Greengrass核心软件即系统服务。

将核心配置为系统服务 (Linux)

Linux 设备支持不同的初始化系统,例如 initd、systemd 和 SystemV。您将--setup-system-service true安装时的参数Amazon IoT Greengrass核心软件,用于将 nucleus 作为系统服务启动,并将其配置为在设备启动时启动。安装程序配置Amazon IoT Greengrass使用 systemd 将核心软件作为系统服务。

您也可以手动配置 nucleus 作为系统服务运行。以下示例是 systemd 的服务文件。

[Unit] Description=Greengrass Core [Service] Type=simple PIDFile=/greengrass/v2/alts/loader.pid RemainAfterExit=no Restart=on-failure RestartSec=10 ExecStart=/bin/sh /greengrass/v2/alts/current/distro/bin/loader [Install] WantedBy=multi-user.target

有关如何创建和启用 Raspbery 上的 system 服务文件的信息,请参阅syemd 守护程序在 Raspberry Pi 文档中。

配置系统服务后,可以运行以下命令来配置在启动时启动设备以及启动或停止Amazon IoT Greengrass核心软件。

  • 检查服务状态(systemd)

    sudo systemctl status greengrass.service
  • 使核心能够在设备启动时启动。

    sudo systemctl enable greengrass.service
  • 在设备启动时阻止核启动。

    sudo systemctl disable greengrass.service
  • 启动Amazon IoT Greengrass核心软件。

    sudo systemctl start greengrass.service
  • 停止Amazon IoT Greengrass核心软件。

    sudo systemctl stop greengrass.service

将核心配置为系统服务 (Windows)

您将--setup-system-service true安装时的参数Amazon IoT Greengrass核心软件将核心作为 Windows 服务启动,并将其配置为在设备启动时启动。

配置服务后,您可以运行以下命令来配置在启动时启动设备以及启动或停止Amazon IoT Greengrass核心软件。你必须运行命令提示符或 PowerShell 以管理员身份运行这些命令。

Windows Command Prompt (CMD)
  • 检查服务状态

    sc query "greengrass"
  • 使核心能够在设备启动时启动。

    sc config "greengrass" start=auto
  • 在设备启动时阻止核启动。

    sc config "greengrass" start=disabled
  • 启动Amazon IoT Greengrass核心软件。

    sc start "greengrass"
  • 停止Amazon IoT Greengrass核心软件。

    sc stop "greengrass"
    注意

    在 Windows 设备上,Amazon IoT Greengrass核心软件在关闭 Greengrass 组件进程时会忽略此关闭信号。如果Amazon IoT Greengrass当你运行此命令时,核心软件会忽略关机信号,等待几秒钟,然后重试。

PowerShell
  • 检查服务状态

    Get-Service -Name "greengrass"
  • 使核心能够在设备启动时启动。

    Set-Service -Name "greengrass" -Status stopped -StartupType automatic
  • 在设备启动时阻止核启动。

    Set-Service -Name "greengrass" -Status stopped -StartupType disabled
  • 启动Amazon IoT Greengrass核心软件。

    Start-Service -Name "greengrass"
  • 停止Amazon IoT Greengrass核心软件。

    Stop-Service -Name "greengrass"
    注意

    在 Windows 设备上,Amazon IoT Greengrass核心软件在关闭 Greengrass 组件进程时会忽略此关闭信号。如果Amazon IoT Greengrass当你运行此命令时,核心软件会忽略关机信号,等待几秒钟,然后重试。

使用 JVM 选项控制内存分配

如果您正在运行Amazon IoT Greengrass在内存有限的设备上,您可以使用 Java 虚拟机 (JVM) 选项来控制最大堆大小、垃圾回收模式和编译器选项,后者控制内存量Amazon IoT Greengrass核心软件用途。JVM 中的堆大小决定了应用程序以前可以使用多少内存垃圾收集发生,或者在应用程序内存耗尽之前。最大堆大小指定了在占用大量内存的活动期间扩展堆时,JVM 可分配的最大内存量。

要控制内存分配,请创建新部署或修改包含 nucleus 组件的现有部署,然后在jvmOptions中的配置参数Nucleus 组件配置.

根据你的要求,你可以运行Amazon IoT Greengrass减少内存分配或最小内存分配的核心软件。

内存分配减少

运行Amazon IoT Greengrass减少内存分配的核心软件,我们建议您使用以下示例配置合并更新在 nucleus 配置中设置 JVM 选项:

{ "jvmOptions": "-Xmx64m -XX:+UseSerialGC -XX:TieredStopAtLevel=1" }

最低内存分配

运行Amazon IoT Greengrass使用最低内存分配的核心软件,我们建议您使用以下示例配置合并更新在 nucleus 配置中设置 JVM 选项:

{ "jvmOptions": "-Xmx32m -XX:+UseSerialGC -Xint" }

这些示例配置合并更新使用以下 JVM 选项:

-XmxNNm

设置 JVM 堆大小。

要减少内存分配,请使用-Xmx64m作为起始值,将堆大小限制为 64 MB。要获得最少的内存分配,请使用-Xmx32m作为起始值,将堆大小限制为 32 MB。

您可以增加或减少-Xmx值取决于您的实际需求;但是,我们强烈建议您不要将最大堆大小设置为 16 MB 以下。如果最大堆大小对于您的环境来说太低,那么Amazon IoT Greengrass由于内存不足,核心软件可能会遇到意外错误。

-XX:+UseSerialGC

指定对 JVM 堆空间使用串行垃圾回收。串行垃圾收集器比其他 JVM 垃圾回收实现要慢,但使用的内存更少。

-XX:TieredStopAtLevel=1

指示 JVM 使用 Java just-in-time (JIT) 编译器一次。由于 JIT 编译的代码会占用设备内存中的空间,因此多次使用 JIT 编译器比单次编译消耗更多的内存。

-Xint

指示 JVM 不要使用 just-in-time (JIT) 编译器。相反,JVM 在仅解释模式下运行。此模式比运行 JIT 编译的代码慢;但是,编译后的代码不使用任何内存空间。

有关创建配置合并更新的信息,请参阅Update component configurations.

配置运行组件的用户

这些区域有:Amazon IoT Greengrass核心软件可以以不同于运行软件的系统用户和组的身份运行组件进程。这提高了安全性,因为你可以运行Amazon IoT Greengrass以 root 用户或管理员用户身份运行核心软件,无需向在核心设备上运行的组件授予这些权限。

下表显示了哪些类型的组件Amazon IoT Greengrass核心软件可以以您指定的用户身份运行。有关更多信息,请参阅 组件类型

组件类型 配置组件用户

Nucleus

插件

常规

Lambda(非容器化)

Lambda(集装箱化)

必须先创建组件用户,然后才能在部署配置中指定它。在基于 Windows 的设备上,您还必须将用户的用户名和密码存储在的凭据管理器实例中 LocalSystem 账户。有关更多信息,请参阅 在 Windows 设备上设置组件用户

在基于 Linux 的设备上配置组件用户时,也可以选择指定群组。您可以指定用户和群组,用冒号分隔 (:)采用以下格式:user:group. 如果不指定组,Amazon IoT Greengrass核心软件默认为用户的主要组。您可以使用名称或 ID 来识别用户和组。

在基于 Linux 的设备上,您还可以以不存在的系统用户(也称为未知用户)的身份运行组件,以提高安全性。Linux 进程可以向由同一用户运行的任何其他进程发出信号。未知用户不运行其他进程,因此您可以以未知用户身份运行组件,以防止组件向核心设备上的其他组件发送信号。要以未知用户身份运行组件,请指定核心设备上不存在的用户 ID。您也可以指定一个不存在的群组 ID 作为未知群组运行。

您可以为每个组件和每个核心设备配置用户。

  • 为组件配置

    您可以将每个组件配置为由特定于该组件的用户运行。创建部署时,可以在中为每个组件指定用户runWith该组件的配置。这些区域有:Amazon IoT Greengrass如果您配置组件,则核心软件将以指定用户身份运行组件。否则,它默认为以您为核心设备配置的默认用户运行组件。有关在部署配置中指定组件用户的详细信息,请参阅runWith中的配置参数创建部署.

  • 为核心设备配置默认用户

    您可以将默认用户配置为Amazon IoT Greengrass核心软件用于运行组件。当Amazon IoT Greengrass核心软件运行一个组件,它检查你是否为该组件指定了用户,然后使用它来运行该组件。如果组件没有指定用户,那么Amazon IoT Greengrass核心软件以您为核心设备配置的默认用户身份运行组件。有关更多信息,请参阅 配置默认组件用户

注意

在基于 Windows 的设备上,必须至少指定一个默认用户才能运行组件。

在基于 Linux 的设备上,如果您未将用户配置为运行组件,则需要考虑以下注意事项:

  • 如果你运行Amazon IoT Greengrass核心软件以 root 身份运行,则软件将无法运行组件。如果您以 root 身份运行组件,则必须指定默认用户来运行组件。

  • 如果你运行Amazon IoT Greengrass核心软件以非 root 用户身份运行,然后软件以该用户身份运行组件。

在 Windows 设备上设置组件用户

在基于 Windows 的设备上设置组件用户

  1. 在中创建组件用户 LocalSystem 设备上的帐户。

    net user /add component-user password
  2. 使用微软的 PsExec 实用程序将组件用户的用户名和密码存储在 Credential Manager 实例中 LocalSystem 账户。

    psexec -s cmd /c cmdkey /generic:component-user /user:component-user /pass:password
    注意

    在基于 Windows 的设备上, LocalSystem 账户运行 Greengrass 核心,你必须使用 PsExec 实用程序,用于将组件用户信息存储在 LocalSystem账户。使用 Credential Manager 应用程序将此信息存储在当前登录用户的 Windows 帐户中,而不是 LocalSystem账户。

配置默认组件用户

您可以使用部署在核心设备上配置默认用户。在此部署中,您更新核组件配置。

注意

您还可以在安装时设置默认用户Amazon IoT Greengrass核心软件带有--component-default-user选项。有关更多信息,请参阅 安装 Amazon IoT Greengrass Core 软件

创建部调配它指定了以下配置更新aws.greengrass.Nucleus组件。

Linux
{ "runWithDefault": { "posixUser": "ggc_user:ggc_group" } }
Windows
{ "runWithDefault": { "windowsUser": "ggc_user" } }
注意

您指定的用户必须存在,并且该用户的用户名和密码必须存储在的凭证管理器实例中 LocalSystem 您的 Windows 设备上的帐户。有关更多信息,请参阅 在 Windows 设备上设置组件用户

以下示例定义了基于 Linux 的设备的部署,该部署配置为ggc_user作为默认用户和ggc_group作为默认组。这些区域有:merge配置更新需要序列化的 JSON 对象。

{ "components": { "aws.greengrass.Nucleus": { "version": "2.8.0", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"posixUser\":\"ggc_user:ggc_group\"}}" } } } }

为组件配置系统资源限制

注意

此功能适用于 v2.4.0 及更高版本的Greengrass 核组件.Amazon IoT Greengrass目前在 Windows 核心设备上不支持此功能。

您可以配置每个组件的进程可以在核心设备上使用的最大CPU和RAM使用量。

下表显示了支持系统资源限制的组件类型。有关更多信息,请参阅 组件类型

组件类型 配置系统资源限制

Nucleus

插件

常规

Lambda(非容器化)

Lambda(集装箱化)

重要

当您使用时,系统资源限制不受支持运行Amazon IoT GreengrassDocker 容器中的核心软件.

您可以为每个组件和每个核心设备配置系统资源限制。

  • 为组件配置

    您可以为每个组件配置特定于该组件的系统资源限制。创建部署时,您可以为部署中的每个组件指定系统资源限制。如果组件支持系统资源限制,Amazon IoT Greengrass核心软件将限制应用于组件的进程。如果不指定组件的系统资源限制,Amazon IoT Greengrass核心软件使用您为核心设备配置的任何默认值。有关更多信息,请参阅 创建部署

  • 为核心设备配置默认值

    您可以配置默认的系统资源限制Amazon IoT Greengrass核心软件适用于支持这些限制的组件。当Amazon IoT Greengrass核心软件运行一个组件,它会应用您为该组件指定的系统资源限制。如果该组件未指定系统资源限制,Amazon IoT Greengrass核心软件应用您为核心设备配置的默认系统资源限制。如果不指定默认系统资源限制,Amazon IoT Greengrass默认情况下,核心软件不应用任何系统资源限制。有关更多信息,请参阅 配置默认的系统资源限制

配置默认的系统资源限制

你可以部署Greengrass 核组件为核心设备配置默认系统资源限制。要配置默认的系统资源限制,创建部调配它指定了以下配置更新aws.greengrass.Nucleus组件。

{ "runWithDefault": { "systemResourceLimits": { "cpu": cpuTimeLimit, "memory": memoryLimitInKb } } }

以下示例定义了一个部署,该部署将 CPU 时间限制配置为2,这相当于在具有 4 个 CPU 内核的设备上使用率为 50%。此示例还将内存使用量配置为 100 MB。

{ "components": { "aws.greengrass.Nucleus": { "version": "2.8.0", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"systemResourceLimits\":\"cpu\":2,\"memory\":102400}}}" } } } }

通过端口 443 或网络代理进行连接

Amazon IoT Greengrass核心设备与通信Amazon IoT Core使用带有 TLS 客户端身份验证的 MQTT 消息协议。按照惯例,基于 TLS 的 MQTT 使用端口 8883。但是,作为一项安全措施,限制性环境可能会将入站和出站流量限制到一个较小的 TCP 端口范围。例如,企业防火墙可能会为 HTTPS 流量打开端口 443,但关闭用于不太常见协议的其他端口,例如用于 MQTT 流量的端口 8883。其他限制性环境可能要求所有流量在连接到 Internet 之前都要经过代理。

注意

运行的 Greengrass 核心设备Greengrass 核组件v2.0.3 及更早版本使用端口 8443 连接到Amazon IoT Greengrass数据层面端点。这些设备必须能够通过端口 8443 连接到此端点。有关更多信息,请参阅 允许设备通过代理或防火墙进行流量

要在这些场景中启用通信,Amazon IoT Greengrass提供以下配置选项:

  • 通过端口 443 进行 MQTT 通信. 如果您的网络允许连接到端口 443,则可以将 Greengrass 核心设备配置为使用端口 443 进行 MQTT 流量,而不是默认端口 8883。这可以是与端口 443 的直接连接,也可以是通过网络代理服务器的连接。与使用基于证书的客户端身份验证的默认配置不同,端口 443 上的 MQTT 使用设备服务角色用于身份验证。

    有关更多信息,请参阅 通过端口 443 配置 MQTT

  • 通过端口 443 进行 HTTPS 通信. 这些区域有:Amazon IoT Greengrass默认情况下,核心软件通过端口 8443 发送 HTTPS 流量,但您可以将其配置为使用端口 443。Amazon IoT Greengrass使用应用层协议网络(APN) 用于启用此连接的 TLS 扩展。与默认配置一样,端口 443 上的 HTTPS 使用基于证书的客户端身份验证。

    重要

    要使用 ALPN 并启用通过端口 443 的 HTTPS 通信,您的核心设备必须运行 Java 8 更新 252 或更高版本。Java 版本 9 及更高版本的所有更新也支持 ALPN。

    有关更多信息,请参阅 通过端口 443 配置 HTTPS

  • 通过网络代理连接。您可以将网络代理服务器配置为连接到 Greengrass 核心设备的中介。Amazon IoT Greengrass支持 HTTP 和 HTTPS 代理的基本身份验证。

    Greengrass 核心设备必须运行Greengrassv2.5.0 或更高版本可使用 HTTPS 代理。

    这些区域有:Amazon IoT Greengrass核心软件通过以下方式将代理配置传递给组件ALL_PROXY,HTTP_PROXY,HTTPS_PROXY,以及NO_PROXY环境变量。组件必须使用这些设置才能通过代理进行连接。组件使用常用库(例如 boto3、cURL 和 python)requestspackage),默认情况下通常使用这些环境变量来建立连接。如果组件还指定了这些环境变量,Amazon IoT Greengrass不会覆盖它们。

    有关更多信息,请参阅 配置网络代理

通过端口 443 配置 MQTT

您可以在现有核心设备上通过端口 443 配置 MQTT,也可以在安装Amazon IoT Greengrass新核心设备上的核心软件。

在现有核心设备上通过端口 443 配置 MQTT

您可以使用部署在单个核心设备或一组核心设备上通过端口 443 配置 MQTT。在此部署中,您更新核组件配置。当你更新它时,原子核会重新启动mqtt配置。

要通过端口 443 配置 MQTT创建部调配它指定了以下配置更新aws.greengrass.Nucleus组件。

{ "mqtt": { "port": 443 } }

以下示例定义了通过端口 443 配置 MQTT 的部署。这些区域有:merge配置更新需要序列化的 JSON 对象。

{ "components": { "aws.greengrass.Nucleus": { "version": "2.8.0", "configurationUpdate": { "merge": "{\"mqtt\":{\"port\":443}}" } } } }

安装期间通过端口 443 配置 MQTT

安装时,您可以通过端口 443 配置 MQTTAmazon IoT Greengrass核心设备上的核心软件。使用--init-config安装程序参数,用于通过端口 443 配置 MQTT。你可以在安装时指定这个参数手动预调配,实例集预调配,或自定义预调配.

通过端口 443 配置 HTTPS

此功能需要Greengrassv2.0.4 或更高版本。

您可以在现有核心设备上通过端口 443 配置 HTTPS,也可以在安装Amazon IoT Greengrass新核心设备上的核心软件。

在现有核心设备上通过端口 443 配置 HTTPS

您可以使用部署在单个核心设备或一组核心设备上通过端口 443 配置 HTTPS。在此部署中,您更新核组件配置。

要通过端口 443 配置 HTTPS创建部署它指定了以下配置更新aws.greengrass.Nucleus组件。

{ "greengrassDataPlanePort": 443 }

以下示例定义了通过端口 443 配置 HTTPS 的部署。这些区域有:merge配置更新需要序列化的 JSON 对象。

{ "components": { "aws.greengrass.Nucleus": { "version": "2.8.0", "configurationUpdate": { "merge": "{\"greengrassDataPlanePort\":443}" } } } }

安装期间通过端口 443 配置 HTTPS

安装时,您可以通过端口 443 配置 HTTPSAmazon IoT Greengrass核心设备上的核心软件。使用--init-config安装程序参数,用于通过端口 443 配置 HTTPS。你可以在安装时指定这个参数手动预调配,实例集预调配,或自定义预调配.

配置网络代理

按照本节中的步骤将 Greengrass 核心设备配置为通过 HTTP 或 HTTPS 网络代理连接到互联网。有关核心设备使用的端点和端口的更多信息,请参阅允许设备通过代理或防火墙进行流量.

重要

如果你的核心设备运行的版本是Greengrass在 v2.4.0 之前,您的设备角色必须允许以下权限才能使用网络代理:

  • iot:Connect

  • iot:Publish

  • iot:Receive

  • iot:Subscribe

这是必要的,因为设备使用Amazon来自令牌交换服务的证书,用于验证与 MQTT 的连接Amazon IoT. 设备使用 MQTT 接收和安装来自的部署Amazon Web Services 云,因此,除非您为其角色定义这些权限,否则您的设备将无法运行。设备通常使用 X.509 证书对 MQTT 连接进行身份验证,但是设备在使用代理时无法通过这种方式进行身份验证。

有关如何配置设备角色的更多信息,请参阅授权核心设备与Amazon服务.

在现有核心设备上配置网络代理

您可以使用部署在单个核心设备或一组核心设备上配置网络代理。在此部署中,您更新核组件配置。当你更新它时,原子核会重新启动networkProxy配置。

要配置网络代理,创建部调配对于aws.greengrass.Nucleus合并以下配置更新的组件。此配置更新包含networkProxy 对象.

{ "networkProxy": { "noProxyAddresses": "http://192.168.0.1,www.example.com", "proxy": { "url": "https://my-proxy-server:1100", "username": "Mary_Major", "password": "pass@word1357" } } }

以下示例定义了配置网络代理的部署。这些区域有:merge配置更新需要序列化的 JSON 对象。

{ "components": { "aws.greengrass.Nucleus": { "version": "2.8.0", "configurationUpdate": { "merge": "{\"networkProxy\":{\"noProxyAddresses\":\"http://192.168.0.1,www.example.com\",\"proxy\":{\"url\":\"https://my-proxy-server:1100\",\"username\":\"Mary_Major\",\"password\":\"pass@word1357\"}}}" } } } }

在安装期间配置网络代理

安装时可以配置网络代理Amazon IoT Greengrass核心设备上的核心软件。使用--init-config用于配置网络代理的安装程序参数。你可以在安装时指定这个参数手动预调配,实例集预调配,或自定义预调配.

使核心设备信任 HTTPS 代理

将核心设备配置为使用 HTTPS 代理时,必须将代理服务器证书链添加到核心设备的证书链以使其能够信任 HTTPS 代理。否则,核心设备在尝试通过代理路由流量时可能会遇到错误。将代理服务器 CA 证书添加到核心设备的 Amazon 根 CA 证书文件中。

使核心设备信任 HTTPS 代理

  1. 在核心设备上找到 Amazon 根 CA 证书文件。

    • 如果你安装了Amazon IoT Greengrass.Neverity自动预调配,亚马逊根 CA 证书文件存在于/greengrass/v2/rootCA.pem.

    • 如果你安装了Amazon IoT Greengrass.Neverity手册要么实例集预调配,亚马逊根 CA 证书文件可能存在于/greengrass/v2/AmazonRootCA1.pem.

    如果这些位置不存在 Amazon 根 CA 证书,请检查system.rootCaPath属性在/greengrass/v2/config/effectiveConfig.yaml找到它的位置。

  2. 将代理服务器 CA 证书文件的内容添加到 Amazon 根 CA 证书文件中。

    以下示例显示了添加到 Amazon 根 CA 证书文件中的代理服务器 CA 证书。

    -----BEGIN CERTIFICATE----- MIIEFTCCAv2gAwIQWgIVAMHSAzWG/5YVRYtRQOxXUTEpHuEmApzGCSqGSIb3DQEK \nCwUAhuL9MQswCQwJVUzEPMAVUzEYMBYGA1UECgwP1hem9uLmNvbSBJbmMuMRww ... content of proxy CA certificate ... +vHIRlt0e5JAm5\noTIZGoFbK82A0/nO7f/t5PSIDAim9V3Gc3pSXxCCAQoFYnui GaPUlGk1gCE84a0X\n7Rp/lND/PuMZ/s8YjlkY2NmYmNjMCAXDTE5MTEyN2cM216 gJMIADggEPADf2/m45hzEXAMPLE= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDQTCCAimgF6AwIBAgITBmyfz/5mjAo54vB4ikPmljZKyjANJmApzyMZFo6qBg ADA5MQswCQYDVQQGEwJVUzEPMA0tMVT8QtPHRh8jrdkGA1UEChMGDV3QQDExBBKW ... content of root CA certificate ... o/ufQJQWUCyziar1hem9uMRkwFwYVPSHCb2XV4cdFyQzR1KldZwgJcIQ6XUDgHaa 5MsI+yMRQ+hDaXJiobldXgjUka642M4UwtBV8oK2xJNDd2ZhwLnoQdeXeGADKkpy rqXRfKoQnoZsG4q5WTP46EXAMPLE -----END CERTIFICATE-----

networkProxy 对象

使用 networkProxy 对象指定有关网络代理的信息。此对象包含以下信息:

noProxyAddresses

(可选)以逗号分隔的免于代理的 IP 地址或主机名列表。

proxy

要连接的代理。此对象包含以下信息:

url

代理服务器的 URL,格式为scheme://userinfo@host:port.

  • scheme— 该计划,必须是http要么https.

    重要

    Greengrass 核心设备必须运行Greengrassv2.5.0 或更高版本可使用 HTTPS 代理。

    如果您配置 HTTPS 代理,则必须将代理服务器 CA 证书添加到核心设备的 Amazon 根 CA 证书中。有关更多信息,请参阅 使核心设备信任 HTTPS 代理

  • userinfo—(可选)用户名和密码信息。如果您在中指定了此信息url,Greengrass 核心设备忽略了usernamepassword字段之间没有不同。

  • host— 代理服务器的主机名或 IP 地址。

  • port—(可选)端口号。如果您未指定端口,则 Greengrass 核心设备使用以下默认值:

    • http— 80

    • https— 443

username

(可选)用于验证代理服务器的用户名。

password

(可选)用于验证代理服务器的密码。

采用私有证书颁发机构签署的设备证书

如果您使用自定义私有证书颁发机构 (CA),则必须设置 Greengrass nuclesgreengrassDataPlaneEndpointiotdata. 在部署或安装期间,您可以使用以下命令设置此选项--init-config 安装程序参数.

您可以自定义设备连接的 Greengrass 数据平面端点。您可以将此配置选项设置为iotdata将 Greengrass 数据平面端点设置为与 IoT 数据端点相同的端点,您可以使用iotDataEndpoint.

配置 MQTT 超时和缓存设置

在里面Amazon IoT Greengrass环境,组件可以使用 MQTT 与之通信Amazon IoT Core. 这些区域有:Amazon IoT Greengrass核心软件管理组件的 MQTT 消息。当核心设备断开连接时Amazon Web Services 云,软件会缓存 MQTT 消息,以便稍后在连接恢复时重试。您可以配置消息超时和缓存大小等设置。有关更多信息,请参阅 。mqttmqtt.spooler的配置参数Greengrass 核组件.

Amazon IoT Core对其 MQTT 消息代理施加服务配额。这些配额可能适用于您在核心设备和核心设备之间发送的消息Amazon IoT Core. 有关更多信息,请参阅Amazon IoT Core消息代理服务配额在里面Amazon一般参考.