設定 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 Core 軟體。如需詳細資訊,請參閱更新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": "-XX:+UseSerialGC -XX:TieredStopAtLevel=1" }
最小記憶體分配

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

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

以最少的記憶體配置執行 AWS IoT Greengrass Core 軟體可能會對低規格系統產生重大的效能影響,因為在使用較少的記憶體時,JVM會執行更多處理作業。我們建議您調整選項,以平衡您的記憶體和效能需求。

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

-XX:+UseSerialGC

指定為JVM堆積空間使用序列記憶體回收。串行記憶體回收行程較慢,但使用的記憶體比其他記憶體JVM回收實作少。

-XX:TieredStopAtLevel=1

指示使JVM用 Java just-in-time (JIT) 編譯器一次。由於JIT編譯的程式碼會在裝置記憶體中使用空間,因此使用編譯JIT器會比單一編譯耗用更多記憶體。

-XmxNNm

設置最大JVM堆大小。

重要

將最大堆集大小設定得太低可能會導致效能降低或 out-of-memory 錯誤。我們建議您先測量目前的堆積使用量,然後再使用-XmxNNm此選項設定大小上限。JVM使用-XX:NativeMemoryTracking=detailJVM選項配置您的。然後,通過使用 jcmd 實用程序中的VM.native_memory命令請求來測量當前的堆使用情況。

如果堆積的測量不是選項,請使用-Xmx64m作為起始值,將堆集大小限制為 64 MB。然後,您可以從那裡逐步減少最大堆大小。對於最小記憶體配置,請使用-Xmx32m作為起始值,將堆積大小限制為 32 MB。

您可以根據實際需求增加或減少此-Xmx值;不過,我們強烈建議您不要將堆集大小上限設定為 16 MB 以下。根據部署到核心裝置的外掛程式元件,所需的JVM堆積大小也會隨著時間而有所不同。如果最大堆積大小對您的環境來說太低,則 AWS IoT Greengrass 核心軟體可能會因為記憶體不足而遇到非預期的錯誤。如果您遇到效能較慢或因為記憶體不足而發生錯誤,請回復為已知的良好設定。例如,如果您的正常提交堆大小是41428KB,請使-Xmx40m用稍微限制堆使用量。

-Xint

指示JVM不使用 just-in-time (JIT) 編譯器。相反,在僅解釋模式下JVM運行。此模式比執行已編譯的程式碼慢 (在低階系統上進行部署時可能慢 20 倍);不過,JIT編譯後的程式碼不會使用記憶體中的任何空間。

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

設定執行元件的使用者

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

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

元件類型 設定元件使用者

原子核

外掛程式

一般

Lambda(非容器化)

容器化 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.13.0", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"posixUser\":\"ggc_user:ggc_group\"}}" } } } }

設定元件的系統資源限制

注意

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

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

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

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

原子核

外掛程式

一般

Lambda(非容器化)

容器化 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.13.0", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"systemResourceLimits\":\"cpus\":2,\"memory\":102400}}}" } } } }

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

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

注意

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

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

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

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

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

    重要

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

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

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

    核心設備必須運行 Greengrass 核 v2.5.0 或更高版本才能使用代理。HTTPS

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

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

透MQTT過連接埠 443 進行設定

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

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

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

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

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

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

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

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

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

透HTTPS過連接埠 443 進行設定

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

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

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

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

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

{ "greengrassDataPlanePort": 443 }

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

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

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

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

設定網路代理伺服器

請遵循本節中的程序,將 Greengrass 核心裝置設定為透過HTTP或HTTPS網路 Proxy 連線到網際網路。如需核心裝置使用的端點和通訊埠的詳細資訊,請參閱允許裝置流量透過 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.13.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\"}}}" } } } }

在安裝期間設定網路 Proxy

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

讓核心裝置信任HTTPS代理伺服器

當您將核心裝置設定為使用 HTTPS Proxy 時,必須將 Proxy 伺服器憑證鏈新增至核心裝置,才能讓它信任 HTTPS Proxy。否則,當核心裝置嘗試透過 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 一般參考