Konfigurieren Sie die AWS IoT Greengrass Core-Software - AWS IoT Greengrass

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.

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.

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=/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

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.

Windows Command Prompt (CMD)
  • Um den Status des Dienstes zu überprüfen

    sc query "greengrass"
  • Damit der Nucleus beim Booten des Geräts starten kann.

    sc config "greengrass" start=auto
  • Um zu verhindern, dass der Nucleus beim Booten des Geräts startet.

    sc config "greengrass" start=disabled
  • Um die AWS IoT Greengrass Core-Software zu starten.

    sc start "greengrass"
  • Um die AWS IoT Greengrass Core-Software zu beenden.

    sc stop "greengrass"
    Anmerkung

    Auf Windows-Geräten ignoriert die AWS IoT Greengrass Core-Software dieses Abschaltsignal, während sie die Prozesse der Greengrass-Komponenten herunterfährt. Wenn die AWS IoT Greengrass Core-Software das Signal zum Herunterfahren ignoriert, wenn Sie diesen Befehl ausführen, warten Sie einige Sekunden und versuchen Sie es erneut.

PowerShell
  • Um den Status des Dienstes zu überprüfen

    Get-Service -Name "greengrass"
  • Damit der Nucleus beim Booten des Geräts starten kann.

    Set-Service -Name "greengrass" -Status stopped -StartupType automatic
  • Um zu verhindern, dass der Nucleus beim Booten des Geräts startet.

    Set-Service -Name "greengrass" -Status stopped -StartupType disabled
  • Um die AWS IoT Greengrass Core-Software zu starten.

    Start-Service -Name "greengrass"
  • Um die AWS IoT Greengrass Core-Software zu beenden.

    Stop-Service -Name "greengrass"
    Anmerkung

    Auf Windows-Geräten ignoriert die AWS IoT Greengrass Core-Software dieses Abschaltsignal, während sie die Prozesse der Greengrass-Komponenten herunterfährt. Wenn die AWS IoT Greengrass Core-Software das Signal zum Herunterfahren ignoriert, wenn Sie diesen Befehl ausführen, warten Sie einige Sekunden und versuchen Sie es erneut.

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 oder bevor der Anwendung der Arbeitsspeicher ausgeht. Die maximale Heap-Größe gibt die maximale Größe des Arbeitsspeichers an, die bei einer großen Auslastung von der JVM für die Heap-Erweiterung zugewiesen werden kann.

Um die Speicherzuweisung zu steuern, erstellen Sie eine neue Bereitstellung oder überarbeiten Sie eine bestehende Bereitstellung, die die Nucleus-Komponente enthält, und geben Sie Ihre JVM-Optionen im jvmOptions Konfigurationsparameter in der Nucleus-Komponentenkonfiguration an.

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:

-XmxNNm

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

Nein

Plug-In

Nein

Generisch

Ja

Lambda (nicht containerisiert)

Ja

Lambda (containerisiert)

Ja

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:user:group. 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.

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.

Richten Sie einen Komponentenbenutzer auf Windows-Geräten ein

So richten Sie einen Komponentenbenutzer auf einem Windows-basierten Gerät ein
  1. Erstellen Sie den Komponentenbenutzer im LocalSystem Konto auf dem Gerät.

    net user /add component-user password
  2. 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.

Linux
{ "runWithDefault": { "posixUser": "ggc_user:ggc_group" } }
Windows
{ "runWithDefault": { "windowsUser": "ggc_user" } }
Anmerkung

Der von Ihnen angegebene Benutzer muss existieren, und der Benutzername und das Kennwort für diesen Benutzer müssen in der Credential Manager-Instanz des LocalSystem Kontos auf Ihrem Windows-Gerät gespeichert sein. Weitere Informationen finden Sie unter Richten Sie einen Komponentenbenutzer auf Windows-Geräten ein.

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

Nein

Plug-In

Nein

Generisch

Ja

Lambda (nicht containerisiert)

Ja

Lambda (containerisiert)

Nein

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 UmgebungsvariablenALL_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 das requests 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.

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.

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

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
  1. Suchen Sie die Amazon-Root-CA-Zertifikatsdatei auf dem Core-Gerät.

    Wenn das Amazon-Root-CA-Zertifikat an diesen Standorten nicht vorhanden ist, überprüfen Sie die system.rootCaPath Immobilie unter, /greengrass/v2/config/effectiveConfig.yaml um den Speicherort zu ermitteln.

  2. 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 Formatscheme://userinfo@host:port.

  • scheme— Das Schema, das http 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 Felder username 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.