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

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

配置Amazon IoT Greengrass核心软件

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

部署 Greengrass 核心组件

Amazon IoT Greengrass提供了Amazon IoT 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

配置系统服务后,可以运行以下命令来配置在启动时启动设备以及启动或停止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核心软件,用于将 nucleus 作为 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 组件的现有部署,然后在中指定您的 JVM 选项jvmOptions中的配置参数核心组件配置

根据你的要求,你可以运行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 使用 Javajust-in-time(JIT) 编译器一次。由于 JIT 编译的代码会使用设备内存中的空间,因此多次使用 JIT 编译器比单次编译消耗更多的内存。

-Xint

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

有关创建配置合并更新的信息,请参见更新组件配置

配置运行组件的用户

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

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

组件类型 配置组件用户

核心

插件

通用

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实用程序将组件用户的用户名和密码存储在证书管理器实例中LocalSystem账户。

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

    在基于 Windows 的设备上,LocalSystem账户运行 Greengrass 核心,你必须使用PsExec用于将组件用户信息存储在LocalSystem账户。使用凭证管理器应用程序将此信息存储在当前登录用户的 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.11.2", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"posixUser\":\"ggc_user:ggc_group\"}}" } } } }

为组件配置系统资源限制

注意

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

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

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

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

核心

插件

通用

Lambda(非容器化)

Lambda(容器化)

重要

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

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

  • 为组件配置

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

  • 为核心设备配置默认值

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

配置默认系统资源限制

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

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

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

{ "components": { "aws.greengrass.Nucleus": { "version": "2.11.2", "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。其他限制性环境可能要求所有流量在连接到互联网之前都要通过代理。

注意

运行的 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使用应用层协议网络(ALPN) TLS 扩展用于启用此连接。与默认配置一样,端口 443 上的 HTTPS 使用基于证书的客户端身份验证。

    重要

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

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

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

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

    这个Amazon IoT Greengrass核心软件通过将代理配置传递给组件ALL_PROXYHTTP_PROXYHTTPS_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.11.2", "configurationUpdate": { "merge": "{\"mqtt\":{\"port\":443}}" } } } }

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

安装时,您可以通过端口 443 配置 MQTTAmazon IoT Greengrass核心设备上的核心软件。使用--init-config用于通过端口 443 配置 MQTT 的安装程序参数。使用安装时可以指定此参数手动配置舰队配置,或自定义配置

通过端口 443 配置 HTTPS

此功能需要绿草核v2.0.4 或更高版本。

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

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

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

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

{ "greengrassDataPlanePort": 443 }

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

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

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

安装时,您可以通过端口 443 配置 HTTPSAmazon IoT Greengrass核心设备上的核心软件。使用--init-config用于通过端口 443 配置 HTTPS 的安装程序参数。使用安装时可以指定此参数手动配置舰队配置,或自定义配置

配置网络代理

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

重要

如果你的核心设备运行的是的某个版本绿草核在 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": { "noProxyAddresses": "http://192.168.0.1,www.example.com", "proxy": { "url": "https://my-proxy-server:1100" } } }

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

{ "components": { "aws.greengrass.Nucleus": { "version": "2.11.2", "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核心软件包含自动配置,亚马逊根 CA 证书文件位于/greengrass/v2/rootCA.pem

    • 如果你安装了Amazon IoT Greengrass核心软件包含手册要么舰队配置,亚马逊根 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 对象指定有关网络代理的信息。此对象包含以下信息:

noProxyAddresses

(可选)以逗号分隔的不受代理限制的 IP 地址或主机名列表。

proxy

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

url

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

  • scheme— 这个计划,一定是http要么https

    重要

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

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

  • userinfo—(可选)用户名和密码信息。如果您在url,Greengrass 核心设备忽略了usernamepassword字段。

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

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

    • http— 80

    • https— 443

username

(可选)对代理服务器进行身份验证的用户名。

password

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

使用由私有 CA 签名的设备证书

如果您使用的是自定义私有证书颁发机构 (CA),则必须设置 Greengrass nucle'sgreengrassDataPlaneEndpointiotdata。您可以在部署或安装期间使用设置此选项--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的配置参数绿草核成分

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