設定 AWS IoT Greengrass 核心軟體 - AWS IoT Greengrass

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 AWS IoT Greengrass 核心軟體

AWS IoT Greengrass 核心軟體提供可用來設定軟體的選項。您可以建立部署,在每個 AWS IoT Greengrass 核心裝置上設定 Core 軟體。

部署 Greengrass 核組件

AWS IoT Greengrass 提供 AWS IoT Greengrass 核心軟體做為可部署到 Greengrass 核心裝置的元件。您可以建立部署,將相同的設定套用至多個 Greengrass 核心裝置。如需詳細資訊,請參閱 Greengrass 核更新AWS IoT Greengrass核心軟件(OTA)

將 Greengrass 核配置為系統服務

您必須在設備的初始化系統中將 AWS IoT Greengrass Core 軟件配置為系統服務,才能執行以下操作:

  • 設備啟動時啟動 AWS IoT Greengrass Core 軟件。如果您管理大量設備,這是一個很好的做法。

  • 安裝並執行外掛程式元件。幾個 AWS提供的元件是外掛程式元件,可讓它們直接與 Greengrass 核介面。如需元件類型的詳細資訊,請參閱元件類型

  • 將 over-the-air (OTA)更新應用於核心設備的 AWS IoT Greengrass 核心軟件。如需詳細資訊,請參閱 更新AWS IoT Greengrass核心軟件(OTA)

  • 當部署將元件更新為新版本或更新特定組態參數時,啟用元件以重新啟動 Core 軟體或核心裝置。 AWS IoT Greengrass 如需詳細資訊,請參閱啟動程序生命週期步驟

重要

在 Windows 核心裝置上,您必須將 AWS IoT Greengrass 核心軟體設定為系統服務。

將核子核配置為系統服務(Linux)

Linux 設備支持不同的初始化系統,例如初始化,系統和 SystemV。您可以在安裝 AWS IoT Greengrass Core 軟體時使用--setup-system-service true引數來啟動核心作為系統服務,並將其設定為在裝置開機時啟動。安裝程式會使用 systemd 將 AWS IoT Greengrass 核心軟體設定為系統服務。

您也可以手動配置核心作為系統服務運行。以下範例為 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

設定系統服務之後,您可以執行下列命令來設定在開機時啟動裝置,以及啟動或停止 AWS IoT Greengrass Core 軟體。

  • 若要檢查服務的狀態 (系統)

    sudo systemctl status greengrass.service
  • 為了使原子核在設備啟動時啟動。

    sudo systemctl enable greengrass.service
  • 在設備啟動時阻止原子核啟動。

    sudo systemctl disable greengrass.service
  • 若要啟動 AWS IoT Greengrass 核心軟體。

    sudo systemctl start greengrass.service
  • 要停止 AWS IoT Greengrass 核心軟件。

    sudo systemctl stop greengrass.service

將核心設定為系統服務 (Windows)

當您安裝核 AWS IoT Greengrass 心軟體時,您可以使用--setup-system-service true引數來啟動核心作為 Windows 服務,並將其設定為在裝置開機時啟動。

設定服務之後,您可以執行下列命令來設定在開機時啟動裝置,以及啟動或停止 AWS IoT Greengrass Core 軟體。您必須以系統管理員身分執行命令提示字元,才能執行這些命令。 PowerShell

Windows Command Prompt (CMD)
  • 若要檢查服務的狀態

    sc query "greengrass"
  • 為了使原子核在設備啟動時啟動。

    sc config "greengrass" start=auto
  • 在設備啟動時阻止原子核啟動。

    sc config "greengrass" start=disabled
  • 若要啟動 AWS IoT Greengrass 核心軟體。

    sc start "greengrass"
  • 要停止 AWS IoT Greengrass 核心軟件。

    sc stop "greengrass"
    注意

    在 Windows 設備上, AWS IoT Greengrass 核心軟件在關閉 Greengrass 組件進程時忽略此關閉信號。如果 AWS IoT Greengrass 核心軟體在執行此命令時忽略關機訊號,請等待幾秒鐘,然後再試一次。

PowerShell
  • 若要檢查服務的狀態

    Get-Service -Name "greengrass"
  • 為了使原子核在設備啟動時啟動。

    Set-Service -Name "greengrass" -Status stopped -StartupType automatic
  • 在設備啟動時阻止原子核啟動。

    Set-Service -Name "greengrass" -Status stopped -StartupType disabled
  • 若要啟動 AWS IoT Greengrass 核心軟體。

    Start-Service -Name "greengrass"
  • 要停止 AWS IoT Greengrass 核心軟件。

    Stop-Service -Name "greengrass"
    注意

    在 Windows 設備上, AWS IoT Greengrass 核心軟件在關閉 Greengrass 組件進程時忽略此關閉信號。如果 AWS IoT Greengrass 核心軟體在執行此命令時忽略關機訊號,請等待幾秒鐘,然後再試一次。

使用 JVM 選項控制內存分配

如果您在內存有限的設備 AWS IoT Greengrass 上運行,則可以使用 Java 虛擬機器(JVM)選項來控制最大堆積大小,垃圾收集模式和編譯器選項,這些選項控制 AWS IoT Greengrass Core 軟件使用的內存量。JVM 中的堆積大小會決定應用程式在記憶體回收發生之前或應用程式記憶體不足之前可以使用多少記憶體。堆積大小的上限,指定了在繁重的作業進行期間擴充堆疊時,JVM 可以分配的最大記憶體容量。

若要控制記憶體配置,請建立新部署或修訂包含核心元件的現有部署,並在核心元jvmOptions組態的組態參數中指定 JVM 選項。

根據您的需求,您可以使用較少的記憶體配置或最少的記憶體配置來執行 AWS IoT Greengrass Core 軟體。

減少記憶體分配

若要在減少記憶體配置的情況下執行 AWS IoT Greengrass Core 軟體,建議您使用下列範例組態合併更新來設定核心組態中的 JVM 選項:

{ "jvmOptions": "-Xmx64m -XX:+UseSerialGC -XX:TieredStopAtLevel=1" }
最小記憶體分配

若要以最少的記憶體配置執行 AWS IoT Greengrass Core 軟體,建議您使用下列範例組態合併更新來設定核心組態中的 JVM 選項:

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

這些範例組態合併更新使用下列 JVM 選項:

-XmxNNm

設定 JVM 堆積大小上限。

若要減少記憶體配置,請使用-Xmx64m作為起始值,將堆積大小限制為 64 MB。對於最小記憶體配置,請使用-Xmx32m作為起始值,將堆積大小限制為 32 MB。

您可以根據實際需求增加或減少此-Xmx值;不過,我們強烈建議您不要將堆集大小上限設定為 16 MB 以下。如果最大堆積大小對您的環境來說太低,則 AWS 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 編譯的程式碼慢;但是,編譯後的程式碼不會使用記憶體中的任何空間。

如需有關建立組態合併更新的資訊,請參閱更新零組件組態

設定執行元件的使用者

AWS IoT Greengrass 核心軟體可以以不同於執行軟體的系統使用者和群組的身分執行元件程序。這會增加安全性,因為您可以以 root 或系統管理員使用者身分執行 AWS IoT Greengrass Core 軟體,而不會將這些權限授與核心裝置上執行的元件。

下表指出 AWS IoT Greengrass 核心軟體可以以您指定的使用者身分執行的元件類型。如需詳細資訊,請參閱 元件類型

元件類型 設定元件使用者

原子核

外掛程式

一般

Lambda(非容器化)

容器化

您必須先建立元件使用者,才能在部署規劃中指定元件使用者。在 Windows 裝置上,您也必須將使用者的使用者名稱和密碼儲存在 LocalSystem 帳戶的認證管理員執行個體中。如需詳細資訊,請參閱 在 Windows 裝置上設定元件使用者

在 Linux 裝置上設定元件使用者時,您也可以選擇性地指定群組。您可以指定以冒號 (:) 分隔的使用者和群組,格式如下:user:group。如果您未指定群組, AWS IoT Greengrass Core 軟體會預設為使用者的主要群組。您可以使用名稱或 ID 來識別使用者和群組。

在 Linux 裝置上,您也可以以不存在的系統使用者身分執行元件 (也稱為未知使用者),以提高安全性。Linux 進程可以發出信號由同一用戶運行的任何其他進程。不明的使用者不會執行其他處理程序,因此您可以以未知使用者身分執行元件,以防止元件在核心裝置上發出信號傳送其他元件。若要以未知使用者身分執行元件,請指定核心裝置上不存在的使用者 ID。您也可以指定不存在的群組 ID,以未知群組的形式執行。

您可以為每個元件和每個核心裝置設定使用者。

  • 設定元件

    您可以將每個元件設定為與該元件特有的使用者一起執行。建立部署時,您可以為該元件的runWith規劃中的每個元件指定使用者。如果您設定元件, AWS IoT Greengrass Core 軟體會以指定的使用者身分執行元件。否則,它預設會以您為核心裝置設定的預設使用者身分執行元件。如需有關在部署組態中指定元件使用者的詳細資訊,請參閱中的runWith組態參數建立部署

  • 設定核心裝置的預設使用者

    您可以設定 AWS IoT Greengrass Core 軟體用來執行元件的預設使用者。當 AWS IoT Greengrass 核心軟體執行元件時,它會檢查您是否為該元件指定了使用者,並使用它來執行元件。如果元件未指定使用者,則 AWS IoT Greengrass Core 軟體會以您為核心裝置設定的預設使用者身分執行該元件。如需詳細資訊,請參閱 設定預設元件使用者

注意

在以 Windows 為基礎的裝置上,您必須至少指定一個預設使用者來執行元件。

在 Linux 裝置上,如果您未設定使用者執行元件,則需要考量下列事項:

  • 如果您以 root 身份運行 AWS IoT Greengrass Core 軟件,則該軟件將無法運行組件。如果您以 root 身份執行,則必須指定預設使用者來執行元件。

  • 如果您以非 root 使用者身分執行 AWS IoT Greengrass Core 軟體,則軟體會以該使用者的身分執行元件。

在 Windows 裝置上設定元件使用者

在以 Windows 為基礎的裝置上設定元件使用者
  1. 在裝置上的 LocalSystem 帳戶中建立元件使用者。

    net user /add component-user password
  2. 使用 Microsoft 的 PsExec 公用程式,將元件使用者的使用者名稱和密碼儲存在 LocalSystem 帳戶的認證管理員執行個體中。

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

    在 Windows 裝置上, LocalSystem 帳戶會執行 Greengrass 核心,而且您必須使用公用 PsExec 程式將元件使用者資訊儲存在帳戶中。 LocalSystem使用認證管理員應用程式會將此資訊儲存在目前登入使用者的 Windows 帳戶中,而非 LocalSystem帳戶中。

設定預設元件使用者

您可以使用部署來規劃核心裝置上的預設使用者。在此部署中,您會更新核心元件組態。

注意

當您使用--component-default-user選項安裝 AWS IoT Greengrass Core 軟體時,您也可以設定預設使用者。如需詳細資訊,請參閱 安裝 AWS IoT Greengrass 核心軟體

建立為元件指定下列規劃更新的aws.greengrass.Nucleus部署。

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

您指定的使用者必須存在,且此使用者的使用者名稱和密碼必須儲存在 Windows 裝置上 LocalSystem 帳戶的認證管理員執行個體中。如需詳細資訊,請參閱 在 Windows 裝置上設定元件使用者

下列範例會定義 Linux 裝置的部署,該裝置設定為預設使用者並ggc_group設定ggc_user為預設群組。組merge態更新需要序列化的 JSON 物件。

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

設定元件的系統資源限制

注意

此功能適用於 v2.4.0 和更高版 Greeng rass 核組件。 AWS IoT Greengrass 目前在 Windows 核心裝置上不支援此功能。

您可以設定每個元件的處理序可在核心裝置上使用的 CPU 和 RAM 使用量上限。

下表顯示支援系統資源限制的元件類型。如需詳細資訊,請參閱 元件類型

元件類型 設定系統資源限制

原子核

外掛程式

一般

Lambda(非容器化)

容器化

重要

當您在 Docker 容器中執行 AWS IoT Greengrass 核心軟體時,系統資源限制不受支援。

您可以為每個元件和每個核心裝置設定系統資源限制。

  • 設定元件

    您可以使用特定於該元件的系統資源限制來設定每個元件。建立部署時,您可以為部署中的每個元件指定系統資源限制。如果元件支援系統資源限制, AWS IoT Greengrass 核心軟體就會將限制套用至元件的程序。如果您未指定元件的系統資源限制,則 AWS IoT Greengrass Core 軟體會使用您為核心裝置設定的任何預設值。如需詳細資訊,請參閱 建立部署

  • 設定核心裝置的預設值

    您可以設定 AWS IoT Greengrass Core 軟體套用至支援這些限制之元件的預設系統資源限制。 AWS IoT Greengrass 核心軟體執行元件時,會套用您為該元件指定的系統資源限制。如果該元件未指定系統資源限制,則 AWS IoT Greengrass Core 軟體會套用您為核心裝置設定的預設系統資源限制。如果您未指定預設的系統資源限制, AWS 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.12.6", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"systemResourceLimits\":\"cpus\":2,\"memory\":102400}}}" } } } }

連線至連接埠 443 或透過網路代理

AWS IoT Greengrass 核心裝置與 AWS IoT Core 使用具有 TLS 用戶端驗證的 MQTT 訊息通訊協定進行通訊。根據慣例,透過 TLS 的 MQTT 使用連接埠 8883。不過,做為安全措施之用,受限環境可能會將傳入和傳出流量限制於小範圍的 TCP 連接埠。例如,企業防火牆可能會針對 HTTPS 流量開放連接埠 443,但關閉較不常用之通訊協定的其他連接埠,例如 MQTT 流量的連接埠 8883。其他限制性環境可能需要所有流量在連接到互聯網之前通過代理。

注意

執行 Greengrass 核心元件 v2.0.3 及更早版本的 Greengrass 核心裝置使用連接埠 8443 連線至資料平面端點。 AWS IoT Greengrass 這些裝置必須能夠在連接埠 8443 上連線到此端點。如需詳細資訊,請參閱 允許裝置流量透過 Proxy 或防火牆

若要在這些情況下啟用通訊,請 AWS IoT Greengrass 提供下列組態選項:

  • 透過連接埠 443 進行 MQTT 通訊。如果您的網路允許連線至連接埠 443,您可以設定 Greengrass 核心裝置使用連接埠 443 作為 MQTT 流量,而非預設連接埠 8883。這可以直接連線至連接埠 443,或透過網路代理伺服器連線。與使用憑證型用戶端驗證的預設組態不同,連接埠 443 上的 MQTT 會使用裝置服務角色進行驗證。

    如需詳細資訊,請參閱 透過連接埠 443 設定 MQTT

  • 過連接埠 443 進行 HTTPS 通訊。 AWS IoT Greengrass 核心軟體預設會透過連接埠 8443 傳送 HTTPS 流量,但您可以將其設定為使用連接埠 443。 AWS IoT Greengrass 使用應用程式層通訊協定網路 (ALPN) TLS 延伸功能來啟用此連線。與預設組態一樣,連接埠 443 上的 HTTPS 會使用憑證型用戶端驗證。

    重要

    若要使用 ALPN 並透過連接埠 443 啟用 HTTPS 通訊,您的核心裝置必須執行 Java 8 更新 252 或更新版本。Java 版本 9 及更新版本的所有更新也支援 ALPN。

    如需詳細資訊,請參閱 透過連接埠 443 設定 HTTPS

  • 透過網路代理的連線。您可以配置網絡代理服務器作為連接到 Greengrass 核心設備的中介。 AWS IoT Greengrass 支援 HTTP 和 HTTPS 代理伺服器的基本驗證。

    核心裝置必須執行 Greengrass 核心 v2.5.0 或更新版本才能使用 HTTPS 代理伺服器。

    AWS IoT Greengrass 核心軟體會透過、、和NO_PROXY環境變數 ALL_PROXY HTTP_PROXYHTTPS_PROXY,將 Proxy 組態傳遞給元件。元件必須使用這些設定,才能透過 Proxy 連線。組件使用通用庫(例如 boto3,cURL 和 python requests 包),這些庫通常默認使用這些環境變量進行連接。如果組件也指定了這些環境變量,則 AWS IoT Greengrass 不會覆蓋它們。

    如需詳細資訊,請參閱 設定網路代理

透過連接埠 443 設定 MQTT

您可以在現有核心裝置上透過連接埠 443 設定 MQTT,或在新的核心裝置上安裝 AWS IoT Greengrass Core 軟體時。

在現有核心裝置上透過連接埠 443 設定 MQTT

您可以使用部署,透過連接埠 443 在單一核心裝置或核心裝置群組上設定 MQTT。在此部署中,您會更新核心元件組態。當您更新核心的mqtt組態時,核心會重新啟動。

若要透過連接埠 443 設定 MQTT,請建立為元件指定下列組態更新的部署aws.greengrass.Nucleus

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

下列範例會定義透過連接埠 443 設定 MQTT 的部署。組merge態更新需要序列化的 JSON 物件。

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

在安裝期間透過連接埠 443 設定 MQTT

當您在核心裝置上安裝 AWS IoT Greengrass Core 軟體時,您可以透過連接埠 443 設定 MQTT。使用--init-config安裝程式引數透過連接埠 443 設定 MQTT。當您使用手動佈建、叢集佈建或自訂佈建進行安裝時,您可以指定此引數。

透過連接埠 443 設定 HTTPS

此功能需要 Greengrass 核 v2.0.4 或更新版本。

您可以在現有的核心裝置上透過連接埠 443 設定 HTTPS,或在新的 AWS IoT Greengrass 核心裝置上安裝 Core 軟體時。

在現有核心裝置上透過連接埠 443 設定 HTTPS

您可以使用部署,透過連接埠 443 在單一核心裝置或核心裝置群組上設定 HTTPS。在此部署中,您會更新核心元件組態。

若要透過連接埠 443 設定 HTTPS,請建立為aws.greengrass.Nucleus元件指定下列組態更新的部署

{ "greengrassDataPlanePort": 443 }

下列範例會定義透過連接埠 443 設定 HTTPS 的部署。組merge態更新需要序列化的 JSON 物件。

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

在安裝期間透過連接埠 443 設定 HTTPS

當您在核心裝置上安裝 AWS IoT Greengrass 核心軟體時,您可以透過連接埠 443 設定 HTTPS。使用--init-config安裝程式引數,透過連接埠 443 設定 HTTPS。當您使用手動佈建、叢集佈建或自訂佈建進行安裝時,您可以指定此引數。

設定網路代理

請遵循本節中的程序,將 Greengrass 核心裝置設定為透過 HTTP 或 HTTPS 網路代理伺服器連線到網際網路。如需核心裝置使用的端點和通訊埠的詳細資訊,請參閱允許裝置流量透過 Proxy 或防火牆

重要

如果您的核心裝置執行的 Greengrass 核心版本早於 v2.4.0,則您的裝置角色必須允許下列權限才能使用網路 Proxy:

  • iot:Connect

  • iot:Publish

  • iot:Receive

  • iot:Subscribe

這是必要的,因為裝置會使用 Token 交換服務的 AWS 認證來驗證與的 MQTT 連線。 AWS IoT裝置使用 MQTT 接收和安裝來自的部署 AWS 雲端,因此除非您對裝置的角色定義這些權限,否則您的裝置將無法運作。裝置通常會使用 X.509 憑證來驗證 MQTT 連線,但裝置在使用 Proxy 時無法進行驗證。

如需如何設定裝置角色的詳細資訊,請參閱授權核心裝置與 AWS 服務互動

在現有核心裝置上設定網路 Proxy

您可以使用部署在單一核心裝置或核心裝置群組上設定網路 Proxy。在此部署中,您會更新核心元件組態。當您更新核心的networkProxy組態時,核心會重新啟動。

若要設定網路 Proxy,請為合併下列組態更新的aws.greengrass.Nucleus元件建立部署。此組態更新包含 networkProxy 物件

{ "networkProxy": { "noProxyAddresses": "http://192.168.0.1,www.example.com", "proxy": { "url": "https://my-proxy-server:1100" } } }

下列範例會定義設定網路 Proxy 的部署。組merge態更新需要序列化的 JSON 物件。

{ "components": { "aws.greengrass.Nucleus": { "version": "2.12.6", "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\"}}}" } } } }

在安裝期間設定網路 Proxy

當您在核心裝置上安裝 AWS IoT Greengrass Core 軟體時,您可以設定網路 Proxy。使用--init-config安裝程式引數來設定網路 Proxy。當您使用手動佈建、叢集佈建或自訂佈建進行安裝時,您可以指定此引數。

讓核心裝置信任 HTTPS 代理

當您將核心裝置設定為使用 HTTPS Proxy 時,必須將 Proxy 伺服器憑證鏈新增至核心裝置,才能讓它信任 HTTPS 代理。否則,當核心裝置嘗試透過 Proxy 路由傳送流量時,可能會遇到錯誤。將代理伺服器 CA 憑證新增至核心裝置的 Amazon 根 CA 憑證檔案。

啟用核心裝置信任 HTTPS 代理
  1. 在核心裝置上尋找 Amazon 根 CA 憑證檔案。

    • 如果您使用自動佈建安裝 AWS IoT Greengrass 核心軟體,則 Amazon 根 CA 憑證檔案會存在於/greengrass/v2/rootCA.pem

    • 如果您使用手動佈建或叢集佈建安裝 AWS IoT Greengrass Core 軟體,則 Amazon 根 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— 該計劃,必須是httphttps

    重要

    核心裝置必須執行 Greengrass 核心 v2.5.0 或更新版本才能使用 HTTPS 代理伺服器。

    如果您設定 HTTPS 代理,則必須將代理伺服器 CA 憑證新增至核心裝置的 Amazon 根 CA 憑證。如需詳細資訊,請參閱 讓核心裝置信任 HTTPS 代理

  • userinfo— (選用) 使用者名稱和密碼資訊。如果您在中指定此資訊url,Greengrass 核心裝置會忽略和欄位usernamepassword

  • host— 代理伺服器的主機名稱或 IP 位址。

  • port— (選擇性) 連接埠號碼。如果您未指定連接埠,則 Greengrass 核心裝置會使用下列預設值:

    • http— 80

    • https— 443

username

(選擇性) 驗證 Proxy 伺服器的使用者名稱。

password

(選擇性) 驗證 Proxy 伺服器的密碼。

使用私有 CA 簽署的裝置憑證

如果您使用的是自訂私有憑證授權單位 (CA),則必須將 Greengrass 核心設定為。greengrassDataPlaneEndpoint iotdata您可以在部署或安裝期間使用 --init-config installer 引數來設定此選項。

您可以自訂裝置所連接的 Greengrass 資料平面端點。您可以將此組態選項設定為,iotdata將 Greengrass 資料平面端點設定為與 IoT 資料端點相同的端點,您可以使用. iotDataEndpoint

設定 MQTT 逾時和快取設定

在 AWS IoT Greengrass 環境中,元件可以使用 MQTT 進行通訊。 AWS IoT Core AWS IoT Greengrass 核心軟體會管理元件的 MQTT 訊息。當核心裝置失去與的連線時 AWS 雲端,軟體會快取 MQTT 訊息,以便稍後在連線恢復時重試。您可以設定訊息逾時和快取大小等設定。如需詳細資訊,請參閱 Greengrass 核心元件的mqttmqtt.spooler組態參數。

AWS IoT Core 對其 MQTT 訊息代理程式強加服務配額。這些配額可能會套用至您在核心裝置和之間傳送的郵件 AWS IoT Core。如需詳細資訊,參閱AWS IoT Core AWS 一般參考.