Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Konfigurieren Sie die AWS IoT Greengrass Core-Software
Die AWS IoT Greengrass Core-Software bietet Optionen, mit denen Sie die Software konfigurieren können. Sie können Bereitstellungen erstellen, um die AWS IoT Greengrass Core-Software auf jedem Core-Gerät zu konfigurieren.
Themen
- Stellen Sie die Greengrass Nucleus-Komponente bereit
- Den Greengrass Nucleus als Systemdienst konfigurieren
- Steuern Sie die Speicherzuweisung mit JVM-Optionen
- Konfigurieren Sie den Benutzer, der die Komponenten ausführt
- Konfigurieren Sie die Systemressourcenlimits für Komponenten
- Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy
- Verwenden Sie ein Gerätezertifikat, das von einer privaten Zertifizierungsstelle signiert wurde
- Konfigurieren Sie MQTT-Timeouts und Cache-Einstellungen
Stellen Sie die Greengrass Nucleus-Komponente bereit
AWS IoT Greengrass stellt die AWS IoT Greengrass Core-Software als Komponente bereit, die Sie auf Ihren Greengrass-Core-Geräten bereitstellen können. Sie können eine Bereitstellung erstellen, um dieselbe Konfiguration auf mehrere Greengrass-Core-Geräte anzuwenden. Weitere Informationen finden Sie unter Grüngraskern und Aktualisieren der AWS IoT Greengrass Core-Software (OTA).
Den Greengrass Nucleus als Systemdienst konfigurieren
Sie müssen die AWS IoT Greengrass Core-Software als Systemdienst im Init-System Ihres Geräts konfigurieren, um Folgendes zu tun:
-
Starten Sie die AWS IoT Greengrass Core-Software, wenn das Gerät bootet. Dies ist eine gute Methode, wenn Sie große Geräteflotten verwalten.
-
Installieren und starten Sie die Plugin-Komponenten. Bei mehreren der AWS bereitgestellten Komponenten handelt es sich um Plugin-Komponenten, sodass sie direkt mit dem Greengrass-Nucleus verbunden werden können. Weitere Informationen zu Komponententypen finden Sie unter. Komponententypen
-
Wenden Sie over-the-air (OTA) -Updates auf die Core-Software des AWS IoT Greengrass Kerngeräts an. Weitere Informationen finden Sie unter Aktualisieren der AWS IoT Greengrass Core-Software (OTA).
-
Ermöglichen Sie es den Komponenten, die AWS IoT Greengrass Core-Software oder das Kerngerät neu zu starten, wenn eine Bereitstellung die Komponente auf eine neue Version aktualisiert oder bestimmte Konfigurationsparameter aktualisiert. Weitere Informationen finden Sie im Schritt zum Bootstrap-Lebenszyklus.
Wichtig
Auf Windows Core-Geräten müssen Sie die AWS IoT Greengrass Core-Software als Systemdienst einrichten.
Themen
Konfigurieren Sie den Nucleus als Systemdienst (Linux)
Linux-Geräte unterstützen verschiedene Init-Systeme wie initd, systemd und SystemV. Sie verwenden das --setup-system-service true
Argument bei der Installation der AWS IoT Greengrass Core-Software, um den Nucleus als Systemdienst zu starten und ihn so zu konfigurieren, dass er beim Booten des Geräts gestartet wird. Das Installationsprogramm konfiguriert die AWS IoT Greengrass Core-Software als Systemdienst mit systemd.
Sie können den Nucleus auch manuell so konfigurieren, dass er als Systemdienst ausgeführt wird. Das folgende Beispiel ist eine Servicedatei für 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
Nachdem Sie den Systemdienst konfiguriert haben, können Sie die folgenden Befehle ausführen, um das Starten des Geräts beim Systemstart und das Starten oder Beenden der AWS IoT Greengrass Core-Software zu konfigurieren.
-
Um den Status des Dienstes zu überprüfen (systemd)
sudo systemctl status greengrass.service
-
Damit der Nucleus beim Booten des Geräts starten kann.
sudo systemctl enable greengrass.service
-
Um zu verhindern, dass der Nucleus beim Booten des Geräts startet.
sudo systemctl disable greengrass.service
-
Um die AWS IoT Greengrass Core-Software zu starten.
sudo systemctl start greengrass.service
-
Um die AWS IoT Greengrass Core-Software zu beenden.
sudo systemctl stop greengrass.service
Konfigurieren Sie den Nucleus als Systemdienst (Windows)
Sie verwenden das --setup-system-service true
Argument bei der Installation der AWS IoT Greengrass Core-Software, um den Nucleus als Windows-Dienst zu starten und ihn so zu konfigurieren, dass er beim Booten des Geräts gestartet wird.
Nachdem Sie den Dienst konfiguriert haben, können Sie die folgenden Befehle ausführen, um das Starten des Geräts beim Systemstart und das Starten oder Beenden der AWS IoT Greengrass Core-Software zu konfigurieren. Sie müssen die Befehlszeile oder PowerShell als Administrator ausführen, um diese Befehle ausführen zu können.
Steuern Sie die Speicherzuweisung mit JVM-Optionen
Wenn Sie AWS IoT Greengrass auf einem Gerät mit begrenztem Arbeitsspeicher arbeiten, können Sie die Optionen der Java Virtual Machine (JVM) verwenden, um die maximale Heap-Größe, die Garbage-Collection-Modi und die Compiler-Optionen zu steuern, mit denen die Speichermenge gesteuert wird, die die Core-Software verwendet. AWS IoT Greengrass Die Heap-Größe in der JVM bestimmt, wie viel Speicher eine Anwendung verwenden kann, bevor die Speicherbereinigung erfolgt
Je nach Ihren Anforderungen können Sie die AWS IoT Greengrass Core-Software mit reduzierter Speicherzuweisung oder mit minimaler Speicherzuweisung ausführen.
Reduzierte Speicherzuweisung
Um die AWS IoT Greengrass Core-Software mit reduzierter Speicherzuweisung auszuführen, empfehlen wir Ihnen, das folgende Beispiel für ein Update zur Zusammenführung von Konfigurationen zu verwenden, um die JVM-Optionen in Ihrer Nucleus-Konfiguration festzulegen:
{ "jvmOptions": "-Xmx64m -XX:+UseSerialGC -XX:TieredStopAtLevel=1" }
Minimale Speicherzuweisung
Um die AWS IoT Greengrass Core-Software mit minimaler Speicherzuweisung auszuführen, empfehlen wir Ihnen, das folgende Beispiel für ein Update zur Zusammenführung von Konfigurationen zu verwenden, um die JVM-Optionen in Ihrer Nucleus-Konfiguration festzulegen:
{ "jvmOptions": "-Xmx32m -XX:+UseSerialGC -Xint" }
Diese Beispielupdates für die Zusammenführung von Konfigurationen verwenden die folgenden JVM-Optionen:
-Xmx
NN
m-
Legt die maximale JVM-Heap-Größe fest.
Verwenden Sie für eine reduzierte Speicherzuweisung
-Xmx64m
als Startwert, um die Heap-Größe auf 64 MB zu begrenzen. Verwenden Sie für eine minimale Speicherzuweisung den Wert-Xmx32m
als Startwert, um die Heap-Größe auf 32 MB zu begrenzen.Sie können den
-Xmx
Wert je nach Ihren tatsächlichen Anforderungen erhöhen oder verringern. Es wird jedoch dringend empfohlen, die maximale Heap-Größe nicht unter 16 MB festzulegen. Wenn die maximale Heap-Größe für Ihre Umgebung zu niedrig ist, kann es bei der AWS IoT Greengrass Core-Software zu unerwarteten Fehlern kommen, da nicht genügend Arbeitsspeicher zur Verfügung steht. -XX:+UseSerialGC
-
Gibt an, dass die serielle Garbage-Collection für den JVM-Heap-Speicherplatz verwendet werden soll. Der serielle Garbage-Collector ist langsamer, benötigt aber weniger Speicher als andere JVM-Garbage-Collection-Implementierungen.
-XX:TieredStopAtLevel=1
-
Weist die JVM an, den Java just-in-time (JIT) -Compiler einmal zu verwenden. Da JIT-kompilierter Code Speicherplatz im Gerätespeicher belegt, verbraucht die mehrfache Verwendung des JIT-Compilers mehr Speicher als eine einzelne Kompilierung.
-Xint
-
Weist die JVM an, den just-in-time (JIT-) Compiler nicht zu verwenden. Stattdessen wird die JVM nur im interpretierten Modus ausgeführt. Dieser Modus ist langsamer als das Ausführen von JIT-kompiliertem Code. Der kompilierte Code belegt jedoch keinen Speicherplatz.
Hinweise zum Erstellen von Updates zur Zusammenführung von Konfigurationen finden Sie unterKomponentenkonfigurationen aktualisieren.
Konfigurieren Sie den Benutzer, der die Komponenten ausführt
Die AWS IoT Greengrass Core-Software kann Komponentenprozesse als Systembenutzer und Gruppe ausführen, die sich von der Gruppe unterscheiden, die die Software ausführt. Dies erhöht die Sicherheit, da Sie die AWS IoT Greengrass Core-Software als Root-Benutzer oder als Administratorbenutzer ausführen können, ohne Komponenten, die auf dem Kerngerät ausgeführt werden, diese Berechtigungen zu erteilen.
In der folgenden Tabelle ist angegeben, welche Komponententypen die AWS IoT Greengrass Core-Software als von Ihnen angegebener Benutzer ausführen kann. Weitere Informationen finden Sie unter Komponententypen.
Komponententyp | Konfigurieren Sie den Komponentenbenutzer |
---|---|
Nucleus |
|
Plug-In |
|
Generisch |
|
Lambda (nicht containerisiert) |
|
Lambda (containerisiert) |
|
Sie müssen den Komponentenbenutzer erstellen, bevor Sie ihn in einer Bereitstellungskonfiguration angeben können. Auf Windows-Geräten müssen Sie außerdem den Benutzernamen und das Kennwort für den Benutzer in der Credential Manager-Instanz des Kontos speichern. LocalSystem Weitere Informationen finden Sie unter Richten Sie einen Komponentenbenutzer auf Windows-Geräten ein.
Wenn Sie den Komponentenbenutzer auf einem Linux-basierten Gerät konfigurieren, können Sie optional auch eine Gruppe angeben. Sie geben den Benutzer und die Gruppe, getrennt durch einen Doppelpunkt (:
), im folgenden Format an:
. Wenn Sie keine Gruppe angeben, verwendet die AWS IoT Greengrass Core-Software standardmäßig die primäre Gruppe des Benutzers. Sie können entweder den Namen oder die ID verwenden, um den Benutzer und die Gruppe zu identifizieren. user
:group
Auf Linux-basierten Geräten können Sie Komponenten auch als Systembenutzer ausführen, der nicht existiert (auch als unbekannter Benutzer bezeichnet), um die Sicherheit zu erhöhen. Ein Linux-Prozess kann jeden anderen Prozess signalisieren, der von demselben Benutzer ausgeführt wird. Ein unbekannter Benutzer führt keine anderen Prozesse aus. Sie können also Komponenten als unbekannter Benutzer ausführen, um zu verhindern, dass Komponenten andere Komponenten auf dem Kerngerät signalisieren. Um Komponenten als unbekannter Benutzer auszuführen, geben Sie eine Benutzer-ID an, die auf dem Kerngerät nicht existiert. Sie können auch eine Gruppen-ID angeben, die nicht existiert, um sie als unbekannte Gruppe auszuführen.
Sie können den Benutzer für jede Komponente und für jedes Kerngerät konfigurieren.
-
Für eine Komponente konfigurieren
Sie können jede Komponente so konfigurieren, dass sie mit einem für diese Komponente spezifischen Benutzer ausgeführt wird. Wenn Sie eine Einrichtung erstellen, können Sie den Benutzer für jede Komponente in der
runWith
Konfiguration für diese Komponente angeben. Die AWS IoT Greengrass Core-Software führt Komponenten als der angegebene Benutzer aus, wenn Sie sie konfigurieren. Andernfalls werden Komponenten standardmäßig als Standardbenutzer ausgeführt, den Sie für das Kerngerät konfigurieren. Weitere Informationen zur Angabe des Komponentenbenutzers in der Bereitstellungskonfiguration finden Sie unter dem runWithKonfigurationsparameter unterErstellen von Bereitstellungen. -
Konfigurieren Sie den Standardbenutzer für ein Kerngerät
Sie können einen Standardbenutzer konfigurieren, den die AWS IoT Greengrass Core-Software zum Ausführen von Komponenten verwendet. Wenn die AWS IoT Greengrass Core-Software eine Komponente ausführt, prüft sie, ob Sie einen Benutzer für diese Komponente angegeben haben, und verwendet ihn, um die Komponente auszuführen. Wenn in der Komponente kein Benutzer angegeben ist, führt die AWS IoT Greengrass Core-Software die Komponente als Standardbenutzer aus, den Sie für das Kerngerät konfiguriert haben. Weitere Informationen finden Sie unter Konfigurieren Sie den Standardkomponentenbenutzer.
Anmerkung
Auf Windows-basierten Geräten müssen Sie mindestens einen Standardbenutzer angeben, um Komponenten auszuführen.
Auf Linux-basierten Geräten gelten die folgenden Überlegungen, wenn Sie einen Benutzer nicht für die Ausführung von Komponenten konfigurieren:
-
Wenn Sie die AWS IoT Greengrass Core-Software als Root-Benutzer ausführen, führt die Software keine Komponenten aus. Sie müssen einen Standardbenutzer für die Ausführung von Komponenten angeben, wenn Sie sie als Root ausführen.
-
Wenn Sie die AWS IoT Greengrass Core-Software als Benutzer ausführen, der kein Root-Benutzer ist, führt die Software die Komponenten als dieser Benutzer aus.
Themen
Richten Sie einen Komponentenbenutzer auf Windows-Geräten ein
So richten Sie einen Komponentenbenutzer auf einem Windows-basierten Gerät ein
-
Erstellen Sie den Komponentenbenutzer im LocalSystem Konto auf dem Gerät.
net user /add
component-user
password
-
Verwenden Sie das PsExec Microsoft-Hilfsprogramm
, um den Benutzernamen und das Passwort für den Komponentenbenutzer in der Credential Manager-Instanz für das LocalSystem Konto zu speichern. psexec -s cmd /c cmdkey /generic:
component-user
/user:component-user
/pass:password
Anmerkung
Auf Windows-basierten Geräten wird auf dem LocalSystem Konto der Greengrass-Nucleus ausgeführt, und Sie müssen das PsExec Hilfsprogramm verwenden, um die Benutzerinformationen der Komponente im Konto zu speichern. LocalSystem Wenn Sie die Credential Manager-Anwendung verwenden, werden diese Informationen nicht im Konto, sondern im Windows-Konto des aktuell angemeldeten Benutzers gespeichert. LocalSystem
Konfigurieren Sie den Standardkomponentenbenutzer
Sie können eine Bereitstellung verwenden, um den Standardbenutzer auf einem Kerngerät zu konfigurieren. In dieser Bereitstellung aktualisieren Sie die Nucleus-Komponentenkonfiguration.
Anmerkung
Mit der --component-default-user
Option können Sie auch den Standardbenutzer festlegen, wenn Sie die AWS IoT Greengrass Core-Software installieren. Weitere Informationen finden Sie unter Installieren Sie die AWS IoT Greengrass Core-Software..
Erstellen Sie eine Bereitstellung, die das folgende Konfigurationsupdate für die aws.greengrass.Nucleus
Komponente angibt.
Das folgende Beispiel definiert eine Bereitstellung für ein Linux-basiertes Gerät, das als Standardbenutzer und ggc_user
ggc_group
als Standardgruppe konfiguriert wird. Das merge
Konfigurationsupdate erfordert ein serialisiertes JSON-Objekt.
{ "components": { "aws.greengrass.Nucleus": { "version": "2.12.6", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"posixUser\":\"ggc_user:ggc_group\"}}" } } } }
Konfigurieren Sie die Systemressourcenlimits für Komponenten
Anmerkung
Diese Funktion ist für Version 2.4.0 und höher der Greengrass Nucleus-Komponente verfügbar. AWS IoT Greengrass unterstützt diese Funktion derzeit nicht auf Windows Core-Geräten.
Sie können die maximale CPU- und RAM-Auslastung konfigurieren, die die Prozesse der einzelnen Komponenten auf dem Kerngerät verwenden können.
Die folgende Tabelle zeigt die Komponententypen, die Systemressourcenlimits unterstützen. Weitere Informationen finden Sie unter Komponententypen.
Komponententyp | Konfigurieren Sie Systemressourcenlimits |
---|---|
Nucleus |
|
Plug-In |
|
Generisch |
|
Lambda (nicht containerisiert) |
|
Lambda (containerisiert) |
|
Wichtig
Systemressourcenlimits werden nicht unterstützt, wenn Sie die AWS IoT Greengrass Core-Software in einem Docker-Container ausführen.
Sie können Systemressourcenlimits für jede Komponente und für jedes Kerngerät konfigurieren.
-
Für eine Komponente konfigurieren
Sie können jede Komponente mit spezifischen Systemressourcenlimits für diese Komponente konfigurieren. Wenn Sie eine Bereitstellung erstellen, können Sie die Systemressourcenlimits für jede Komponente in der Bereitstellung angeben. Wenn die Komponente Systemressourcenlimits unterstützt, wendet die AWS IoT Greengrass Core-Software die Grenzwerte auf die Prozesse der Komponente an. Wenn Sie keine Systemressourcenlimits für eine Komponente angeben, verwendet die AWS IoT Greengrass Core-Software alle Standardeinstellungen, die Sie für das Kerngerät konfiguriert haben. Weitere Informationen finden Sie unter Erstellen von Bereitstellungen.
-
Konfigurieren Sie die Standardeinstellungen für ein Kerngerät
Sie können die Standardgrenzwerte für Systemressourcen konfigurieren, die die AWS IoT Greengrass Core-Software für Komponenten anwendet, die diese Grenzwerte unterstützen. Wenn die AWS IoT Greengrass Core-Software eine Komponente ausführt, wendet sie die Systemressourcenlimits an, die Sie für diese Komponente angeben. Wenn diese Komponente keine Systemressourcenlimits festlegt, wendet die AWS IoT Greengrass Core-Software die standardmäßigen Systemressourcenlimits an, die Sie für das Kerngerät konfigurieren. Wenn Sie keine standardmäßigen Systemressourcenlimits angeben, wendet die AWS IoT Greengrass Core-Software standardmäßig keine Systemressourcenlimits an. Weitere Informationen finden Sie unter Konfigurieren Sie die Standardgrenzwerte für Systemressourcen.
Konfigurieren Sie die Standardgrenzwerte für Systemressourcen
Sie können die Greengrass Nucleus-Komponente einsetzen, um die standardmäßigen Systemressourcenlimits für ein Kerngerät zu konfigurieren. Um die standardmäßigen Systemressourcenlimits zu konfigurieren, erstellen Sie eine Bereitstellung, die das folgende Konfigurationsupdate für die aws.greengrass.Nucleus
Komponente spezifiziert.
{ "runWithDefault": { "systemResourceLimits": { "cpu":
cpuTimeLimit
, "memory":memoryLimitInKb
} } }
Das folgende Beispiel definiert eine Bereitstellung, bei der das CPU-Zeitlimit auf konfiguriert wird2
, was einer Auslastung von 50% auf einem Gerät mit 4 CPU-Kernen entspricht. In diesem Beispiel wird auch die Speichernutzung auf 100 MB konfiguriert.
{ "components": { "aws.greengrass.Nucleus": { "version": "2.12.6", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"systemResourceLimits\":\"cpus\":2,\"memory\":102400}}}" } } } }
Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy
AWS IoT Greengrass Kerngeräte kommunizieren über das MQTT-Messaging-Protokoll mit TLS-Client-Authentifizierung mit. AWS IoT Core Standardmäßig verwendet MQTT über TLS den Port 8883. Doch als Sicherheitsmaßnahme können restriktive Umgebungen den ein- und ausgehenden Datenverkehr auf einen kleinen Bereich von TCP-Ports einschränken. Zum Beispiel könnte eine Unternehmens-Firewall Port 443 für HTTPS-Datenverkehr öffnen, andere Ports, die für weniger geläufige Protokolle genutzt werden, wie z. B. Port 8883, für MQTT-Datenverkehr schließen. In anderen restriktiven Umgebungen muss der gesamte Datenverkehr möglicherweise über einen Proxy geleitet werden, bevor eine Verbindung zum Internet hergestellt wird.
Anmerkung
Greengrass-Core-Geräte, auf denen Greengrass Nucleus Component v2.0.3 und früher ausgeführt wird, verwenden Port 8443, um eine Verbindung zum Datenebenen-Endpunkt herzustellen. AWS IoT Greengrass Diese Geräte müssen in der Lage sein, über Port 8443 eine Verbindung zu diesem Endpunkt herzustellen. Weitere Informationen finden Sie unter Zulassen von Gerätedatenverkehr über einen Proxy oder eine Firewall.
AWS IoT Greengrass Bietet die folgenden Konfigurationsoptionen, um die Kommunikation in diesen Szenarien zu ermöglichen:
-
MQTT-Kommunikation über Port 443. Wenn Ihr Netzwerk Verbindungen zu Port 443 zulässt, können Sie das Greengrass-Core-Gerät so konfigurieren, dass es Port 443 für MQTT-Verkehr anstelle des Standardports 8883 verwendet. Dabei kann es sich um eine direkte Verbindung mit Port 443 oder eine Verbindung über einen Netzwerk-Proxy-Server handeln. Im Gegensatz zur Standardkonfiguration, die eine zertifikatsbasierte Client-Authentifizierung verwendet, verwendet MQTT auf Port 443 die Gerätedienstrolle für die Authentifizierung.
Weitere Informationen finden Sie unter Konfigurieren Sie MQTT über Port 443.
-
HTTPS-Kommunikation über Port 443. Die AWS IoT Greengrass Core-Software sendet standardmäßig HTTPS-Verkehr über Port 8443, aber Sie können sie so konfigurieren, dass Port 443 verwendet wird. AWS IoT Greengrass verwendet die TLS-Erweiterung Application Layer Protocol Network
(ALPN), um diese Verbindung zu aktivieren. Wie bei der Standardkonfiguration verwendet HTTPS auf Port 443 die zertifikatsbasierte Clientauthentifizierung. Wichtig
Um ALPN zu verwenden und die HTTPS-Kommunikation über Port 443 zu aktivieren, muss auf Ihrem Kerngerät Java 8 Update 252 oder höher ausgeführt werden. Alle Updates von Java Version 9 und höher unterstützen auch ALPN.
Weitere Informationen finden Sie unter Konfigurieren Sie HTTPS über Port 443.
-
Verbindung über einen Netzwerk-Proxy. Sie können einen Netzwerk-Proxyserver so konfigurieren, dass er als Vermittler für die Verbindung zum Greengrass-Core-Gerät fungiert. AWS IoT Greengrass unterstützt die Standardauthentifizierung für HTTP- und HTTPS-Proxys.
Greengrass-Core-Geräte müssen Greengrass Nucleus v2.5.0 oder höher ausführen, um HTTPS-Proxys verwenden zu können.
Die AWS IoT Greengrass Core-Software übergibt die Proxykonfiguration über die Umgebungsvariablen
ALL_PROXY
,,HTTP_PROXY
und an die Komponenten.HTTPS_PROXY
NO_PROXY
Komponenten müssen diese Einstellungen verwenden, um eine Verbindung über den Proxy herzustellen. Komponenten verwenden gängige Bibliotheken (wie boto3, cURL und dasrequests
Python-Paket), die normalerweise diese Umgebungsvariablen standardmäßig verwenden, um Verbindungen herzustellen. Wenn eine Komponente auch diese Umgebungsvariablen spezifiziert, überschreibt AWS IoT Greengrass sie sie nicht.Weitere Informationen finden Sie unter Konfigurieren Sie einen Netzwerk-Proxy.
Konfigurieren Sie MQTT über Port 443
Sie können MQTT über Port 443 auf vorhandenen Kerngeräten konfigurieren oder wenn Sie die AWS IoT Greengrass Core-Software auf einem neuen Kerngerät installieren.
Themen
Konfigurieren Sie MQTT über Port 443 auf vorhandenen Kerngeräten
Sie können eine Bereitstellung verwenden, um MQTT über Port 443 auf einem einzelnen Core-Gerät oder einer Gruppe von Core-Geräten zu konfigurieren. In dieser Bereitstellung aktualisieren Sie die Nucleus-Komponentenkonfiguration. Der Nucleus wird neu gestartet, wenn Sie seine mqtt
Konfiguration aktualisieren.
Um MQTT über Port 443 zu konfigurieren, erstellen Sie ein Deployment, das das folgende Konfigurationsupdate für die aws.greengrass.Nucleus
Komponente spezifiziert.
{ "mqtt": { "port": 443 } }
Das folgende Beispiel definiert eine Bereitstellung, die MQTT über Port 443 konfiguriert. Das merge
Konfigurationsupdate erfordert ein serialisiertes JSON-Objekt.
{ "components": { "aws.greengrass.Nucleus": { "version": "2.12.6", "configurationUpdate": { "merge": "{\"mqtt\":{\"port\":443}}" } } } }
Konfigurieren Sie MQTT während der Installation über Port 443
Sie können MQTT über Port 443 konfigurieren, wenn Sie die AWS IoT Greengrass Core-Software auf einem Core-Gerät installieren. Verwenden Sie das --init-config
Installer-Argument, um MQTT über Port 443 zu konfigurieren. Sie können dieses Argument angeben, wenn Sie die Installation mit manueller Bereitstellung, Flottenbereitstellung oder benutzerdefinierter Bereitstellung durchführen.
Konfigurieren Sie HTTPS über Port 443
Für diese Funktion ist Version Grüngraskern 2.0.4 oder höher erforderlich.
Sie können HTTPS über Port 443 auf vorhandenen Core-Geräten oder bei der Installation der AWS IoT Greengrass Core-Software auf einem neuen Core-Gerät konfigurieren.
Themen
Konfigurieren Sie HTTPS über Port 443 auf vorhandenen Core-Geräten
Sie können eine Bereitstellung verwenden, um HTTPS über Port 443 auf einem einzelnen Core-Gerät oder einer Gruppe von Core-Geräten zu konfigurieren. In dieser Bereitstellung aktualisieren Sie die Nucleus-Komponentenkonfiguration.
Um HTTPS über Port 443 zu konfigurieren, erstellen Sie eine Bereitstellung, die das folgende Konfigurationsupdate für die aws.greengrass.Nucleus
Komponente spezifiziert.
{ "greengrassDataPlanePort": 443 }
Das folgende Beispiel definiert eine Bereitstellung, die HTTPS über Port 443 konfiguriert. Das merge
Konfigurationsupdate erfordert ein serialisiertes JSON-Objekt.
{ "components": { "aws.greengrass.Nucleus": { "version": "2.12.6", "configurationUpdate": { "merge": "{\"greengrassDataPlanePort\":443}" } } } }
Konfigurieren Sie HTTPS während der Installation über Port 443
Sie können HTTPS über Port 443 konfigurieren, wenn Sie die AWS IoT Greengrass Core-Software auf einem Core-Gerät installieren. Verwenden Sie das --init-config
Installer-Argument, um HTTPS über Port 443 zu konfigurieren. Sie können dieses Argument angeben, wenn Sie die Installation mit manueller Bereitstellung, Flottenbereitstellung oder benutzerdefinierter Bereitstellung durchführen.
Konfigurieren Sie einen Netzwerk-Proxy
Gehen Sie wie in diesem Abschnitt beschrieben vor, um Greengrass-Core-Geräte so zu konfigurieren, dass sie sich über einen HTTP- oder HTTPS-Netzwerk-Proxy mit dem Internet verbinden. Weitere Informationen zu den Endpunkten und Anschlüssen, die Kerngeräte verwenden, finden Sie unter. Zulassen von Gerätedatenverkehr über einen Proxy oder eine Firewall
Wichtig
Wenn auf Ihrem Kerngerät eine Version von Greengrass Nucleus vor v2.4.0 ausgeführt wird, muss die Rolle Ihres Geräts die folgenden Berechtigungen für die Verwendung eines Netzwerk-Proxys zulassen:
-
iot:Connect
-
iot:Publish
-
iot:Receive
-
iot:Subscribe
Dies ist notwendig, da das Gerät AWS Anmeldeinformationen vom Token-Austauschdienst verwendet, um MQTT-Verbindungen zu authentifizieren. AWS IoT Das Gerät verwendet MQTT, um Bereitstellungen vom zu empfangen und zu installieren. Ihr Gerät funktioniert also nur AWS Cloud, wenn Sie diese Berechtigungen für seine Rolle definieren. Geräte verwenden normalerweise X.509-Zertifikate, um MQTT-Verbindungen zu authentifizieren, aber Geräte können dies nicht tun, um sich zu authentifizieren, wenn sie einen Proxy verwenden.
Weitere Informationen zur Konfiguration der Geräterolle finden Sie unter. Autorisieren Sie Kerngeräte für die Interaktion mit Diensten AWS
Themen
Konfigurieren Sie einen Netzwerk-Proxy auf vorhandenen Core-Geräten
Sie können eine Bereitstellung verwenden, um einen Netzwerk-Proxy auf einem einzelnen Core-Gerät oder einer Gruppe von Core-Geräten zu konfigurieren. In dieser Bereitstellung aktualisieren Sie die Nucleus-Komponentenkonfiguration. Der Nucleus wird neu gestartet, wenn Sie seine networkProxy
Konfiguration aktualisieren.
Um einen Netzwerk-Proxy zu konfigurieren, erstellen Sie ein Deployment für die aws.greengrass.Nucleus
Komponente, die das folgende Konfigurationsupdate zusammenführt. Dieses Konfigurationsupdate enthält das NetworkProxy-Objekt.
{ "networkProxy": { "noProxyAddresses": "http://192.168.0.1,www.example.com", "proxy": { "url": "https://my-proxy-server:1100" } } }
Das folgende Beispiel definiert eine Bereitstellung, die einen Netzwerk-Proxy konfiguriert. Das merge
Konfigurationsupdate erfordert ein serialisiertes JSON-Objekt.
{ "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\"}}}" } } } }
Konfigurieren Sie während der Installation einen Netzwerk-Proxy
Sie können einen Netzwerk-Proxy konfigurieren, wenn Sie die AWS IoT Greengrass Core-Software auf einem Core-Gerät installieren. Verwenden Sie das --init-config
Installer-Argument, um den Netzwerk-Proxy zu konfigurieren. Sie können dieses Argument angeben, wenn Sie die Installation mit manueller Bereitstellung, Flottenbereitstellung oder benutzerdefinierter Bereitstellung durchführen.
Ermöglichen Sie dem Kerngerät, einem HTTPS-Proxy zu vertrauen
Wenn Sie ein Kerngerät für die Verwendung eines HTTPS-Proxys konfigurieren, müssen Sie die Zertifikatskette des Proxyservers zu der Zertifikatskette des Kerngeräts hinzufügen, damit es dem HTTPS-Proxy vertrauen kann. Andernfalls könnten auf dem Kerngerät Fehler auftreten, wenn es versucht, den Verkehr über den Proxy weiterzuleiten. Fügen Sie das Proxy-Server-CA-Zertifikat zur Amazon-Root-CA-Zertifikatsdatei des Kerngeräts hinzu.
Um dem Kerngerät zu ermöglichen, dem HTTPS-Proxy zu vertrauen
-
Suchen Sie die Amazon-Root-CA-Zertifikatsdatei auf dem Core-Gerät.
-
Wenn Sie die AWS IoT Greengrass Core-Software mit automatischer Bereitstellung installiert haben, befindet sich die Amazon-Root-CA-Zertifikatsdatei unter
.
/rootCA.pem/greengrass/v2
-
Wenn Sie die AWS IoT Greengrass Core-Software mit manueller oder Flottenbereitstellung installiert haben, befindet sich die Amazon-Root-CA-Zertifikatsdatei möglicherweise unter
.
/AmazonRootCA1.pem/greengrass/v2
Wenn das Amazon-Root-CA-Zertifikat an diesen Standorten nicht vorhanden ist, überprüfen Sie die
system.rootCaPath
Immobilie unter,
um den Speicherort zu ermitteln.
/config/effectiveConfig.yaml/greengrass/v2
-
-
Fügen Sie den Inhalt der Proxyserver-CA-Zertifikatsdatei zur Amazon-Root-CA-Zertifikatsdatei hinzu.
Das folgende Beispiel zeigt ein Proxyserver-CA-Zertifikat, das der Amazon-Root-CA-Zertifikatsdatei hinzugefügt wurde.
-----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-----
Das NetworkProxy-Objekt
Geben Sie mithilfe des networkProxy
-Objekts Informationen zum Netzwerk-Proxy an. Dieses Objekt enthält die folgenden Informationen:
noProxyAddresses
-
(Optional) Eine durch Kommas getrennte Liste von IP-Adressen oder Hostnamen, die vom Proxy ausgenommen sind.
proxy
-
Der Proxy, zu dem eine Verbindung hergestellt werden soll. Dieses Objekt enthält die folgenden Informationen:
url
-
Die URL des Proxyservers im Format
scheme://userinfo@host:port
.-
scheme
— Das Schema, dashttp
oder sein musshttps
.Wichtig
Greengrass-Core-Geräte müssen Greengrass Nucleus v2.5.0 oder höher ausführen, um HTTPS-Proxys verwenden zu können.
Wenn Sie einen HTTPS-Proxy konfigurieren, müssen Sie das Proxy-Server-CA-Zertifikat zum Amazon-Root-CA-Zertifikat des Kerngeräts hinzufügen. Weitere Informationen finden Sie unter Ermöglichen Sie dem Kerngerät, einem HTTPS-Proxy zu vertrauen.
-
userinfo
— (Optional) Der Benutzername und das Passwort. Wenn Sie diese Informationen in der angebenurl
, ignoriert das Greengrass-Core-Gerät die Felderusername
undpassword
. -
host
— Der Hostname oder die IP-Adresse des Proxyservers. -
port
— (Optional) Die Portnummer. Wenn Sie den Port nicht angeben, verwendet das Greengrass-Core-Gerät die folgenden Standardwerte:-
http
— 80 -
https
— 443
-
-
username
-
(Optional) Der Benutzername, der den Proxyserver authentifiziert.
password
-
(Optional) Das Passwort, das den Proxyserver authentifiziert.
Verwenden Sie ein Gerätezertifikat, das von einer privaten Zertifizierungsstelle signiert wurde
Wenn Sie eine benutzerdefinierte private Zertifizierungsstelle (CA) verwenden, müssen Sie die Greengrass-Kerne auf setzen. greengrassDataPlaneEndpoint
iotdata
Sie können diese Option während der Bereitstellung oder Installation mithilfe des --init-config
Installer-Arguments festlegen.
Sie können den Endpunkt der Greengrass-Datenebene anpassen, an den das Gerät eine Verbindung herstellt. Sie können diese Konfigurationsoption auf einstellen, iotdata
um den Endpunkt der Greengrass-Datenebene auf denselben Endpunkt wie den IoT-Datenendpunkt festzulegen, den Sie mit dem iotDataEndpoint
angeben können.
Konfigurieren Sie MQTT-Timeouts und Cache-Einstellungen
In der AWS IoT Greengrass Umgebung können Komponenten MQTT verwenden, um mit ihnen zu kommunizieren. AWS IoT Core Die AWS IoT Greengrass Core-Software verwaltet MQTT-Nachrichten für Komponenten. Wenn das Kerngerät die Verbindung zum verliert AWS Cloud, speichert die Software MQTT-Nachrichten im Cache, um es später erneut zu versuchen, wenn die Verbindung wiederhergestellt ist. Sie können Einstellungen wie Nachrichten-Timeouts und die Größe des Caches konfigurieren. Weitere Informationen finden Sie in den mqtt
und den mqtt.spooler
Konfigurationsparametern der Greengrass Nucleus-Komponente.
AWS IoT Core legt seinem MQTT-Nachrichtenbroker Dienstkontingente fest. Diese Kontingente gelten möglicherweise für Nachrichten, die Sie zwischen Kerngeräten und senden. AWS IoT Core Weitere Informationen finden Sie unter AWS IoT Core Message Broker Service-Kontingente in der Allgemeine AWS-Referenz.