本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 AWS IoT Greengrass 核心軟體
Core AWS IoT Greengrass 軟體提供可用來設定軟體的選項。您可以建立部署來設定每個 AWS IoT Greengrass 核心裝置上的核心軟體。
主題
部署 Greengrass 核元件
AWS IoT Greengrass 提供 AWS IoT Greengrass Core 軟體做為元件,您可以將其部署到 Greengrass 核心裝置。您可以建立部署,將相同的組態套用至多個 Greengrass 核心裝置。如需詳細資訊,請參閱 Greengrass 核 和 更新AWS IoT Greengrass核心軟件(OTA)。
將 Greengrass 核設定為系統服務
您必須將 AWS IoT Greengrass Core 軟體設定為裝置初始化系統中的系統服務,才能執行下列動作:
-
在裝置開機時啟動 AWS IoT Greengrass Core 軟體。如果您管理大型裝置機群,這是很好的做法。
-
安裝並執行外掛程式元件。數個 AWS提供的元件是外掛程式元件,可讓它們直接與 Greengrass 核連接。如需元件類型的詳細資訊,請參閱元件類型。
-
將 (OTA) 更新套用至 over-the-air核心裝置 AWS IoT Greengrass 的核心軟體。如需詳細資訊,請參閱更新AWS IoT Greengrass核心軟件(OTA)。
-
當部署將元件更新至新版本或更新特定組態參數時,啟用元件以重新啟動 AWS IoT Greengrass 核心軟體或核心裝置。如需詳細資訊,請參閱引導生命週期步驟。
重要
在 Windows 核心裝置上,您必須將 AWS IoT Greengrass Core 軟體設定為系統服務。
將 核設定為系統服務 (Linux)
Linux 裝置支援不同的 Init 系統,例如 initd、Systemd 和 SystemV。當您安裝 AWS IoT Greengrass Core 軟體時,您可以使用 --setup-system-service true
引數來啟動做為系統服務的 核,並將其設定為在裝置開機時啟動。安裝程式會將 AWS IoT Greengrass Core 軟體設定為使用 系統化的系統服務。
您也可以手動設定 核以系統服務執行。以下範例為 systemd 的服務檔案:
[Unit] Description=Greengrass Core [Service] Type=simple PIDFile=
/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
/greengrass/v2
設定系統服務之後,您可以執行下列命令,以設定在開機時啟動裝置,以及啟動或停止 AWS IoT Greengrass Core 軟體。
-
檢查服務的狀態 (系統化)
sudo systemctl status greengrass.service
-
在裝置開機時啟用 核。
sudo systemctl enable greengrass.service
-
在裝置開機時停止啟動核。
sudo systemctl disable greengrass.service
-
啟動 AWS IoT Greengrass Core 軟體。
sudo systemctl start greengrass.service
-
停止 AWS IoT Greengrass Core 軟體。
sudo systemctl stop greengrass.service
將 核設定為系統服務 (Windows)
當您安裝 AWS IoT Greengrass Core 軟體時,您可以使用 --setup-system-service true
引數來啟動做為 Windows 服務的 核,並將其設定為在裝置開機時啟動。
設定服務之後,您可以執行下列命令,以設定在開機時啟動裝置,以及啟動或停止 AWS IoT Greengrass Core 軟體。您必須以管理員 PowerShell 身分執行命令提示字元 或 ,才能執行這些命令。
使用 JVM 選項控制記憶體配置
如果您在記憶體有限的 AWS IoT Greengrass 裝置上執行,您可以使用 Java 虛擬機器 (JVM) 選項來控制堆積大小上限、垃圾收集模式和編譯器選項,以控制 AWS IoT Greengrass 核心軟體使用的記憶體量。中的堆積大小會JVM決定應用程式在垃圾收集
若要控制記憶體配置,請建立新的部署或修改包含 核元件的現有部署,並在 核元件組態中的jvmOptions
組態參數中指定您的JVM選項。
根據您的需求,您可以執行 AWS IoT Greengrass 核心軟體,減少記憶體配置或減少記憶體配置。
減少記憶體配置
若要在記憶體配置減少的情況下執行 AWS IoT Greengrass 核心軟體,建議您使用下列範例組態合併更新,在 核組態中設定JVM選項:
{ "jvmOptions": "-XX:+UseSerialGC -XX:TieredStopAtLevel=1" }
記憶體配置下限
若要執行具有最低記憶體配置 AWS IoT Greengrass 的核心軟體,建議您使用下列範例組態合併更新,在 核組態中設定JVM選項:
{ "jvmOptions": "-Xmx32m -XX:+UseSerialGC -Xint" }
重要
執行具有最低記憶體配置 AWS IoT Greengrass 的核心軟體可能會對低規格系統造成重大效能影響,因為使用較少記憶體時, JVM會執行更多處理。建議您調校選項,以平衡記憶體和效能需求。
這些範例組態合併更新使用以下JVM選項:
-XX:+UseSerialGC
-
指定使用JVM堆積空間的序列垃圾收集。序列垃圾收集器速度較慢,但比其他JVM垃圾收集實作使用的記憶體較少。
-XX:TieredStopAtLevel=1
-
指示 JVM 使用 Java just-in-time (JIT) 編譯器一次。由於JIT編譯的程式碼會使用裝置記憶體中的空間,因此使用JIT編譯器多次耗用比單一編譯更多的記憶體。
-Xmx
NN
m-
設定JVM堆積大小上限。
重要
設定過小的堆積大小上限可能會導致效能變慢或 out-of-memory發生錯誤。建議您先測量目前的堆積用量,再使用
-Xmx
選項設定大小上限。JVM 使用NN
m-XX:NativeMemoryTracking=detail
JVM選項設定您的 。然後,使用 jcmd 公用程式中的 VM.native_memory
命令請求來測量您目前的堆積用量。如果堆積的測量不是選項,請使用
-Xmx64m
作為起始值,將堆積大小限制為 64 MB。然後,您可以逐步減少最大堆積大小。對於最低記憶體配置,請使用-Xmx32m
作為起始值,將堆積大小限制為 32 MB。您可以根據實際需求增加或減少
-Xmx
值;不過,強烈建議不要將堆積大小上限設定為低於 16 MB。所需的JVM堆積大小也可能根據部署到核心裝置的外掛程式元件而隨時間變化。如果最大堆積大小對您的環境而言太低,則 AWS IoT Greengrass Core 軟體可能會因為記憶體不足而遇到非預期錯誤。如果您因為記憶體不足而體驗到較慢的效能或遇到錯誤,請還原至已知良好的設定。例如,如果您的正常遞交堆積大小為41428KB
,請使用-Xmx40m
來稍微限制堆積用量。 -Xint
-
指示 JVM不使用 just-in-time(JIT) 編譯器。反之, 會以僅解譯模式JVM執行。此模式比執行JIT編譯程式碼慢 (在低端系統上部署可能慢 20 倍);不過,編譯程式碼不會在記憶體中使用任何空間。
如需建立組態合併更新的資訊,請參閱 更新元件組態。
設定執行元件的使用者
AWS IoT Greengrass 核心軟體可以系統使用者身分執行元件程序,而群組與執行軟體的 不同。這可提高安全性,因為您可以以根或管理員使用者身分執行 AWS IoT Greengrass 核心軟體,而無需將這些許可授予在核心裝置上執行的元件。
下表指出 AWS IoT Greengrass Core 軟體可以以您指定的使用者身分執行的元件類型。如需詳細資訊,請參閱元件類型。
元件類型 | 設定元件使用者 |
---|---|
Nucleus |
|
外掛程式 |
|
一般 |
|
Lambda (非容器化) |
|
Lambda (容器化) |
|
您必須先建立元件使用者,才能在部署組態中指定它。在以 Windows 為基礎的裝置上,您還必須將使用者的使用者名稱和密碼存放在 LocalSystem 帳戶的登入資料管理員執行個體中。如需詳細資訊,請參閱在 Windows 裝置上設定元件使用者。
當您在 Linux 型裝置上設定元件使用者時,您也可以選擇性地指定群組。您可以指定使用者和群組,並以冒號 (:
) 分隔,格式如下:
。如果您未指定群組, AWS IoT Greengrass 核心軟體會預設為使用者的主要群組。您可以使用 名稱或 ID 來識別使用者和群組。user
:group
在 Linux 型裝置上,您也可以以不存在的系統使用者身分執行元件,也稱為未知使用者,以提高安全性。Linux 程序可以發出由相同使用者執行的任何其他程序的訊號。未知使用者不會執行其他程序,因此您可以將元件執行為未知使用者,以防止元件在核心裝置上發出其他元件的訊號。若要以未知使用者身分執行元件,請指定核心裝置上不存在的使用者 ID。您也可以指定不存在的群組 ID,以做為未知群組執行。
您可以為每個元件和每個核心裝置設定使用者。
-
為元件設定
您可以設定每個元件,以與該元件特定的使用者一起執行。建立部署時,您可以為該元件
runWith
組態中的每個元件指定使用者。如果您設定元件, AWS IoT Greengrass 則 Core 軟體會以指定的使用者身分執行元件。否則,它會預設為執行元件,做為您為核心裝置設定的預設使用者。如需在部署組態中指定元件使用者的詳細資訊,請參閱 中的runWith組態參數建立部署。 -
設定核心裝置的預設使用者
您可以設定 AWS IoT Greengrass Core 軟體用來執行元件的預設使用者。當 AWS IoT Greengrass 核心軟體執行元件時,它會檢查您是否為該元件指定了使用者,並使用它來執行元件。如果元件未指定使用者,則 AWS IoT Greengrass 核心軟體會以您為核心裝置設定的預設使用者身分執行元件。如需詳細資訊,請參閱設定預設元件使用者。
注意
在以 Windows 為基礎的裝置上,您必須至少指定預設使用者才能執行元件。
在以 Linux 為基礎的裝置上,如果您未設定使用者執行元件,則適用下列考量事項:
-
如果您將 AWS IoT Greengrass Core 軟體作為根執行,則軟體不會執行元件。如果您以根身分執行 ,則必須指定預設使用者來執行元件。
-
如果您以非根使用者身分執行 AWS IoT Greengrass Core 軟體,則軟體會以該使用者身分執行元件。
在 Windows 裝置上設定元件使用者
在 Windows 型裝置上設定元件使用者
-
在裝置的 LocalSystem 帳戶中建立元件使用者。
net user /add
component-user
password
-
使用 Microsoft 的 PsExec 公用程式
,將元件使用者的使用者名稱和密碼存放在 LocalSystem 帳戶的 Credential Manager 執行個體中。 psexec -s cmd /c cmdkey /generic:
component-user
/user:component-user
/pass:password
注意
在以 Windows 為基礎的裝置上, LocalSystem 帳戶會執行 Greengrass 核,而您必須使用 PsExec 公用程式將元件使用者資訊存放在帳戶中 LocalSystem。使用 Credential Manager 應用程式會將此資訊存放在目前登入使用者的 Windows 帳戶中,而非 LocalSystem帳戶。
設定預設元件使用者
您可以使用部署在核心裝置上設定預設使用者。在此部署中,您會更新 核元件組態。
注意
您也可以使用 --component-default-user
選項安裝 AWS IoT Greengrass Core 軟體時設定預設使用者。如需詳細資訊,請參閱安裝 AWS IoT Greengrass 核心軟體。
建立 部署,指定aws.greengrass.Nucleus
元件的下列組態更新。
下列範例定義以 Linux 為基礎的裝置的部署,將 設定為ggc_user
預設使用者和ggc_group
預設群組。merge
組態更新需要序列化JSON物件。
{ "components": { "aws.greengrass.Nucleus": { "version": "2.14.0", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"posixUser\":\"ggc_user:ggc_group\"}}" } } } }
設定元件的系統資源限制
注意
此功能適用於 2.4.0 版及更新版本的 Greengrass 核元件。目前 AWS IoT Greengrass 不支援 Windows 核心裝置上的此功能。
您可以設定每個元件程序在核心裝置上可以使用的最大數量CPU和RAM用量。
下表顯示支援系統資源限制的元件類型。如需詳細資訊,請參閱元件類型。
元件類型 | 設定系統資源限制 |
---|---|
Nucleus |
|
外掛程式 |
|
一般 |
|
Lambda (非容器化) |
|
Lambda (容器化) |
|
重要
當您在 Docker 容器中執行 AWS IoT Greengrass Core 軟體時,不支援系統資源限制。
您可以為每個元件和每個核心裝置設定系統資源限制。
-
為元件設定
您可以使用該元件特定的系統資源限制來設定每個元件。建立部署時,您可以指定部署中每個元件的系統資源限制。如果元件支援系統資源限制,則 AWS IoT Greengrass Core 軟體會將限制套用至元件的程序。如果您未指定元件的系統資源限制,則 AWS IoT Greengrass Core 軟體會使用您為核心裝置設定的任何預設值。如需詳細資訊,請參閱建立部署。
-
設定核心裝置的預設值
您可以設定 AWS IoT Greengrass Core 軟體套用至支援這些限制之元件的預設系統資源限制。當 AWS IoT Greengrass 核心軟體執行元件時,它會套用您為該元件指定的系統資源限制。如果該元件未指定系統資源限制,則 AWS IoT Greengrass Core 軟體會套用您為核心裝置設定的預設系統資源限制。如果您未指定預設系統資源限制, AWS IoT Greengrass 則 Core 軟體預設不會套用任何系統資源限制。如需詳細資訊,請參閱設定預設系統資源限制。
設定預設系統資源限制
您可以部署 Greengrass 核元件,以設定核心裝置的預設系統資源限制。若要設定預設系統資源限制,請建立 部署,指定aws.greengrass.Nucleus
元件的下列組態更新。
{ "runWithDefault": { "systemResourceLimits": { "cpu":
cpuTimeLimit
, "memory":memoryLimitInKb
} } }
下列範例定義了將CPU時間限制設定為 的部署2
,相當於 4 個CPU核心裝置上的 50% 用量。此範例也會將記憶體用量設定為 100 MB。
{ "components": { "aws.greengrass.Nucleus": { "version": "2.14.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 核元件 2.0.3 版及更早版本的 Greengrass 核心裝置,使用連接埠 8443 連線至 AWS IoT Greengrass 資料平面端點。這些裝置必須能夠在連接埠 8443 上連線至此端點。如需詳細資訊,請參閱允許裝置流量透過 Proxy 或防火牆。
若要在這些案例中啟用通訊, AWS IoT Greengrass 提供下列組態選項:
-
MQTT 透過連接埠 443 進行通訊。如果您的網路允許連線至連接埠 443,您可以將 Greengrass 核心裝置設定為使用連接埠 443 處理MQTT流量,而不是預設連接埠 8883。這可以直接連線至連接埠 443,或透過網路代理伺服器連線。與使用憑證型用戶端身分驗證的預設組態不同,MQTT連接埠 443 上的 會使用裝置服務角色進行身分驗證。
如需詳細資訊,請參閱MQTT 透過連接埠 443 設定。
-
HTTPS 透過連接埠 443 進行通訊。 AWS IoT Greengrass 核心軟體預設會透過連接埠 8443 傳送HTTPS流量,但您可以將其設定為使用連接埠 443。 AWS IoT Greengrass 會使用 Application Layer Protocol Network
(ALPN) TLS延伸來啟用此連線。如同預設組態,HTTPS連接埠 443 使用憑證型用戶端身分驗證。 重要
若要透過連接埠 443 使用ALPN和啟用HTTPS通訊,您的核心裝置必須執行 Java 8 更新 252 或更新版本。Java 第 9 版及更新版本的所有更新也支援 ALPN。
如需詳細資訊,請參閱HTTPS 透過連接埠 443 設定。
-
透過網路代理的連線。您可以設定網路代理伺服器做為連線至 Greengrass 核心裝置的中介。 AWS IoT Greengrass 支援 HTTP和 HTTPS 代理的基本身分驗證。
Greengrass 核心裝置必須執行 Greengrass nucleus 2.5.0 版或更新版本,才能使用HTTPS代理。
AWS IoT Greengrass 核心軟體會透過
ALL_PROXY
、HTTPS_PROXY
、HTTP_PROXY
和NO_PROXY
環境變數,將代理組態傳遞至元件。元件必須使用這些設定透過代理連線。元件使用常用程式庫 (例如 boto3URL、c 和 pythonrequests
套件),這些程式庫通常預設使用這些環境變數進行連線。如果元件也指定這些環境變數, AWS IoT Greengrass 不會覆寫它們。如需詳細資訊,請參閱設定網路代理。
MQTT 透過連接埠 443 設定
您可以在現有核心裝置上MQTT透過連接埠 443 設定 ,或在新核心裝置上安裝 AWS IoT Greengrass 核心軟體時設定 。
在現有核心裝置上MQTT透過連接埠 443 設定
您可以使用部署,在單一核心裝置或一組核心裝置上MQTT透過連接埠 443 設定 。在此部署中,您會更新 核元件組態。當您更新其mqtt
組態時,核會重新啟動。
若要MQTT透過連接埠 443 設定 ,請建立 部署,指定 aws.greengrass.Nucleus
元件的下列組態更新。
{ "mqtt": { "port": 443 } }
下列範例定義MQTT透過連接埠 443 設定的部署。merge
組態更新需要序列化JSON物件。
{ "components": { "aws.greengrass.Nucleus": { "version": "2.14.0", "configurationUpdate": { "merge": "{\"mqtt\":{\"port\":443}}" } } } }
在安裝期間MQTT透過連接埠 443 設定
當您在核心裝置上安裝 AWS IoT Greengrass Core 軟體時,可以透過MQTT連接埠 443 設定 。使用--init-config
安裝程式引數透過MQTT連接埠 443 設定 。您可以在使用手動佈建、機群佈建或自訂佈建安裝 時指定此引數。
HTTPS 透過連接埠 443 設定
此功能需要 v2Greengrass 核.0.4 或更新版本。
您可以在現有核心裝置上HTTPS透過連接埠 443 設定 ,或在新核心裝置上安裝 AWS IoT Greengrass 核心軟體時設定 。
在現有核心裝置上HTTPS透過連接埠 443 設定
您可以使用部署,在單一核心裝置或一組核心裝置上HTTPS透過連接埠 443 設定 。在此部署中,您會更新 核元件組態。
若要HTTPS透過連接埠 443 設定 ,請建立 部署,指定 aws.greengrass.Nucleus
元件的下列組態更新。
{ "greengrassDataPlanePort": 443 }
下列範例定義HTTPS透過連接埠 443 設定的部署。merge
組態更新需要序列化JSON物件。
{ "components": { "aws.greengrass.Nucleus": { "version": "2.14.0", "configurationUpdate": { "merge": "{\"greengrassDataPlanePort\":443}" } } } }
在安裝期間HTTPS透過連接埠 443 設定
當您在核心裝置上安裝 AWS IoT Greengrass Core 軟體時,您可以透過HTTPS連接埠 443 設定 。使用--init-config
安裝程式引數透過HTTPS連接埠 443 設定 。您可以在使用手動佈建、機群佈建或自訂佈建安裝 時指定此引數。
設定網路代理
遵循本節中的程序,設定 Greengrass 核心裝置透過 HTTP或 HTTPS 網路代理連線到網際網路。如需核心裝置使用的端點和連接埠的詳細資訊,請參閱 允許裝置流量透過 Proxy 或防火牆。
重要
如果您的核心裝置執行比 v2.4.0 更早的 Greengrass 核版本,您裝置的角色必須允許下列許可來使用網路代理:
-
iot:Connect
-
iot:Publish
-
iot:Receive
-
iot:Subscribe
這是必要的,因為裝置會使用字符交換服務的 AWS 登入資料來驗證MQTT連線 AWS IoT。裝置使用 從 MQTT接收和安裝部署 AWS 雲端,因此除非您為其角色定義這些許可,否則您的裝置將無法運作。裝置通常使用 X.509 憑證來驗證MQTT連線,但裝置無法使用代理來驗證連線。
如需如何設定裝置角色的詳細資訊,請參閱 授權核心裝置與 AWS 服務互動。
在現有的核心裝置上設定網路代理
您可以使用部署在單一核心裝置上或一組核心裝置上設定網路代理。在此部署中,您會更新 核元件組態。當您更新其networkProxy
組態時,核會重新啟動。
若要設定網路代理,請為合併下列組態更新的aws.greengrass.Nucleus
元件建立部署。此組態更新包含 networkProxy 物件。
{ "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.14.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\"}}}" } } } }
在安裝期間設定網路代理
您可以在核心裝置上安裝 AWS IoT Greengrass 核心軟體時設定網路代理。使用--init-config
安裝程式引數來設定網路代理。您可以在使用手動佈建、機群佈建或自訂佈建安裝 時指定此引數。
讓核心裝置信任HTTPS代理
當您將核心裝置設定為使用HTTPS代理時,您必須將代理伺服器憑證鏈新增至核心裝置的 ,讓它信任HTTPS代理。否則,當核心裝置嘗試透過代理路由流量時,可能會發生錯誤。將代理伺服器 CA 憑證新增至核心裝置的 Amazon 根 CA 憑證檔案。
讓核心裝置信任HTTPS代理
-
尋找核心裝置上的 Amazon 根 CA 憑證檔案。
如果這些位置不存在 Amazon 根 CA 憑證,請檢查 中的
system.rootCaPath
屬性
以尋找其位置。
/config/effectiveConfig.yaml/greengrass/v2
-
將代理伺服器 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 核心裝置必須執行 Greengrass 核 v2.5.0 或更新版本,才能使用HTTPS代理。
如果您設定HTTPS代理,則必須將代理伺服器 CA 憑證新增至核心裝置的 Amazon 根 CA 憑證。如需詳細資訊,請參閱讓核心裝置信任HTTPS代理。
-
userinfo
– (選用) 使用者名稱和密碼資訊。如果您在 中指定此資訊url
,Greengrass 核心裝置會忽略username
和password
欄位。 -
host
– 代理伺服器的主機名稱或 IP 地址。 -
port
– (選用) 連接埠號碼。如果您未指定連接埠,則 Greengrass 核心裝置會使用下列預設值:-
http
– 80 -
https
– 443
-
-
username
-
(選用) 驗證代理伺服器的使用者名稱。
password
-
(選用) 驗證代理伺服器的密碼。
使用由私有 CA 簽署的裝置憑證
如果您使用的是自訂私有憑證授權機構 (CA),您必須將 Greengrass 核greengrassDataPlaneEndpoint
設定為 iotdata
。您可以使用--init-config
安裝程式引數在部署或安裝期間設定此選項。
您可以自訂裝置連線的 Greengrass 資料平面端點。您可以將此組態選項設定為 iotdata
,將 Greengrass 資料平面端點設定為與 IoT 資料端點相同的端點,您可以使用 來指定iotDataEndpoint
。
設定MQTT逾時和快取設定
在 AWS IoT Greengrass 環境中,元件可以使用 MQTT 與 通訊 AWS IoT Core。Core AWS IoT Greengrass 軟體會管理元件MQTT的訊息。當核心裝置失去與 的連線時 AWS 雲端,軟體會快取MQTT訊息,以便在連線還原時稍後重試。您可以設定訊息逾時和快取大小等設定。如需詳細資訊,請參閱 Greengrass 核元件的 mqtt
和 mqtt.spooler
組態參數。
AWS IoT Core 對其MQTT訊息代理程式施加服務配額。這些配額可能適用於您在核心裝置與 之間傳送的訊息 AWS IoT Core。如需詳細資訊,請參閱 中的AWS IoT Core 訊息代理程式服務配額AWS 一般參考。
在IPv6網路上設定 Greengrass Nucleus
Greengrass Nucleus AWS IoT Core 透過 Greengrass 與 APIs進行通訊。Greengrass IPv6 APIs支援雙堆疊環境。
若要為 啟用雙堆疊端點IPv6:
-
將系統屬性
aws.useDualstackEndpoint=true
、 和java.net.preferIPv6Addresses=true
新增至jvmOptions
-
s3EndpointType
設定為DUALSTACK
在部署期間設定此選項,或使用--init-config
安裝程式引數手動佈建。如需詳細資訊,請參閱使用 Amazon S3 雙堆疊端點。
範例 部署的程式碼:
{ "jvmOptions": "-Daws.useDualstackEndpoint=true", "s3EndpointType":"DUALSTACK" }
範例 config.yaml
透過手動佈建:
--- system: ... services: aws.greengrass.Nucleus: ... configuration: ... jvmOptions: "-Daws.useDualstackEndpoint=true -Djava.net.preferIPv6Addresses=true" s3EndpointType: "DUALSTACK"