Konfigurieren des AWS IoT Greengrass Core - AWS IoT Greengrass

AWS IoT Greengrass Version 1 trat am 30. Juni 2023 in die erweiterte Lebensphase ein. Weitere Informationen finden Sie in der AWS IoT Greengrass V1 Wartungsrichtlinie. Nach diesem Datum AWS IoT Greengrass V1 werden keine Updates mehr veröffentlicht, die Funktionen, Verbesserungen, Bugfixes oder Sicherheitspatches bieten. Geräte, die auf laufen, werden AWS IoT Greengrass V1 nicht gestört und funktionieren weiterhin und stellen eine Verbindung zur Cloud her. Wir empfehlen Ihnen dringend, zu migrieren AWS IoT Greengrass Version 2, da dies wichtige neue Funktionen und Unterstützung für zusätzliche Plattformen bietet.

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 des AWS IoT Greengrass Core

Ein -AWS IoT GreengrassKern ist ein -AWS IoTObjekt (Gerät), das als Hub oder Gateway in Edge-Umgebungen fungiert. Wie andere AWS IoT-Geräte ist ein Core in der Registrierung vorhanden, verfügt über einen Geräteschatten und verwendet ein Gerätezertifikat, um sich gegenüber AWS IoT Core und AWS IoT Greengrass zu autorisieren. Das Core-Gerät führt die AWS IoT Greengrass-Core-Software aus. So kann es die lokalen Prozesse für Greengrass-Gruppen verwalten, z. B. Kommunikation, Schattensynchronisierung und Austausch des Tokens.

Die AWS IoT Greengrass Core-Software bietet folgende Funktionalität:

  • Bereitstellung und lokale Ausführung von Connectors und Lambda-Funktionen.

  • Verarbeiten Sie Datenströme lokal mit automatischen Exporten in die AWS Cloud.

  • MQTT-Nachrichten über das lokale Netzwerk zwischen Geräten, Connectors und Lambda-Funktionen mithilfe verwalteter Abonnements.

  • MQTT-Nachrichten zwischen AWS IoT und Geräten, Connectors und Lambda-Funktionen mithilfe verwalteter Abonnements.

  • Sichere Verbindungen zwischen Geräten und mithilfe der Geräteauthentifizierung und AWS Cloud-autorisierung.

  • Lokale Shadow-Synchronisierung von Geräten. Schatten können so konfiguriert werden, dass sie mit dem synchronisiert werdenAWS Cloud.

  • Kontrollierter Zugriff auf lokale Geräte- und Volume-Ressourcen.

  • Bereitstellung von Modellen für das maschinelle Lernen, die in der Cloud geschult werden, für die Ausführung lokaler Inferenzen.

  • Automatische Erkennung von IP-Adressen, die Geräte in die Lage versetzt, das Greengrass Core-Gerät zu erkennen.

  • Zentrale Bereitstellung neuer oder aktualisierter Gruppenkonfigurationen. Nach dem Download der Konfigurationsdaten wird das Core-Gerät automatisch neu gestartet.

  • Sichere Softwareupdates over-the-air (OTA) von benutzerdefinierten Lambda-Funktionen.

  • Sichere, verschlüsselte Speicherung lokaler Secrets und kontrollierter Zugriff durch Konnektoren und Lambda-Funktionen.

AWS IoT Greengrass Core-Konfigurationsdatei

Die Konfigurationsdatei für die AWS IoT Greengrass Core-Software ist config.json. Sie befindet sich im Verzeichnis /greengrass-root/config.

Anmerkung

greengrass-root steht für den Pfad, unter dem die AWS IoT Greengrass Core-Software auf Ihrem Gerät installiert ist. Normalerweise ist dies das Verzeichnis /greengrass.

Wenn Sie die Option Standardgruppenerstellung von der AWS IoT Greengrass Konsole aus verwenden, wird die config.json Datei auf dem Core-Gerät in einem funktionierenden Zustand bereitgestellt.

Sie können den Inhalt dieser Datei mit folgendem Befehl überprüfen:

cat /greengrass-root/config/config.json

Im Folgenden sehen Sie ein Beispiel für eine config.json-Datei. Dies ist die Version, die generiert wird, wenn Sie den Core über die AWS IoT Greengrass Konsole erstellen.

GGC v1.11
{ "coreThing": { "caPath": "root.ca.pem", "certPath": "hash.cert.pem", "keyPath": "hash.private.key", "thingArn": "arn:partition:iot:region:account-id:thing/core-thing-name", "iotHost": "host-prefix-ats.iot.region.amazonaws.com", "ggHost": "greengrass-ats.iot.region.amazonaws.com", "keepAlive": 600, "ggDaemonPort": 8000, "systemComponentAuthTimeout": 5000 }, "runtime": { "maxWorkItemCount": 1024, "maxConcurrentLimit": 25, "lruSize": 25, "mountAllBlockDevices": "no", "cgroup": { "useSystemd": "yes" } }, "managedRespawn": false, "crypto": { "principals": { "SecretsManager": { "privateKeyPath": "file:///greengrass/certs/hash.private.key" }, "IoTCertificate": { "privateKeyPath": "file:///greengrass/certs/hash.private.key", "certificatePath": "file:///greengrass/certs/hash.cert.pem" } }, "caPath": "file:///greengrass/certs/root.ca.pem" }, "writeDirectory": "/var/snap/aws-iot-greengrass/current/ggc-write-directory", "pidFileDirectory": "/var/snap/aws-iot-greengrass/current/pidFileDirectory" }

Die config.json-Datei unterstützt die folgenden Eigenschaften:

coreThing

Feld Beschreibung Hinweise
caPath

Der Pfad zum AWS IoT-Root-CA, relativ zum Verzeichnis /greengrass-root/certs.

Für Abwärtskompatibilität mit Versionen vor 1.7.0. Diese Eigenschaft wird ignoriert, wenn das crypto Objekt vorhanden ist.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikattyp entsprechen.

certPath

Der Pfad zum Core-Gerätezertifikat, relativ zum Verzeichnis /greengrass-root/certs.

Für Abwärtskompatibilität mit Versionen vor 1.7.0. Diese Eigenschaft wird ignoriert, wenn das crypto Objekt vorhanden ist.
keyPath Der Pfad zum privaten Core-Schlüssel, relativ zum Verzeichnis /greengrass-root/certs. Für Abwärtskompatibilität mit Versionen vor 1.7.0. Diese Eigenschaft wird ignoriert, wenn das crypto Objekt vorhanden ist.
thingArn Der Amazon-Ressourcenname (ARN) des AWS IoT Objekts, das das AWS IoT Greengrass Core-Gerät darstellt. Suchen Sie den ARN für Ihren Core in der AWS IoT GreengrassKonsole unter Cores oder durch Ausführen des aws greengrass get-core-definition-version CLI-Befehls .
iotHost Ihr AWS IoT-Endpunkt.

Suchen Sie den Endpunkt in der AWS IoTKonsole unter Einstellungen oder durch Ausführen des aws iot describe-endpoint --endpoint-type iot:Data-ATS CLI-Befehls .

Dieser Befehl gibt den Amazon Trust Services (ATS) Endpunkt zurück. Weitere Informationen finden Sie in der Dokumentation Server-Authentifizierung.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen.

Stellen Sie sicher, dass Ihre Endpunkte Ihrem entsprechenAWS-Region.

ggHost Ihr AWS IoT Greengrass-Endpunkt.

Das ist Ihr iotHost-Endpunkt mit dem durch greengrass ersetzten Host-Präfix (z. B. greengrass-ats.iot.region.amazonaws.com). Verwenden Sie dasselbe AWS-Region wie iotHost.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen.

Stellen Sie sicher, dass Ihre Endpunkte Ihrem entsprechenAWS-Region.

iotMqttPort Optional. Die Portnummer für die MQTT-Kommunikation mit AWS IoT. Gültige Werte sind 8883 oder 443. Der Standardwert ist 8883. Weitere Informationen finden Sie unter Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy.
iotHttpPort Optional. Die zum Erstellen von HTTPS-Verbindungen mit AWS IoT verwendete Portnummer. Gültige Werte sind 8443 oder 443. Der Standardwert ist 8443. Weitere Informationen finden Sie unter Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy.
ggMqttPort Optional. Die Portnummer, die für die MQTT-Kommunikation über das lokale Netzwerk verwendet werden soll. Gültige Werte sind 1024 bis 65535. Der Standardwert ist 8883. Weitere Informationen finden Sie unter Konfigurieren des MQTT-Ports für lokales Messaging.
ggHttpPort Optional. Die zum Erstellen von HTTPS-Verbindungen mit dem AWS IoT Greengrass-Service verwendete Portnummer. Gültige Werte sind 8443 oder 443. Der Standardwert ist 8443. Weitere Informationen finden Sie unter Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy.
keepAlive Optional. Der MQTT-Zeitraum KeepAlive in Sekunden. Der gültige Bereich liegt zwischen 30 und 1200 Sekunden. Der Standardwert ist 600.
networkProxy Optional. Ein Objekt, das einen Proxy-Server definiert, mit dem eine Verbindung hergestellt werden soll. Der Proxy-Server kann HTTP oder HTTPS sein. Weitere Informationen finden Sie unter Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy.
mqttOperationTimeout Optional. Die Zeit (in Sekunden), für die es dem Greengrass-Core möglich ist, einen Veröffentlichungs-, Abonnement- oder Abmeldevorgang in MQTT-Verbindungen zu AWS IoT Core abzuschließen. Der Standardwert ist 5. Der Mindestwert ist 5.
ggDaemonPort Optional. Die Greengrass Core IPC-Portnummer.

Diese Eigenschaft ist in AWS IoT Greengrass v1.11.0 oder höher verfügbar.

Gültige Werte liegen zwischen 1024 und 65535. Der Standardwert ist 8000.

systemComponentAuthTimeout Optional. Die Zeit (in Millisekunden), für die die Greengrass Core IPC die Authentifizierung abschließen kann.

Diese Eigenschaft ist in AWS IoT Greengrass v1.11.0 oder höher verfügbar.

Gültige Werte liegen zwischen 500 und 5000. Der Standardwert ist 5000.

runtime

Feld Beschreibung Hinweise
maxWorkItemAnzahl

Optional. Die maximale Anzahl von Arbeitselementen, die der Greengrass-Daemon gleichzeitig verarbeiten kann. Arbeitselemente, die diesen Grenzwert überschreiten, werden ignoriert.

Die Arbeitselementwarteschlange wird von Systemkomponenten, benutzerdefinierten Lambda-Funktionen und Connectors gemeinsam genutzt.

Der Standardwert lautet 1024. Der Maximalwert wird durch Ihre Gerätehardware begrenzt.

Wenn Sie diesen Wert erhöhen, erhöht sich der Speicher, den AWS IoT Greengrass verwendet. Sie können diesen Wert erhöhen, wenn Sie erwarten, dass Ihr Core einen hohen MQTT-Nachrichtenverkehr empfängt.

maxConcurrentLimit

Optional. Die maximale Anzahl von gleichzeitigen, nicht angehefteten Lambda-Workern, die der Greengrass-Daemon haben kann. Sie können eine andere Ganzzahl angeben, um diesen Parameter zu überschreiben.

Der Standardwert ist 25. Der Mindestwert wird durch definiertlruSize.

lruSize Optional. Defines the minimum value for maxConcurrentLimit. The default value is 25.
mountAllBlockGeräte Optional. Enables AWS IoT Greengrass to use bind mounts to mount all block devices into a container after setting up the OverlayFS.

Diese Eigenschaft ist in AWS IoT Greengrass v1.11.0 oder höher verfügbar.

Gültige Werte sind yes und no. Der Standardwert ist no.

Setzen Sie diesen Wert auf yes, wenn sich Ihr /usr Verzeichnis nicht unter der / Hierarchie befindet.

postStartHealthCheckTimeout Optional. The time (in milliseconds) after starting that the Greengrass daemon waits for the health check to finish. The default timeout is 30 seconds (30000 ms).
cgroup
useSystemd Indicates whether your device uses systemd. Valid values are Ja or Nein. Run the check_ggc_dependencies script in Modul 1 to see if your device uses systemd.

crypto

Das crypto-Objekt enthält Eigenschaften, die die Speicherung privater Schlüssel auf einem Hardware-Sicherheitsmodul (HSM) über PKCS#11 und lokale geheime Speicher unterstützen. Weitere Informationen finden Sie unter AWS IoT Greengrass zentrale Sicherheitsprinzipale, Integration von Hardware-Sicherheit und Bereitstellen von Secrets für den AWS IoT Greengrass Core. Konfigurationen für die Speicherung privater Schlüssel auf HSMs oder im Dateisystem werden unterstützt.

Feld Beschreibung Hinweise
caPath

Der absolute Pfad zur AWS IoT Root CA.

Muss ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen.

PKCS11
OpenSSLEngine

Optional. Der absolute Pfad zur OpenSSL-Engine .so-Datei, um die PKCS#11-Unterstützung unter OpenSSL zu aktivieren.

Muss ein Pfad zu einer Datei im Dateisystem sein.

Diese Eigenschaft ist erforderlich, wenn Sie den Greengrass-OTA-Update-Agenten mit Hardwaresicherheit verwenden. Weitere Informationen finden Sie unter Konfigurieren Sie die Unterstützung für Updates over-the-air .

P11Provider

Der absolute Pfad zur libdl-ladbaren Bibliothek der PKCS#11-Implementierung.

Muss ein Pfad zu einer Datei im Dateisystem sein.

slotLabel

Das Slot-Label, das zur Identifizierung des Hardwaremoduls verwendet wird.

Muss den PKCS#11 Label-Spezifikationen entsprechen.

slotUserPin

Die Benutzer-PIN, die zur Authentifizierung des Greengrass-Kerns für das Modul verwendet wird.

Muss über ausreichende Berechtigungen verfügen, um C_Sign mit den konfigurierten privaten Schlüsseln auszuführen.

principals
IoTCertificate The certificate and private key that the core uses to make requests to AWS IoT.
IoTCertificate .privateKeyPath

Der Pfad zum privaten Core-Schlüssel.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt.

IoTCertificate .certificatePath

Der absolute Pfad zum Core-Gerätezertifikat.

Muss ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

MQTTServerCertificate

Optional. Der private Schlüssel, den der Kern in Kombination mit dem Zertifikat verwendet, um als MQTT-Server oder Gateway zu fungieren.

MQTT ServerCertificate .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen MQTT-Servers.

Verwenden Sie diesen Wert, um einen eigenen privaten Schlüssel für den lokalen MQTT-Server anzugeben.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt.

Wenn diese Eigenschaft weggelassen wird, rotiert AWS IoT Greengrass den Schlüssel basierend auf Ihren Rotationseinstellungen. Sofern angegeben, ist der Kunde für das Rotieren des Schlüssels verantwortlich.

SecretsManager The private key that secures the data key used for encryption. For more information, see Bereitstellen von Secrets für den AWS IoT Greengrass Core.
SecretsManager  .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen Secrets Managers.

Nur ein RSA-Schlüssel wird unterstützt.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt. Der private Schlüssel muss erstellt werden, indem Sie den PKCS#1 v1.5-Padding-Mechanismus verwenden.

Die folgenden Konfigurationseigenschaften werden ebenfalls unterstützt:

Feld Beschreibung Hinweise
mqttMaxConnectionRetryInterval

Optional. Das Maximalintervall (in Sekunden) zwischen MQTT-Verbindungsversuchen, wenn die Verbindung getrennt wird.

Geben Sie diesen Wert als Ganzzahl ohne Vorzeichen an. Der Standardwert ist 60.

managedRespawn

Optional. Gibt an, dass der OTA-Agent vor einem Update einen benutzerdefinierten Code ausführen muss.

Gültige Werte sind true oder false. Weitere Informationen finden Sie unter OTA-Updates der AWS IoT Greengrass Core-Software.

writeDirectory

Optional. Das Schreibverzeichnis, in dem alle Lese-/Schreibressourcen AWS IoT Greengrass erstellt.

Weitere Informationen finden Sie unter Konfigurieren eines Schreibverzeichnisses für AWS IoT Greengrass.

pidFileDirectory

Optional. AWS IoT Greengrass speichert seine Prozess-ID (PID) in diesem Verzeichnis.

Der Standardwert ist /var/run.

Extended life versions

Die folgenden Versionen der -AWS IoT GreengrassCore-Software befinden sich in der Phase mit verlängerter Lebensdauer. Diese Informationen dienen lediglich Referenzzwecken.

CCPC v1.10
{ "coreThing" : { "caPath" : "root.ca.pem", "certPath" : "hash.cert.pem", "keyPath" : "hash.private.key", "thingArn" : "arn:partition:iot:region:account-id:thing/core-thing-name", "iotHost" : "host-prefix-ats.iot.region.amazonaws.com", "ggHost" : "greengrass-ats.iot.region.amazonaws.com", "keepAlive" : 600, "systemComponentAuthTimeout": 5000 }, "runtime" : { "maxWorkItemCount" : 1024, "maxConcurrentLimit" : 25, "lruSize": 25, "cgroup" : { "useSystemd" : "yes" } }, "managedRespawn" : false, "crypto" : { "principals" : { "SecretsManager" : { "privateKeyPath" : "file:///greengrass/certs/hash.private.key" }, "IoTCertificate" : { "privateKeyPath" : "file:///greengrass/certs/hash.private.key", "certificatePath" : "file:///greengrass/certs/hash.cert.pem" } }, "caPath" : "file:///greengrass/certs/root.ca.pem" } }

Die config.json-Datei unterstützt die folgenden Eigenschaften:

coreThing

Feld Beschreibung Hinweise
caPath

Der Pfad zum AWS IoT-Root-CA, relativ zum Verzeichnis /greengrass-root/certs.

Für Abwärtskompatibilität mit Versionen vor 1.7.0. Diese Eigenschaft wird ignoriert, wenn das crypto Objekt vorhanden ist.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikattyp entsprechen.

certPath

Der Pfad zum Core-Gerätezertifikat, relativ zum Verzeichnis /greengrass-root/certs.

Für Abwärtskompatibilität mit Versionen vor 1.7.0. Diese Eigenschaft wird ignoriert, wenn das crypto Objekt vorhanden ist.
keyPath Der Pfad zum privaten Core-Schlüssel, relativ zum Verzeichnis /greengrass-root/certs. Für Abwärtskompatibilität mit Versionen vor 1.7.0. Diese Eigenschaft wird ignoriert, wenn das crypto Objekt vorhanden ist.
thingArn Der Amazon-Ressourcenname (ARN) des AWS IoT Objekts, das das AWS IoT Greengrass Core-Gerät darstellt. Suchen Sie den ARN für Ihren Core in der AWS IoT GreengrassKonsole unter Cores oder durch Ausführen des aws greengrass get-core-definition-version CLI-Befehls .
iotHost Ihr AWS IoT-Endpunkt.

Suchen Sie den Endpunkt in der AWS IoTKonsole unter Einstellungen oder durch Ausführen des aws iot describe-endpoint --endpoint-type iot:Data-ATS CLI-Befehls .

Dieser Befehl gibt den Amazon Trust Services (ATS) Endpunkt zurück. Weitere Informationen finden Sie in der Dokumentation Server-Authentifizierung.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen.

Stellen Sie sicher, dass Ihre Endpunkte Ihrem entsprechenAWS-Region.

ggHost Ihr AWS IoT Greengrass-Endpunkt.

Das ist Ihr iotHost-Endpunkt mit dem durch greengrass ersetzten Host-Präfix (z. B. greengrass-ats.iot.region.amazonaws.com). Verwenden Sie dasselbe AWS-Region wie iotHost.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen.

Stellen Sie sicher, dass Ihre Endpunkte Ihrem entsprechenAWS-Region.

iotMqttPort Optional. Die Portnummer für die MQTT-Kommunikation mit AWS IoT. Gültige Werte sind 8883 oder 443. Der Standardwert ist 8883. Weitere Informationen finden Sie unter Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy.
iotHttpPort Optional. Die zum Erstellen von HTTPS-Verbindungen mit AWS IoT verwendete Portnummer. Gültige Werte sind 8443 oder 443. Der Standardwert ist 8443. Weitere Informationen finden Sie unter Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy.
ggMqttPort Optional. Die Portnummer, die für die MQTT-Kommunikation über das lokale Netzwerk verwendet werden soll. Gültige Werte sind 1024 bis 65535. Der Standardwert ist 8883. Weitere Informationen finden Sie unter Konfigurieren des MQTT-Ports für lokales Messaging.
ggHttpPort Optional. Die zum Erstellen von HTTPS-Verbindungen mit dem AWS IoT Greengrass-Service verwendete Portnummer. Gültige Werte sind 8443 oder 443. Der Standardwert ist 8443. Weitere Informationen finden Sie unter Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy.
keepAlive Optional. Der MQTT-Zeitraum KeepAlive in Sekunden. Der gültige Bereich liegt zwischen 30 und 1200 Sekunden. Der Standardwert ist 600.
networkProxy Optional. Ein Objekt, das einen Proxy-Server definiert, mit dem eine Verbindung hergestellt werden soll. Der Proxy-Server kann HTTP oder HTTPS sein. Weitere Informationen finden Sie unter Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy.
mqttOperationTimeout Optional. Die Zeit (in Sekunden), für die es dem Greengrass-Core möglich ist, einen Veröffentlichungs-, Abonnement- oder Abmeldevorgang in MQTT-Verbindungen zu AWS IoT Core abzuschließen.

Diese Eigenschaft ist ab AWS IoT Greengrass Version 1.10.2 verfügbar.

Der Standardwert ist 5. Der Mindestwert ist 5.

runtime

Feld Beschreibung Hinweise
maxWorkItemAnzahl

Optional. Die maximale Anzahl von Arbeitselementen, die der Greengrass-Daemon gleichzeitig verarbeiten kann. Arbeitselemente, die diesen Grenzwert überschreiten, werden ignoriert.

Die Arbeitselementwarteschlange wird von Systemkomponenten, benutzerdefinierten Lambda-Funktionen und Connectors gemeinsam genutzt.

Der Standardwert lautet 1024. Der Maximalwert wird durch Ihre Gerätehardware begrenzt.

Wenn Sie diesen Wert erhöhen, erhöht sich der Speicher, den AWS IoT Greengrass verwendet. Sie können diesen Wert erhöhen, wenn Sie erwarten, dass Ihr Core einen hohen MQTT-Nachrichtenverkehr empfängt.

maxConcurrentLimit

Optional. Die maximale Anzahl von gleichzeitigen, nicht angehefteten Lambda-Workern, die der Greengrass-Daemon haben kann. Sie können eine andere Ganzzahl angeben, um diesen Parameter zu überschreiben.

Der Standardwert ist 25. Der Mindestwert wird durch definiertlruSize.

lruSize Optional. Defines the minimum value for maxConcurrentLimit. The default value is 25.
postStartHealthCheckTimeout Optional. The time (in milliseconds) after starting that the Greengrass daemon waits for the health check to finish. The default timeout is 30 seconds (30000 ms).
cgroup
useSystemd Indicates whether your device uses systemd. Valid values are Ja or Nein. Run the check_ggc_dependencies script in Modul 1 to see if your device uses systemd.

crypto

Das crypto-Objekt enthält Eigenschaften, die die Speicherung privater Schlüssel auf einem Hardware-Sicherheitsmodul (HSM) über PKCS#11 und lokale geheime Speicher unterstützen. Weitere Informationen finden Sie unter AWS IoT Greengrass zentrale Sicherheitsprinzipale, Integration von Hardware-Sicherheit und Bereitstellen von Secrets für den AWS IoT Greengrass Core. Konfigurationen für die Speicherung privater Schlüssel auf HSMs oder im Dateisystem werden unterstützt.

Feld Beschreibung Hinweise
caPath

Der absolute Pfad zur AWS IoT Root CA.

Muss ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikattyp entsprechen.

PKCS11
OpenSSLEngine

Optional. Der absolute Pfad zur OpenSSL-Engine .so-Datei, um die PKCS#11-Unterstützung unter OpenSSL zu aktivieren.

Muss ein Pfad zu einer Datei im Dateisystem sein.

Diese Eigenschaft ist erforderlich, wenn Sie den Greengrass-OTA-Update-Agenten mit Hardwaresicherheit verwenden. Weitere Informationen finden Sie unter Konfigurieren Sie die Unterstützung für Updates over-the-air .

P11Provider

Der absolute Pfad zur libdl-ladbaren Bibliothek der PKCS#11-Implementierung.

Muss ein Pfad zu einer Datei im Dateisystem sein.

slotLabel

Das Slot-Label, das zur Identifizierung des Hardwaremoduls verwendet wird.

Muss den PKCS#11 Label-Spezifikationen entsprechen.

slotUserPin

Die Benutzer-PIN, die zur Authentifizierung des Greengrass-Kerns für das Modul verwendet wird.

Muss über ausreichende Berechtigungen verfügen, um C_Sign mit den konfigurierten privaten Schlüsseln auszuführen.

principals
IoTCertificate The certificate and private key that the core uses to make requests to AWS IoT.
IoTCertificate .privateKeyPath

Der Pfad zum privaten Core-Schlüssel.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt.

IoTCertificate .certificatePath

Der absolute Pfad zum Core-Gerätezertifikat.

Muss ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

MQTTServerCertificate

Optional. Der private Schlüssel, den der Kern in Kombination mit dem Zertifikat verwendet, um als MQTT-Server oder Gateway zu fungieren.

MQTT ServerCertificate .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen MQTT-Servers.

Verwenden Sie diesen Wert, um einen eigenen privaten Schlüssel für den lokalen MQTT-Server anzugeben.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt.

Wenn diese Eigenschaft weggelassen wird, rotiert AWS IoT Greengrass den Schlüssel basierend auf Ihren Rotationseinstellungen. Sofern angegeben, ist der Kunde für das Rotieren des Schlüssels verantwortlich.

SecretsManager The private key that secures the data key used for encryption. For more information, see Bereitstellen von Secrets für den AWS IoT Greengrass Core.
SecretsManager  .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen Secrets Managers.

Nur ein RSA-Schlüssel wird unterstützt.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt. Der private Schlüssel muss erstellt werden, indem Sie den PKCS#1 v1.5-Padding-Mechanismus verwenden.

Die folgenden Konfigurationseigenschaften werden ebenfalls unterstützt:

Feld Beschreibung Hinweise
mqttMaxConnectionRetryInterval

Optional. Das Maximalintervall (in Sekunden) zwischen MQTT-Verbindungsversuchen, wenn die Verbindung getrennt wird.

Geben Sie diesen Wert als Ganzzahl ohne Vorzeichen an. Der Standardwert ist 60.

managedRespawn

Optional. Gibt an, dass der OTA-Agent vor einem Update einen benutzerdefinierten Code ausführen muss.

Gültige Werte sind true oder false. Weitere Informationen finden Sie unter OTA-Updates der AWS IoT Greengrass Core-Software.

writeDirectory

Optional. Das Schreibverzeichnis, in dem alle Lese-/Schreibressourcen AWS IoT Greengrass erstellt.

Weitere Informationen finden Sie unter Konfigurieren eines Schreibverzeichnisses für AWS IoT Greengrass.

CCPC v1.9
{ "coreThing" : { "caPath" : "root.ca.pem", "certPath" : "hash.cert.pem", "keyPath" : "hash.private.key", "thingArn" : "arn:partition:iot:region:account-id:thing/core-thing-name", "iotHost" : "host-prefix-ats.iot.region.amazonaws.com", "ggHost" : "greengrass-ats.iot.region.amazonaws.com", "keepAlive" : 600 }, "runtime" : { "cgroup" : { "useSystemd" : "yes" } }, "managedRespawn" : false, "crypto" : { "principals" : { "SecretsManager" : { "privateKeyPath" : "file:///greengrass/certs/hash.private.key" }, "IoTCertificate" : { "privateKeyPath" : "file:///greengrass/certs/hash.private.key", "certificatePath" : "file:///greengrass/certs/hash.cert.pem" } }, "caPath" : "file:///greengrass/certs/root.ca.pem" } }

Die config.json-Datei unterstützt die folgenden Eigenschaften:

coreThing

Feld Beschreibung Hinweise
caPath

Der Pfad zum AWS IoT-Root-CA, relativ zum Verzeichnis /greengrass-root/certs.

Für Abwärtskompatibilität mit Versionen vor 1.7.0. Diese Eigenschaft wird ignoriert, wenn das crypto Objekt vorhanden ist.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen.

certPath

Der Pfad zum Core-Gerätezertifikat, relativ zum Verzeichnis /greengrass-root/certs.

Für Abwärtskompatibilität mit Versionen vor 1.7.0. Diese Eigenschaft wird ignoriert, wenn das crypto Objekt vorhanden ist.
keyPath Der Pfad zum privaten Core-Schlüssel, relativ zum Verzeichnis /greengrass-root/certs. Für Abwärtskompatibilität mit Versionen vor 1.7.0. Diese Eigenschaft wird ignoriert, wenn das crypto Objekt vorhanden ist.
thingArn Der Amazon-Ressourcenname (ARN) des AWS IoT Objekts, das das AWS IoT Greengrass Core-Gerät darstellt. Suchen Sie den ARN für Ihren Core in der AWS IoT GreengrassKonsole unter Cores oder durch Ausführen des aws greengrass get-core-definition-version CLI-Befehls .
iotHost Ihr AWS IoT-Endpunkt.

Suchen Sie den Endpunkt in der AWS IoTKonsole unter Einstellungen oder durch Ausführen des aws iot describe-endpoint --endpoint-type iot:Data-ATS CLI-Befehls .

Dieser Befehl gibt den Amazon Trust Services (ATS) Endpunkt zurück. Weitere Informationen finden Sie in der Dokumentation Server-Authentifizierung.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen.

Stellen Sie sicher, dass Ihre Endpunkte Ihrem entsprechenAWS-Region.

ggHost Ihr AWS IoT Greengrass-Endpunkt.

Das ist Ihr iotHost-Endpunkt mit dem durch greengrass ersetzten Host-Präfix (z. B. greengrass-ats.iot.region.amazonaws.com). Verwenden Sie dasselbe AWS-Region wie iotHost.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen.

Stellen Sie sicher, dass Ihre Endpunkte Ihrem entsprechenAWS-Region.

iotMqttPort Optional. Die Portnummer für die MQTT-Kommunikation mit AWS IoT. Gültige Werte sind 8883 oder 443. Der Standardwert ist 8883. Weitere Informationen finden Sie unter Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy.
iotHttpPort Optional. Die zum Erstellen von HTTPS-Verbindungen mit AWS IoT verwendete Portnummer. Gültige Werte sind 8443 oder 443. Der Standardwert ist 8443. Weitere Informationen finden Sie unter Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy.
ggHttpPort Optional. Die zum Erstellen von HTTPS-Verbindungen mit dem AWS IoT Greengrass-Service verwendete Portnummer. Gültige Werte sind 8443 oder 443. Der Standardwert ist 8443. Weitere Informationen finden Sie unter Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy.
keepAlive Optional. Der MQTT-Zeitraum KeepAlive in Sekunden. Der gültige Bereich liegt zwischen 30 und 1200 Sekunden. Der Standardwert ist 600.
networkProxy Optional. Ein Objekt, das einen Proxy-Server definiert, mit dem eine Verbindung hergestellt werden soll. Der Proxy-Server kann HTTP oder HTTPS sein. Weitere Informationen finden Sie unter Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy.

runtime

Feld Beschreibung Hinweise
maxConcurrentLimit

Optional. Die maximale Anzahl von gleichzeitigen, nicht angehefteten Lambda-Workern, die der Greengrass-Daemon haben kann. Sie können eine andere Ganzzahl angeben, um diesen Parameter zu überschreiben.

Der Standardwert ist 25. Der Mindestwert wird durch definiertlruSize.

lruSize Optional. Defines the minimum value for maxConcurrentLimit. The default value is 25.
postStartHealthCheckTimeout Optional. The time (in milliseconds) after starting that the Greengrass daemon waits for the health check to finish. The default timeout is 30 seconds (30000 ms).
cgroup
useSystemd Indicates whether your device uses systemd. Valid values are Ja or Nein. Run the check_ggc_dependencies script in Modul 1 to see if your device uses systemd.

crypto

Das crypto-Objekt wurde in v1.7.0 hinzugefügt. Es führt Eigenschaften ein, die die Speicherung privater Schlüssel auf einem Hardware-Sicherheitsmodul (HSM) über PKCS#11 und lokale geheime Speicher unterstützen. Weitere Informationen finden Sie unter AWS IoT Greengrass zentrale Sicherheitsprinzipale, Integration von Hardware-Sicherheit und Bereitstellen von Secrets für den AWS IoT Greengrass Core. Konfigurationen für die Speicherung privater Schlüssel auf HSMs oder im Dateisystem werden unterstützt.

Feld Beschreibung Hinweise
caPath

Der absolute Pfad zur AWS IoT Root CA.

Muss ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen.

PKCS11
OpenSSLEngine

Optional. Der absolute Pfad zur OpenSSL-Engine .so-Datei, um die PKCS#11-Unterstützung unter OpenSSL zu aktivieren.

Muss ein Pfad zu einer Datei im Dateisystem sein.

Diese Eigenschaft ist erforderlich, wenn Sie den Greengrass-OTA-Update-Agenten mit Hardwaresicherheit verwenden. Weitere Informationen finden Sie unter Konfigurieren Sie die Unterstützung für Updates over-the-air .

P11Provider

Der absolute Pfad zur libdl-ladbaren Bibliothek der PKCS#11-Implementierung.

Muss ein Pfad zu einer Datei im Dateisystem sein.

slotLabel

Das Slot-Label, das zur Identifizierung des Hardwaremoduls verwendet wird.

Muss den PKCS#11 Label-Spezifikationen entsprechen.

slotUserPin

Die Benutzer-PIN, die zur Authentifizierung des Greengrass-Kerns für das Modul verwendet wird.

Muss über ausreichende Berechtigungen verfügen, um C_Sign mit den konfigurierten privaten Schlüsseln auszuführen.

principals
IoTCertificate The certificate and private key that the core uses to make requests to AWS IoT.
IoTCertificate .privateKeyPath

Der Pfad zum privaten Core-Schlüssel.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt.

IoTCertificate .certificatePath

Der absolute Pfad zum Core-Gerätezertifikat.

Muss ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

MQTTServerCertificate

Optional. Der private Schlüssel, den der Kern in Kombination mit dem Zertifikat verwendet, um als MQTT-Server oder Gateway zu fungieren.

MQTT ServerCertificate .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen MQTT-Servers.

Verwenden Sie diesen Wert, um einen eigenen privaten Schlüssel für den lokalen MQTT-Server anzugeben.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt.

Wenn diese Eigenschaft weggelassen wird, rotiert AWS IoT Greengrass den Schlüssel basierend auf Ihren Rotationseinstellungen. Sofern angegeben, ist der Kunde für das Rotieren des Schlüssels verantwortlich.

SecretsManager The private key that secures the data key used for encryption. For more information, see Bereitstellen von Secrets für den AWS IoT Greengrass Core.
SecretsManager  .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen Secrets Managers.

Nur ein RSA-Schlüssel wird unterstützt.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt. Der private Schlüssel muss erstellt werden, indem Sie den PKCS#1 v1.5-Padding-Mechanismus verwenden.

Die folgenden Konfigurationseigenschaften werden ebenfalls unterstützt.

Feld Beschreibung Hinweise
mqttMaxConnectionRetryInterval

Optional. Das Maximalintervall (in Sekunden) zwischen MQTT-Verbindungsversuchen, wenn die Verbindung getrennt wird.

Geben Sie diesen Wert als Ganzzahl ohne Vorzeichen an. Der Standardwert ist 60.

managedRespawn

Optional. Gibt an, dass der OTA-Agent vor einem Update einen benutzerdefinierten Code ausführen muss.

Gültige Werte sind true oder false. Weitere Informationen finden Sie unter OTA-Updates der AWS IoT Greengrass Core-Software.

writeDirectory

Optional. Das Schreibverzeichnis, in dem alle Lese-/Schreibressourcen AWS IoT Greengrass erstellt.

Weitere Informationen finden Sie unter Konfigurieren eines Schreibverzeichnisses für AWS IoT Greengrass.

CCPC v1.8
{ "coreThing" : { "caPath" : "root.ca.pem", "certPath" : "hash.cert.pem", "keyPath" : "hash.private.key", "thingArn" : "arn:aws:iot:region:account-id:thing/core-thing-name", "iotHost" : "host-prefix-ats.iot.region.amazonaws.com", "ggHost" : "greengrass-ats.iot.region.amazonaws.com", "keepAlive" : 600 }, "runtime" : { "cgroup" : { "useSystemd" : "yes" } }, "managedRespawn" : false, "crypto" : { "principals" : { "SecretsManager" : { "privateKeyPath" : "file:///greengrass/certs/hash.private.key" }, "IoTCertificate" : { "privateKeyPath" : "file:///greengrass/certs/hash.private.key", "certificatePath" : "file:///greengrass/certs/hash.cert.pem" } }, "caPath" : "file:///greengrass/certs/root.ca.pem" } }

Die config.json Datei unterstützt die folgenden Eigenschaften.

coreThing

Feld Beschreibung Hinweise
caPath

Der Pfad zum AWS IoT-Root-CA, relativ zum Verzeichnis /greengrass-root/certs.

Für Abwärtskompatibilität mit Versionen vor 1.7.0. Diese Eigenschaft wird ignoriert, wenn das crypto Objekt vorhanden ist.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen.

certPath

Der Pfad zum Core-Gerätezertifikat, relativ zum Verzeichnis /greengrass-root/certs.

Für Abwärtskompatibilität mit Versionen vor 1.7.0. Diese Eigenschaft wird ignoriert, wenn das crypto Objekt vorhanden ist.
keyPath Der Pfad zum privaten Core-Schlüssel, relativ zum Verzeichnis /greengrass-root/certs. Für Abwärtskompatibilität mit Versionen vor 1.7.0. Diese Eigenschaft wird ignoriert, wenn das crypto Objekt vorhanden ist.
thingArn Der Amazon-Ressourcenname (ARN) des AWS IoT Objekts, das das AWS IoT Greengrass Core-Gerät darstellt. Suchen Sie den ARN für Ihren Core in der AWS IoT GreengrassKonsole unter Cores oder durch Ausführen des aws greengrass get-core-definition-version CLI-Befehls .
iotHost Ihr AWS IoT-Endpunkt.

Suchen Sie den Endpunkt in der AWS IoTKonsole unter Einstellungen oder durch Ausführen des aws iot describe-endpoint --endpoint-type iot:Data-ATS CLI-Befehls .

Dieser Befehl gibt den Amazon Trust Services (ATS) Endpunkt zurück. Weitere Informationen finden Sie in der Dokumentation Server-Authentifizierung.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen. Stellen Sie sicher, dass Ihre Endpunkte Ihrem entsprechenAWS-Region.

ggHost Ihr AWS IoT Greengrass-Endpunkt.

Das ist Ihr iotHost-Endpunkt mit dem durch greengrass ersetzten Host-Präfix (z. B. greengrass-ats.iot.region.amazonaws.com). Verwenden Sie dasselbe AWS-Region wie iotHost.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen. Stellen Sie sicher, dass Ihre Endpunkte Ihrem entsprechenAWS-Region.

iotMqttPort Optional. Die Portnummer für die MQTT-Kommunikation mit AWS IoT. Gültige Werte sind 8883 oder 443. Der Standardwert ist 8883. Weitere Informationen finden Sie unter Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy.
iotHttpPort Optional. Die zum Erstellen von HTTPS-Verbindungen mit AWS IoT verwendete Portnummer. Gültige Werte sind 8443 oder 443. Der Standardwert ist 8443. Weitere Informationen finden Sie unter Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy.
ggHttpPort Optional. Die zum Erstellen von HTTPS-Verbindungen mit dem AWS IoT Greengrass-Service verwendete Portnummer. Gültige Werte sind 8443 oder 443. Der Standardwert ist 8443. Weitere Informationen finden Sie unter Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy.
keepAlive Optional. Der MQTT-Zeitraum KeepAlive in Sekunden. Der gültige Bereich liegt zwischen 30 und 1200 Sekunden. Der Standardwert ist 600.
networkProxy Optional. Ein Objekt, das einen Proxy-Server definiert, mit dem eine Verbindung hergestellt werden soll. Der Proxy-Server kann HTTP oder HTTPS sein. Weitere Informationen finden Sie unter Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy.

runtime

Feld Beschreibung Hinweise
cgroup
useSystemd Indicates whether your device uses systemd. Valid values are Ja or Nein. Run the check_ggc_dependencies script in Modul 1 to see if your device uses systemd.

crypto

Das crypto-Objekt wurde in v1.7.0 hinzugefügt. Es führt Eigenschaften ein, die die Speicherung privater Schlüssel auf einem Hardware-Sicherheitsmodul (HSM) über PKCS#11 und lokale geheime Speicher unterstützen. Weitere Informationen finden Sie unter AWS IoT Greengrass zentrale Sicherheitsprinzipale, Integration von Hardware-Sicherheit und Bereitstellen von Secrets für den AWS IoT Greengrass Core. Konfigurationen für die Speicherung privater Schlüssel auf HSMs oder im Dateisystem werden unterstützt.

Feld Beschreibung Hinweise
caPath

Der absolute Pfad zur AWS IoT Root CA.

Muss ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen.

PKCS11
OpenSSLEngine

Optional. Der absolute Pfad zur OpenSSL-Engine .so-Datei, um die PKCS#11-Unterstützung unter OpenSSL zu aktivieren.

Muss ein Pfad zu einer Datei im Dateisystem sein.

Diese Eigenschaft ist erforderlich, wenn Sie den Greengrass-OTA-Update-Agenten mit Hardwaresicherheit verwenden. Weitere Informationen finden Sie unter Konfigurieren Sie die Unterstützung für Updates over-the-air .

P11Provider

Der absolute Pfad zur libdl-ladbaren Bibliothek der PKCS#11-Implementierung.

Muss ein Pfad zu einer Datei im Dateisystem sein.

slotLabel

Das Slot-Label, das zur Identifizierung des Hardwaremoduls verwendet wird.

Muss den PKCS#11 Label-Spezifikationen entsprechen.

slotUserPin

Die Benutzer-PIN, die zur Authentifizierung des Greengrass-Kerns für das Modul verwendet wird.

Muss über ausreichende Berechtigungen verfügen, um C_Sign mit den konfigurierten privaten Schlüsseln auszuführen.

principals
IoTCertificate The certificate and private key that the core uses to make requests to AWS IoT.
IoTCertificate .privateKeyPath

Der Pfad zum privaten Core-Schlüssel.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt.

IoTCertificate .certificatePath

Der absolute Pfad zum Core-Gerätezertifikat.

Muss ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

MQTTServerCertificate

Optional. Der private Schlüssel, den der Kern in Kombination mit dem Zertifikat verwendet, um als MQTT-Server oder Gateway zu fungieren.

MQTT ServerCertificate .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen MQTT-Servers.

Verwenden Sie diesen Wert, um einen eigenen privaten Schlüssel für den lokalen MQTT-Server anzugeben.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt.

Wenn diese Eigenschaft weggelassen wird, rotiert AWS IoT Greengrass den Schlüssel basierend auf Ihren Rotationseinstellungen. Sofern angegeben, ist der Kunde für das Rotieren des Schlüssels verantwortlich.

SecretsManager The private key that secures the data key used for encryption. For more information, see Bereitstellen von Secrets für den AWS IoT Greengrass Core.
SecretsManager  .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen Secrets Managers.

Nur ein RSA-Schlüssel wird unterstützt.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt. Der private Schlüssel muss erstellt werden, indem Sie den PKCS#1 v1.5-Padding-Mechanismus verwenden.

Die folgenden Konfigurationseigenschaften werden ebenfalls unterstützt:

Feld Beschreibung Hinweise
mqttMaxConnectionRetryInterval

Optional. Das Maximalintervall (in Sekunden) zwischen MQTT-Verbindungsversuchen, wenn die Verbindung getrennt wird.

Geben Sie diesen Wert als Ganzzahl ohne Vorzeichen an. Der Standardwert ist 60.

managedRespawn

Optional. Gibt an, dass der OTA-Agent vor einem Update einen benutzerdefinierten Code ausführen muss.

Gültige Werte sind true oder false. Weitere Informationen finden Sie unter OTA-Updates der AWS IoT Greengrass Core-Software.

writeDirectory

Optional. Das Schreibverzeichnis, in dem alle Lese-/Schreibressourcen AWS IoT Greengrass erstellt.

Weitere Informationen finden Sie unter Konfigurieren eines Schreibverzeichnisses für AWS IoT Greengrass.

GGC v1.7
{ "coreThing" : { "caPath" : "root.ca.pem", "certPath" : "hash.cert.pem", "keyPath" : "hash.private.key", "thingArn" : "arn:aws:iot:region:account-id:thing/core-thing-name", "iotHost" : "host-prefix-ats.iot.region.amazonaws.com", "ggHost" : "greengrass-ats.iot.region.amazonaws.com", "keepAlive" : 600 }, "runtime" : { "cgroup" : { "useSystemd" : "yes" } }, "managedRespawn" : false, "crypto" : { "principals" : { "SecretsManager" : { "privateKeyPath" : "file:///greengrass/certs/hash.private.key" }, "IoTCertificate" : { "privateKeyPath" : "file:///greengrass/certs/hash.private.key", "certificatePath" : "file:///greengrass/certs/hash.cert.pem" } }, "caPath" : "file:///greengrass/certs/root.ca.pem" } }

Die config.json-Datei unterstützt die folgenden Eigenschaften:

coreThing

Feld Beschreibung Hinweise
caPath

Der Pfad zum AWS IoT-Root-CA, relativ zum Verzeichnis /greengrass-root/certs.

Für Abwärtskompatibilität mit Versionen vor 1.7.0. Diese Eigenschaft wird ignoriert, wenn das crypto Objekt vorhanden ist.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen.

certPath

Der Pfad zum Core-Gerätezertifikat, relativ zum Verzeichnis /greengrass-root/certs.

Für Abwärtskompatibilität mit Versionen vor 1.7.0. Diese Eigenschaft wird ignoriert, wenn das crypto Objekt vorhanden ist.
keyPath Der Pfad zum privaten Core-Schlüssel, relativ zum Verzeichnis /greengrass-root/certs. Für Abwärtskompatibilität mit Versionen vor 1.7.0. Diese Eigenschaft wird ignoriert, wenn das crypto Objekt vorhanden ist.
thingArn Der Amazon-Ressourcenname (ARN) des AWS IoT Objekts, das das AWS IoT Greengrass Core-Gerät darstellt. Suchen Sie den ARN für Ihren Core in der AWS IoT GreengrassKonsole unter Cores oder durch Ausführen des aws greengrass get-core-definition-version CLI-Befehls .
iotHost Ihr AWS IoT-Endpunkt.

Suchen Sie den Endpunkt in der AWS IoTKonsole unter Einstellungen oder durch Ausführen des aws iot describe-endpoint --endpoint-type iot:Data-ATS CLI-Befehls .

Dieser Befehl gibt den Amazon Trust Services (ATS) Endpunkt zurück. Weitere Informationen finden Sie in der Dokumentation Server-Authentifizierung.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikattyp entsprechen. Stellen Sie sicher, dass Ihre Endpunkte Ihrem entsprechenAWS-Region.

ggHost Ihr AWS IoT Greengrass-Endpunkt.

Das ist Ihr iotHost-Endpunkt mit dem durch greengrass ersetzten Host-Präfix (z. B. greengrass-ats.iot.region.amazonaws.com). Verwenden Sie dasselbe AWS-Region wie iotHost.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen. Stellen Sie sicher, dass Ihre Endpunkte Ihrem entsprechenAWS-Region.

iotMqttPort Optional. Die Portnummer für die MQTT-Kommunikation mit AWS IoT. Gültige Werte sind 8883 oder 443. Der Standardwert ist 8883. Weitere Informationen finden Sie unter Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy.
keepAlive Optional. Der MQTT-Zeitraum KeepAlive in Sekunden. Der gültige Bereich liegt zwischen 30 und 1200 Sekunden. Der Standardwert ist 600.
networkProxy Optional. Ein Objekt, das einen Proxy-Server definiert, mit dem eine Verbindung hergestellt werden soll. Der Proxy-Server kann HTTP oder HTTPS sein. Weitere Informationen finden Sie unter Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy.

runtime

Feld Beschreibung Hinweise
cgroup
useSystemd Indicates whether your device uses systemd. Valid values are Ja or Nein. Run the check_ggc_dependencies script in Modul 1 to see if your device uses systemd.

crypto

Das in v1.7.0 hinzugefügte crypto-Objekt führt Eigenschaften ein, die die Speicherung privater Schlüssel auf einem Hardware-Sicherheitsmodul (HSM) über PKCS#11 und lokale geheime Speicher unterstützen. Weitere Informationen finden Sie unter Integration von Hardware-Sicherheit und Bereitstellen von Secrets für den AWS IoT Greengrass Core. Konfigurationen für die Speicherung privater Schlüssel auf HSMs oder im Dateisystem werden unterstützt.

Feld Beschreibung Hinweise
caPath

Der absolute Pfad zur AWS IoT Root CA.

Muss ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Anmerkung

Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen.

PKCS11
OpenSSLEngine

Optional. Der absolute Pfad zur OpenSSL-Engine .so-Datei, um die PKCS#11-Unterstützung unter OpenSSL zu aktivieren.

Muss ein Pfad zu einer Datei im Dateisystem sein.

Diese Eigenschaft ist erforderlich, wenn Sie den Greengrass-OTA-Update-Agenten mit Hardwaresicherheit verwenden. Weitere Informationen finden Sie unter Konfigurieren Sie die Unterstützung für Updates over-the-air .

P11Provider

Der absolute Pfad zur libdl-ladbaren Bibliothek der PKCS#11-Implementierung.

Muss ein Pfad zu einer Datei im Dateisystem sein.

slotLabel

Das Slot-Label, das zur Identifizierung des Hardwaremoduls verwendet wird.

Muss den PKCS#11 Label-Spezifikationen entsprechen.

slotUserPin

Die Benutzer-PIN, die zur Authentifizierung des Greengrass-Kerns für das Modul verwendet wird.

Muss über ausreichende Berechtigungen verfügen, um C_Sign mit den konfigurierten privaten Schlüsseln auszuführen.

principals
IoTCertificate The certificate and private key that the core uses to make requests to AWS IoT.
IoTCertificate .privateKeyPath

Der Pfad zum privaten Core-Schlüssel.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt.

IoTCertificate .certificatePath

Der absolute Pfad zum Core-Gerätezertifikat.

Muss ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

MQTTServerCertificate

Optional. Der private Schlüssel, den der Kern in Kombination mit dem Zertifikat verwendet, um als MQTT-Server oder Gateway zu fungieren.

MQTT ServerCertificate .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen MQTT-Servers.

Verwenden Sie diesen Wert, um einen eigenen privaten Schlüssel für den lokalen MQTT-Server anzugeben.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt.

Wenn diese Eigenschaft weggelassen wird, rotiert AWS IoT Greengrass den Schlüssel basierend auf Ihren Rotationseinstellungen. Sofern angegeben, ist der Kunde für das Rotieren des Schlüssels verantwortlich.

SecretsManager The private key that secures the data key used for encryption. For more information, see Bereitstellen von Secrets für den AWS IoT Greengrass Core.
SecretsManager  .privateKeyPath

Der Pfad zum privaten Schlüssel des lokalen Secrets Managers.

Nur ein RSA-Schlüssel wird unterstützt.

Muss für den Dateisystemspeicher ein Datei-URI im folgenden Format sein: file:///absolute/path/to/file.

Muss für einen HSM-Speicher ein RFC 7512 PKCS#11-Pfad sein, der eine Objektbezeichnung angibt. Der private Schlüssel muss erstellt werden, indem Sie den PKCS#1 v1.5-Padding-Mechanismus verwenden.

Die folgenden Konfigurationseigenschaften werden ebenfalls unterstützt:

Feld Beschreibung Hinweise
mqttMaxConnectionRetryInterval

Optional. Das Maximalintervall (in Sekunden) zwischen MQTT-Verbindungsversuchen, wenn die Verbindung getrennt wird.

Geben Sie diesen Wert als Ganzzahl ohne Vorzeichen an. Der Standardwert ist 60.

managedRespawn

Optional. Gibt an, dass der OTA-Agent vor einem Update einen benutzerdefinierten Code ausführen muss.

Gültige Werte sind true oder false. Weitere Informationen finden Sie unter OTA-Updates der AWS IoT Greengrass Core-Software.

writeDirectory

Optional. Das Schreibverzeichnis, in dem alle Lese-/Schreibressourcen AWS IoT Greengrass erstellt.

Weitere Informationen finden Sie unter Konfigurieren eines Schreibverzeichnisses für AWS IoT Greengrass.

GGC v1.6
{ "coreThing": { "caPath": "root-ca-pem", "certPath": "cloud-pem-crt", "keyPath": "cloud-pem-key", "thingArn": "arn:aws:iot:region:account-id:thing/core-thing-name", "iotHost": "host-prefix.iot.region.amazonaws.com", "ggHost": "greengrass.iot.region.amazonaws.com", "keepAlive": 600, "mqttMaxConnectionRetryInterval": 60 }, "runtime": { "cgroup": { "useSystemd": "yes|no" } }, "managedRespawn": true, "writeDirectory": "/write-directory" }
Anmerkung

Wenn Sie die Option Standardgruppenerstellung von der AWS IoT Greengrass Konsole aus verwenden, wird die config.json Datei auf dem Core-Gerät in einem funktionierenden Zustand bereitgestellt, der die Standardkonfiguration angibt.

Die config.json-Datei unterstützt die folgenden Eigenschaften:

Feld Beschreibung Hinweise
caPath

Der Pfad zum AWS IoT Root CA, relativ zum Verzeichnis /greengrass-root/certs.

Speichern Sie die Datei unter /greengrass-root/certs.

certPath

Der Pfad zum AWS IoT Greengrass Kernzertifikat relativ zum /greengrass-root/certs Verzeichnis.

Speichern Sie die Datei unter /greengrass-root/certs.
keyPath Der Pfad zum privaten AWS IoT Greengrass Kernschlüssel relativ zum /greengrass-root/certs Verzeichnis. Speichern Sie die Datei unter /greengrass-root/certs.
thingArn Der Amazon-Ressourcenname (ARN) des AWS IoT Objekts, das das AWS IoT Greengrass Core-Gerät darstellt. Suchen Sie den ARN für Ihren Core in der AWS IoT GreengrassKonsole unter Cores oder durch Ausführen des aws greengrass get-core-definition-version CLI-Befehls .
iotHost Ihr AWS IoT-Endpunkt. Suchen Sie dies in der AWS IoTKonsole unter Einstellungen oder durch Ausführen des aws iot describe-endpoint CLI-Befehls .
ggHost Ihr AWS IoT Greengrass-Endpunkt. Für diesen Wert wird das greengrass.iot.region.amazonaws.com.rproxy.goskope.com-Format verwendet. Verwenden Sie dieselbe Region wie iotHost.
keepAlive Der MQTT-Zeitraum KeepAlive in Sekunden. Dies ist ein optionaler Wert. Der Standardwert ist 600.
mqttMaxConnectionRetryInterval

Das Maximalintervall (in Sekunden) zwischen MQTT-Verbindungsversuchen, wenn die Verbindung getrennt wird.

Geben Sie diesen Wert als Ganzzahl ohne Vorzeichen an. Dies ist ein optionaler Wert. Der Standardwert ist 60.

useSystemd Gibt an, ob Ihr Gerät systemd verwendet. Gültige Werte sind yes oder no. Führen Sie das check_ggc_dependencies-Skript in Modul 1 aus, um festzustellen, ob Ihr Gerät systemd verwendet.
managedRespawn

Ein optionales Feature für over-the-air (OTA)-Aktualisierungen, dies bedeutet, dass der OTA-Agent vor einem Update benutzerdefinierten Code ausführen muss.

Gültige Werte sind true oder false. Weitere Informationen finden Sie unter OTA-Updates der AWS IoT Greengrass Core-Software.

writeDirectory

Das Schreibverzeichnis, in dem alle Lese-/Schreibressourcen AWS IoT Greengrass erstellt.

Dies ist ein optionaler Wert. Weitere Informationen finden Sie unter Konfigurieren eines Schreibverzeichnisses für AWS IoT Greengrass.

GGC v1.5
{ "coreThing": { "caPath": "root-ca-pem", "certPath": "cloud-pem-crt", "keyPath": "cloud-pem-key", "thingArn": "arn:aws:iot:region:account-id:thing/core-thing-name", "iotHost": "host-prefix.iot.region.amazonaws.com", "ggHost": "greengrass.iot.region.amazonaws.com", "keepAlive": 600 }, "runtime": { "cgroup": { "useSystemd": "yes|no" } }, "managedRespawn": true }

Die Datei config.json befindet sich in /greengrass-root/config und enthält die folgenden Parameter:

Feld Beschreibung Hinweise
caPath

Der Pfad zum AWS IoT Root CA, relativ zum Ordner /greengrass-root/certs.

Speichern Sie die Datei im Ordner /greengrass-root/certs.

certPath

Der Pfad zum AWS IoT Greengrass Kernzertifikat relativ zum /greengrass-root/certs Ordner.

Speichern Sie die Datei im Ordner /greengrass-root/certs.
keyPath Der Pfad zum privaten AWS IoT Greengrass Kernschlüssel relativ zum /greengrass-root/certs Ordner. Speichern Sie die Datei im Ordner /greengrass-root/certs.
thingArn Der Amazon-Ressourcenname (ARN) des AWS IoT Objekts, das das AWS IoT Greengrass Core-Gerät darstellt. Suchen Sie den ARN für Ihren Core in der AWS IoT GreengrassKonsole unter Cores oder durch Ausführen des aws greengrass get-core-definition-version CLI-Befehls .
iotHost Ihr AWS IoT-Endpunkt. Suchen Sie dies in der AWS IoT Konsole unter Einstellungen oder durch Ausführen des Befehls aws iot describe-endpoint.
ggHost Ihr AWS IoT Greengrass-Endpunkt. Für diesen Wert wird das greengrass.iot.region.amazonaws.com.rproxy.goskope.com-Format verwendet. Verwenden Sie dieselbe Region wie iotHost.
keepAlive Der MQTT-Zeitraum KeepAlive in Sekunden. Dies ist ein optionaler Wert. Der Standardwert ist 600 Sekunden.
useSystemd Gibt an, ob Ihr Gerät systemd verwendet. Gültige Werte sind yes oder no. Führen Sie das check_ggc_dependencies-Skript in Modul 1 aus, um festzustellen, ob Ihr Gerät systemd verwendet.
managedRespawn

Ein optionales Feature für over-the-air (OTA)-Aktualisierungen, dies bedeutet, dass der OTA-Agent vor einem Update benutzerdefinierten Code ausführen muss.

Weitere Informationen finden Sie unter OTA-Updates der AWS IoT Greengrass Core-Software.

GGC v1.3
{ "coreThing": { "caPath": "root-ca-pem", "certPath": "cloud-pem-crt", "keyPath": "cloud-pem-key", "thingArn": "arn:aws:iot:region:account-id:thing/core-thing-name", "iotHost": "host-prefix.iot.region.amazonaws.com", "ggHost": "greengrass.iot.region.amazonaws.com", "keepAlive": 600 }, "runtime": { "cgroup": { "useSystemd": "yes|no" } }, "managedRespawn": true }

Die Datei config.json befindet sich in /greengrass-root/config und enthält die folgenden Parameter:

Feld Beschreibung Hinweise
caPath

Der Pfad zum AWS IoT Root CA, relativ zum Ordner /greengrass-root/certs.

Speichern Sie die Datei im Ordner /greengrass-root/certs.

certPath

Der Pfad zum AWS IoT Greengrass Kernzertifikat relativ zum /greengrass-root/certs Ordner.

Speichern Sie die Datei im Ordner /greengrass-root/certs.
keyPath Der Pfad zum privaten AWS IoT Greengrass Kernschlüssel relativ zum /greengrass-root/certs Ordner. Speichern Sie die Datei im Ordner /greengrass-root/certs.
thingArn Der Amazon-Ressourcenname (ARN) des AWS IoT Objekts, das den AWS IoT Greengrass Kern darstellt. Sie finden diesen Wert in der AWS IoT Greengrass Konsole unter der Definition für Ihr AWS IoT Objekt.
iotHost Ihr AWS IoT-Endpunkt. Sie finden diesen Wert in der AWS IoT Konsole unter Einstellungen .
ggHost Ihr AWS IoT Greengrass-Endpunkt. Sie finden diesen Wert in der AWS IoT Konsole unter Einstellungen mit greengrass. vorangestelltem .
keepAlive Der MQTT-Zeitraum KeepAlive in Sekunden. Dies ist ein optionaler Wert. Der Standardwert ist 600 Sekunden.
useSystemd Ein Binär-Marker, wenn Ihr Gerät systemd verwendet. Die Werte sind yes oder no. Verwenden Sie das Abhängigkeitenskript in Modul 1, um festzustellen, ob Ihr Gerät systemd verwendet.
managedRespawn

Ein optionales Feature für over-the-air (OTA)-Aktualisierungen, dies bedeutet, dass der OTA-Agent vor einem Update benutzerdefinierten Code ausführen muss.

Weitere Informationen finden Sie unter OTA-Updates der AWS IoT Greengrass Core-Software.

GGC v1.1
{ "coreThing": { "caPath": "root-ca-pem", "certPath": "cloud-pem-crt", "keyPath": "cloud-pem-key", "thingArn": "arn:aws:iot:region:account-id:thing/core-thing-name", "iotHost": "host-prefix.iot.region.amazonaws.com", "ggHost": "greengrass.iot.region.amazonaws.com", "keepAlive": 600 }, "runtime": { "cgroup": { "useSystemd": "yes|no" } } }

Die Datei config.json befindet sich in /greengrass-root/config und enthält die folgenden Parameter:

Feld Beschreibung Hinweise
caPath

Der Pfad zum AWS IoT Root CA, relativ zum Ordner /greengrass-root/certs.

Speichern Sie die Datei im Ordner /greengrass-root/certs.

certPath

Der Pfad zum AWS IoT Greengrass Kernzertifikat relativ zum /greengrass-root/certs Ordner.

Speichern Sie die Datei im Ordner /greengrass-root/certs.
keyPath Der Pfad zum privaten AWS IoT Greengrass Kernschlüssel relativ zum /greengrass-root/certs Ordner. Speichern Sie die Datei im Ordner /greengrass-root/certs.
thingArn Der Amazon-Ressourcenname (ARN) des AWS IoT Objekts, das den AWS IoT Greengrass Kern darstellt. Sie finden diesen Wert in der AWS IoT Greengrass Konsole unter der Definition für Ihr AWS IoT Objekt.
iotHost Ihr AWS IoT-Endpunkt. Sie finden diesen Wert in der AWS IoT Konsole unter Einstellungen .
ggHost Ihr AWS IoT Greengrass-Endpunkt. Sie finden diesen Wert in der AWS IoT Konsole unter Einstellungen mit greengrass. vorangestelltem .
keepAlive Der MQTT-Zeitraum KeepAlive in Sekunden. Dies ist ein optionaler Wert. Der Standardwert ist 600 Sekunden.
useSystemd Ein Binär-Marker, wenn Ihr Gerät systemd verwendet. Die Werte sind yes oder no. Verwenden Sie das Abhängigkeitenskript in Modul 1, um festzustellen, ob Ihr Gerät systemd verwendet.
GGC v1.0

In AWS IoT Greengrass Core v1.0 wird config.json für greengrass-root/configuration bereitgestellt.

{ "coreThing": { "caPath": "root-ca-pem", "certPath": "cloud-pem-crt", "keyPath": "cloud-pem-key", "thingArn": "arn:aws:iot:region:account-id:thing/core-thing-name", "iotHost": "host-prefix.iot.region.amazonaws.com", "ggHost": "greengrass.iot.region.amazonaws.com", "keepAlive": 600 }, "runtime": { "cgroup": { "useSystemd": "yes|no" } } }

Die Datei config.json befindet sich in /greengrass-root/configuration und enthält die folgenden Parameter:

Feld Beschreibung Hinweise
caPath

Der Pfad zum AWS IoT Root CA, relativ zum Ordner /greengrass-root/configuration/certs.

Speichern Sie die Datei im Ordner /greengrass-root/configuration/certs.

certPath

Der Pfad zum AWS IoT Greengrass Kernzertifikat relativ zum /greengrass-root/configuration/certs Ordner.

Speichern Sie die Datei im Ordner /greengrass-root/configuration/certs.
keyPath Der Pfad zum privaten AWS IoT Greengrass Kernschlüssel relativ zum /greengrass-root/configuration/certs Ordner. Speichern Sie die Datei im Ordner /greengrass-root/configuration/certs.
thingArn Der Amazon-Ressourcenname (ARN) des AWS IoT Objekts, das den AWS IoT Greengrass Kern darstellt. Sie finden diesen Wert in der AWS IoT Greengrass Konsole unter der Definition für Ihr AWS IoT -Objekt.
iotHost Ihr AWS IoT-Endpunkt. Sie finden diesen Wert in der AWS IoT Konsole unter Einstellungen .
ggHost Ihr AWS IoT Greengrass-Endpunkt.

Sie finden diesen Wert in der AWS IoT Konsole unter Einstellungen mit greengrass. vorangestelltem .

keepAlive Der MQTT-Zeitraum KeepAlive in Sekunden. Dies ist ein optionaler Wert. Der Standardwert ist 600 Sekunden.
useSystemd Ein Binär-Marker, wenn Ihr Gerät systemd verwendet. Die Werte sind yes oder no. Verwenden Sie das Abhängigkeitenskript in Modul 1, um festzustellen, ob Ihr Gerät systemd verwendet.

Service-Endpunkte müssen mit dem Zertifikatstyp der Stammzertifizierungsstelle übereinstimmen

Ihre AWS IoT Core- und AWS IoT Greengrass-Endpunkte müssen dem Zertifikattyp des Stamm-CA-Zertifikats auf Ihrem Gerät entsprechen. Wenn die Endpunkte und der Zertifikatstyp nicht übereinstimmen, schlagen die Authentifizierungsversuche zwischen AWS IoT Core und AWS IoT Greengrass fehl. Weitere Informationen finden Sie unter Serverauthentifizierung im AWS IoT-Entwicklerhandbuch.

Wenn Ihr Gerät ein Amazon-Trust-Services-(ATS)-Stammzertifizierungsstellenzertifikat verwendet, was die bevorzugte Methode ist, muss es auch ATS-Endpunkte für Operationen auf Geräteverwaltung und Datenerkennungsebene verwenden. ATS-Endpunkte beinhalten das ats-Segment, wie in der folgenden Syntax für den AWS IoT Core-Endpunkt angezeigt.

prefix-ats.iot.region.amazonaws.com
Anmerkung

Aus Gründen der Abwärtskompatibilität unterstützt AWS IoT Greengrass derzeit ältere VeriSign Stammzertifizierungsstellenzertifikate und Endpunkte in einigen AWS-Regionen. Wenn Sie ein VeriSign älteres Stammzertifizierungsstellenzertifikat verwenden, empfehlen wir Ihnen, stattdessen einen ATS-Endpunkt zu erstellen und ein ATS-Stammzertifizierungsstellenzertifikat zu verwenden. Andernfalls stellen Sie sicher, dass Sie die entsprechenden Legacy-Endpunkte verwenden. Weitere Informationen finden Sie unter Unterstützte Legacy-Endpunkte im Allgemeine Amazon Web Services-Referenz.

Endpunkte in config.json

Auf einem Greengrass Core-Gerät sind Endpunkte im Objekt coreThing in der Datei config.json angegeben. Die Eigenschaft iotHost steht für den AWS IoT Core-Endpunkt. Die Eigenschaft ggHost steht für den AWS IoT Greengrass-Endpunkt. Im folgenden Beispiel für einen Ausschnitt legen diese Eigenschaften ATS-Endpunkte fest.

{ "coreThing" : { ... "iotHost" : "abcde1234uwxyz-ats.iot.us-west-2.amazonaws.com", "ggHost" : "greengrass-ats.iot.us-west-2.amazonaws.com", ... },
AWS IoT Core-Endpunkt

Sie erhalten Ihren AWS IoT Core-Endpunkt, indem Sie den CLI-Befehl aws iot describe-endpoint mit dem entsprechenden --endpoint-type-Parameter ausführen.

  • Um einen ATS-signierten Endpunkt zurückzugeben, führen Sie Folgendes aus.

    aws iot describe-endpoint --endpoint-type iot:Data-ATS
  • Um einen Legacy- VeriSign signierten Endpunkt zurückzugeben, führen Sie Folgendes aus:

    aws iot describe-endpoint --endpoint-type iot:Data
AWS IoT Greengrass-Endpunkt

Für Ihren AWS IoT Greengrass-Endpunkt wird das Host-Präfix Ihres iotHost-Endpunkts durch greengrass ersetzt. Zum Beispiel lautet der signierte ATS-Endpunkt greengrass-ats.iot.region.amazonaws.com. Dieser verwendet die selbe Region wie Ihr AWS IoT Core-Endpunkt.

Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy

Diese Funktion ist für AWS IoT Greengrass Core v1.7 und höher verfügbar.

Greengrass-Cores kommunizieren mit AWS IoT Core unter Verwendung des MQTT-Messaging-Protokolls mit TLS-Client-Authentifizierung. 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. Bei anderen restriktiven Umgebungen muss der gesamte Datenverkehr möglicherweise über einen HTTP-Proxy laufen, der mit dem Internet verbunden ist.

Um die Kommunikation in solchen Fällen zu ermöglichen, erlaubt AWS IoT Greengrass die folgenden Konfigurationen:

  • MQTT mit TLS-Client-Authentifizierung über Port 443. Wenn Ihr Netzwerk Verbindungen über Port 443 zulässt, können Sie den Core so konfigurieren, dass er anstelle des Standard-Ports 8883 Port 443 für MQTT-Datenverkehr verwendet. Dabei kann es sich um eine direkte Verbindung mit Port 443 oder eine Verbindung über einen Netzwerk-Proxy-Server handeln.

    AWS IoT Greengrass ermöglicht diese Verbindung mittels der Application Layer Protocol Network (ALPN) TLS-Erweiterung. Wie bei der Standardkonfiguration verwendet MQTT über TLS auf Port 443 eine zertifikatbasierte Client-Authentifizierung.

    Wenn für die Verwendung einer direkten Verbindung mit Port 443 konfiguriert, unterstützt der Core over-the-air (OTA)-Updates für AWS IoT Greengrass Software. Diese Unterstützung erfordert AWS IoT Greengrass Core v1.9.3 oder höher.

  • HTTPS-Kommunikation über Port 443. AWS IoT Greengrass sendet HTTPS-Datenverkehr standardmäßig über Port 8443. Sie können ihn jedoch so konfigurieren, dass er Port 443 verwendet.

  • Verbindung über einen Netzwerk-Proxy. Sie können einen Netzwerk-Proxy-Server so konfigurieren, dass er als Vermittler beim Herstellen der Verbindung mit dem Greengrass-Core fungiert. Nur grundlegende Authentifizierung und HTTP- und HTTPS-Proxys werden unterstützt.

    Die Proxy-Konfiguration wird über die no_proxy Umgebungsvariablen http_proxy, https_proxyund an benutzerdefinierte Lambda-Funktionen übergeben. Benutzerdefinierte Lambda-Funktionen müssen diese übergebenen Einstellungen verwenden, um eine Verbindung über den Proxy herzustellen. Häufige Bibliotheken, die von Lambda-Funktionen zum Herstellen von Verbindungen verwendet werden (wie boto3- oder cURL- und Python-requestsPakete), verwenden diese Umgebungsvariablen in der Regel standardmäßig. Wenn eine Lambda-Funktion auch dieselben Umgebungsvariablen angibt, überschreibt sie AWS IoT Greengrass nicht.

    Wichtig

    Greengrass-Cores, die für die Verwendung eines Netzwerk-Proxys konfiguriert wurden, unterstützen keine OTA-Aktualisierungen.

So konfigurieren Sie MQTT über Port 443

Für diese Funktion ist AWS IoT Greengrass Core v1.7 oder höher erforderlich.

Dieses Verfahren ermöglicht es dem Greengrass-Core, Port 443 für MQTT-Messaging mit AWS IoT Core zu verwenden.

  1. Führen Sie den folgenden Befehl aus, um den Greengrass-Daemon zu stoppen:

    cd /greengrass-root/ggc/core/ sudo ./greengrassd stop
  2. Öffnen Sie greengrass-root/config/config.json zur Bearbeitung als su-Benutzer.

  3. Fügen Sie im Objekt coreThing die Eigenschaft iotMqttPort hinzu und setzen Sie den Wert auf 443, wie im folgenden Beispiel gezeigt.

    { "coreThing" : { "caPath" : "root.ca.pem", "certPath" : "12345abcde.cert.pem", "keyPath" : "12345abcde.private.key", "thingArn" : "arn:aws:iot:us-west-2:123456789012:thing/core-thing-name", "iotHost" : "abcd123456wxyz-ats.iot.us-west-2.amazonaws.com", "iotMqttPort" : 443, "ggHost" : "greengrass-ats.iot.us-west-2.amazonaws.com", "keepAlive" : 600 }, ... }
  4. Starten Sie den -Daemon.

    cd /greengrass-root/ggc/core/ sudo ./greengrassd start

 

So konfigurieren Sie HTTPS über Port 443

Für diese Funktion ist AWS IoT Greengrass Core v1.8 oder höher erforderlich.

Dieses Verfahren konfiguriert den Kern so, dass er Port 443 für die HTTPS-Kommunikation verwendet.

  1. Führen Sie den folgenden Befehl aus, um den Greengrass-Daemon zu stoppen:

    cd /greengrass-root/ggc/core/ sudo ./greengrassd stop
  2. Öffnen Sie greengrass-root/config/config.json zur Bearbeitung als su-Benutzer.

  3. Fügen Sie im Objekt coreThing die Eigenschaften iotHttpPort und ggHttpPort hinzu, wie im folgenden Beispiel dargestellt.

    { "coreThing" : { "caPath" : "root.ca.pem", "certPath" : "12345abcde.cert.pem", "keyPath" : "12345abcde.private.key", "thingArn" : "arn:aws:iot:us-west-2:123456789012:thing/core-thing-name", "iotHost" : "abcd123456wxyz-ats.iot.us-west-2.amazonaws.com", "iotHttpPort" : 443, "ggHost" : "greengrass-ats.iot.us-west-2.amazonaws.com", "ggHttpPort" : 443, "keepAlive" : 600 }, ... }
  4. Starten Sie den -Daemon.

    cd /greengrass-root/ggc/core/ sudo ./greengrassd start

 

So konfigurieren Sie einen Netzwerk-Proxy

Für diese Funktion ist AWS IoT Greengrass Core v1.7 oder höher erforderlich.

Dieses Verfahren ermöglicht AWS IoT Greengrass, eine Internetverbindung über einen HTTP- oder HTTPS-Netzwerk-Proxy herzustellen.

  1. Führen Sie den folgenden Befehl aus, um den Greengrass-Daemon zu stoppen:

    cd /greengrass-root/ggc/core/ sudo ./greengrassd stop
  2. Öffnen Sie greengrass-root/config/config.json zur Bearbeitung als su-Benutzer.

  3. Fügen Sie im Objekt coreThing das Objekt networkProxy hinzu, wie im folgenden Beispiel gezeigt.

    { "coreThing" : { "caPath" : "root.ca.pem", "certPath" : "12345abcde.cert.pem", "keyPath" : "12345abcde.private.key", "thingArn" : "arn:aws:iot:us-west-2:123456789012:thing/core-thing-name", "iotHost" : "abcd123456wxyz-ats.iot.us-west-2.amazonaws.com", "ggHost" : "greengrass-ats.iot.us-west-2.amazonaws.com", "keepAlive" : 600, "networkProxy": { "noProxyAddresses" : "http://128.12.34.56,www.mywebsite.com", "proxy" : { "url" : "https://my-proxy-server:1100", "username" : "Mary_Major", "password" : "pass@word1357" } } }, ... }
  4. Starten Sie den -Daemon.

    cd /greengrass-root/ggc/core/ sudo ./greengrassd start

networkProxy-Objekt

Geben Sie mithilfe des networkProxy-Objekts Informationen zum Netzwerk-Proxy an. Dieses Objekt hat die folgenden Eigenschaften.

Feld Beschreibung
noProxyAddresses

Optional. Eine durch Komma getrennte Liste von IP-Adressen oder Host-Namen, die vom Proxy ausgeschlossen sind.

proxy

Der Proxy, mit dem die Verbindung hergestellt werden soll. Ein Proxy hat die folgenden Eigenschaften.

  • url. Die URL des Proxy-Servers im Format scheme://userinfo@host:port.

    • scheme. Das Schema. Es muss sich entweder um http oder https handeln.

    • userinfo. Optional. Der Benutzername und die Passwortinformationen. Die Felder username und password werden ignoriert, sofern angegeben.

    • host. Der Hostname oder die IP-Adresse des Proxy-Servers.

    • port. Optional. Die Port-Nummer. Wenn nicht angegeben, werden die folgenden Standardwerte verwendet:

      • http: 80

      • https: 443

  • username. Optional. Der Benutzername, mit dem die Authentifizierung gegenüber dem Proxy-Server erfolgt.

  • password. Optional. Das Passwort, das zur Authentifizierung am Proxy-Server verwendet wird.

Zulassen von Endpunkten

Die Kommunikation zwischen Greengrass-Geräten und AWS IoT Core oder AWS IoT Greengrass muss authentifiziert werden. Diese Authentifizierung basiert auf registrierten X.509-Gerätezertifikaten und kryptografischen Schlüsseln. Damit authentifizierte Anfragen ohne zusätzliche Verschlüsselung Proxys durchlaufen können, müssen Sie die folgenden Endpunkte zulassen.

Endpunkt Port Beschreibung
greengrass.region.amazonaws.com 443

Für Operationen auf Steuerebene für die Gruppenverwaltung

prefix-ats.iot.region.amazonaws.com

or

prefix.iot.region.amazonaws.com

MQTT: 8883 oder 443

HTTPS: 8443 oder 443

Für Operationen auf Datenebene für das Gerätemanagement, wie z. B. Schattensynchronisierung

Erlauben Sie die Verwendung eines oder beider Endpunkte, je nachdem, ob Ihre Core- und Client-Geräte Amazon Trust Services (bevorzugte) Root-CA-Zertifikate, Legacy-Root-CA-Zertifikate oder beides verwenden. Weitere Informationen finden Sie unter Service-Endpunkte müssen mit dem Zertifikatstyp der Stammzertifizierungsstelle übereinstimmen.

greengrass-ats.iot.region.amazonaws.com

or

greengrass.iot.region.amazonaws.com

8443 oder 443

Für Geräteerkennungsoperationen

Erlauben Sie die Verwendung eines oder beider Endpunkte, je nachdem, ob Ihre Core- und Client-Geräte Amazon Trust Services (bevorzugte) Root-CA-Zertifikate, Legacy-Root-CA-Zertifikate oder beides verwenden. Weitere Informationen finden Sie unter Service-Endpunkte müssen mit dem Zertifikatstyp der Stammzertifizierungsstelle übereinstimmen.

Anmerkung

Clients, die eine Verbindung über Port 443 herstellen, müssen die TLS-Erweiterung Application Layer Protocol Negotiation (ALPN) implementieren und x-amzn-http-ca als ProtocolName in der übergebenProtocolNameList. Weitere Informationen finden Sie unter Protokolle im AWS IoT -Entwicklerhandbuch.

*.s3.amazonaws.com 443

Wird für Bereitstellungsvorgänge und over-the-air Updates verwendet. Dieses Format enthält das Zeichen *, da Endpunktpräfixe intern kontrolliert werden und sich jederzeit ändern können.

logs.region.amazonaws.com 443

Erforderlich, wenn die Greengrass-Gruppe so konfiguriert ist, dass Protokolle in CloudWatch geschrieben werden.

Konfigurieren eines Schreibverzeichnisses für AWS IoT Greengrass

Diese Funktion ist für AWS IoT Greengrass Core v1.6 und höher verfügbar.

Standardmäßig wird die AWS IoT Greengrass Core-Software unter einem einzigen Stammverzeichnis bereitgestellt, in dem AWS IoT Greengrass alle Lese- und Schreiboperationen ausführt. Sie können AWS IoT Greengrass allerdings so konfigurieren, dass ein separater Ordner für alle Schreiboperationen, einschließlich der Erstellung von Verzeichnissen und Dateien, verwendet wird. In diesem Fall verwendet AWS IoT Greengrass zwei Top-Level-Verzeichnisse:

  • Das greengrass-root-Verzeichnis, das Sie für Lese-/Schreibvorgänge oder optional schreibgeschützt verwenden können. Darin sind die AWS IoT Greengrass Core-Software und andere kritische Komponenten enthalten, die während der Laufzeit unveränderlich bleiben sollen, beispielsweise Zertifikate und config.json.

  • Das angegebene Schreibverzeichnis. Dies enthält beschreibbare Inhalte wie Protokolle, Statusinformationen und bereitgestellte benutzerdefinierte Lambda-Funktionen.

Diese Konfiguration führt zu der folgenden Verzeichnisstruktur.

Greengrass-Stammverzeichnis
greengrass-root/ |-- certs/ | |-- root.ca.pem | |-- hash.cert.pem | |-- hash.private.key | |-- hash.public.key |-- config/ | |-- config.json |-- ggc/ | |-- packages/ | |-- package-version/ | |-- bin/ | |-- daemon | |-- greengrassd | |-- lambda/ | |-- LICENSE/ | |-- release_notes_package-version.html | |-- runtime/ | |-- java8/ | |-- nodejs8.10/ | |-- python3.8/ | |-- core/
Schreibverzeichnis
write-directory/ |-- packages/ | |-- package-version/ | |-- ggc_root/ | |-- rootfs_nosys/ | |-- rootfs_sys/ | |-- var/ |-- deployment/ | |-- group/ | |-- group.json | |-- lambda/ | |-- mlmodel/ |-- var/ | |-- log/ | |-- state/

 

So konfigurieren Sie ein Schreibverzeichnis
  1. Führen Sie den folgenden Befehl aus, um den AWS IoT Greengrass-Daemon zu beenden:

    cd /greengrass-root/ggc/core/ sudo ./greengrassd stop
  2. Öffnen Sie greengrass-root/config/config.json zur Bearbeitung als su-Benutzer.

  3. Fügen Sie writeDirectory als einen Parameter hinzu und geben Sie, wie im folgenden Beispiel, den Pfad zum Zielverzeichnis an.

    { "coreThing": { "caPath": "root-CA.pem", "certPath": "hash.pem.crt", ... }, ... "writeDirectory" : "/write-directory" }
    Anmerkung

    Sie können die writeDirectory-Einstellung so oft aktualisieren, wie Sie möchten. Nachdem die Einstellung aktualisiert wurde, verwendet AWS IoT Greengrass das neu angegebene Schreibverzeichnis beim nächsten Start. Allerdings wird kein Inhalt aus dem vorherigen Schreibverzeichnis migriert.

  4. Nachdem Ihr Schreibverzeichnis konfiguriert ist, können Sie optional das greengrass-root-Verzeichnis auf schreibgeschützt einstellen. Anweisungen finden Sie unter So wird das Greengrass-Stammverzeichnis auf schreibgeschützt eingestellt.

    Andernfalls starten Sie den AWS IoT Greengrass-Daemon:

    cd /greengrass-root/ggc/core/ sudo ./greengrassd start

 

So aktivieren Sie den Schreibschutz für das Greengrass-Stammverzeichnis

Führen Sie diese Schritte nur aus, wenn das Greengrass-Stammverzeichnis schreibgeschützt sein soll. Das Schreibverzeichnis muss vor Beginn konfiguriert werden.

  1. Erteilen Sie Zugriffsberechtigungen für erforderliche Verzeichnisse:

    1. Dem config.json-Besitzer Lese- und Schreibberechtigung erteilen.

      sudo chmod 0600 /greengrass-root/config/config.json
    2. Machen Sie ggc_user zum Besitzer der Zertifikate und System-Lambda-Verzeichnisse.

      sudo chown -R ggc_user:ggc_group /greengrass-root/certs/ sudo chown -R ggc_user:ggc_group /greengrass-root/ggc/packages/1.11.6/lambda/
      Anmerkung

      Die Konten ggc_user und ggc_group werden standardmäßig verwendet, um System-Lambda-Funktionen auszuführen. Wenn Sie die Standardzugriffsidentität auf Gruppenebene konfiguriert haben, um verschiedene Konten zu verwenden, sollten Sie stattdessen dem Benutzer (UID) und der Gruppe (GID) Berechtigungen erteilen.

  2. Stellen Sie mit Ihrem bevorzugten Mechanismus den Schreibschutz für das greengrass-root-Verzeichnis ein.

    Anmerkung

    Sie können den Schreibschutz für das greengrass-root-Verzeichnis einstellen, indem Sie das Verzeichnis als schreibgeschützt mounten. Um jedoch over-the-air (OTA)-Updates auf die AWS IoT Greengrass -Core-Software in einem gemounteten Verzeichnis anzuwenden, muss das Verzeichnis zuerst entmountet und nach dem Update erneut gemountet werden. Sie können diese umount- und mount-Operationen für die ota_pre_update- und ota_post_update-Skripts hinzufügen. Weitere Informationen über OTA-Updates finden Sie unter Greengrass OTA-Update-Agent und Managed Respawn mit OTA-Updates.

  3. Starten Sie den -Daemon.

    cd /greengrass-root/ggc/core/ sudo ./greengrassd start

    Wenn die Berechtigungen aus Schritt 1 nicht korrekt festgelegt wurden, wird der Daemon nicht gestartet.

Konfigurieren der MQTT-Einstellungen

In der AWS IoT Greengrass Umgebung können lokale Client-Geräte, Lambda-Funktionen, Konnektoren und Systemkomponenten miteinander und mit kommunizierenAWS IoT Core. Die gesamte Kommunikation erfolgt durch den Core, der die Abonnements verwaltet, die die MQTT-Kommunikation zwischen Entitäten autorisieren.

Informationen zu MQTT-Einstellungen, die Sie für AWS IoT Greengrass konfigurieren können, finden Sie in den folgenden Abschnitten:

Anmerkung

OPC-UA ist ein Standard für den Informationsaustausch für die industrielle Kommunikation. Um die Unterstützung für OPC-UA auf dem Greengrass-Kern zu implementieren, können Sie den IoT SiteWise -Konnektor verwenden. Der Konnektor sendet industrielle Gerätedaten von OPC-UA-Servern an Objekteigenschaften in AWS IoT SiteWise.

Nachrichtenqualität des Service

AWS IoT Greengrass unterstützt Quality of Service (QoS)-Level 0 oder 1, abhängig von Ihrer Konfiguration und dem Ziel sowie der Richtung der Kommunikation. Der Greengrass-Core fungiert als Client für die Kommunikation mit AWS IoT Core und als Nachrichtenbroker für die Kommunikation im lokalen Netzwerk.

Der Core als Client und lokaler Nachrichtenbroker.

Weitere Informationen zu MQTT und QoS finden Sie unter Erste Schritte auf der MQTT-Website.

Kommunikation mit der AWS Cloud
  • Ausgehende Nachrichten verwenden QoS 1

    Der Kern sendet Nachrichten, die für AWS Cloud Ziele bestimmt sind, mit QoS 1. AWS IoT Greengrass verwendet eine MQTT-Nachrichtenwarteschlange, um diese Nachrichten zu verarbeiten. Wenn die Nachrichtenzustellung nicht von bestätigt wirdAWS IoT, wird die Nachricht gespoolt und später erneut versucht. Die Nachricht kann nicht erneut versucht werden, wenn die Warteschlange voll ist. Die Bestätigung der Nachrichtenzustellung kann dazu beitragen, Datenverluste durch intermittierende Konnektivität zu minimieren.

    Da ausgehende Nachrichten QoS 1 AWS IoT verwenden, hängt die maximale Rate, mit der der Greengrass-Kern Nachrichten senden kann, von der Latenz zwischen dem Kern und abAWS IoT. Jedes Mal, wenn der Kern eine Nachricht sendet, wartet er, bis die Nachricht AWS IoT bestätigt, bevor er die nächste Nachricht sendet. Wenn die Round-Trip-Zeit zwischen dem Kern und seinem beispielsweise 50 Millisekunden AWS-Region beträgt, kann der Kern bis zu 20 Nachrichten pro Sekunde senden. Berücksichtigen Sie dieses Verhalten, wenn Sie die auswählen, AWS-Region in der Ihr Kern eine Verbindung herstellt. Um IoT-Daten mit hohem Volumen in die aufzunehmenAWS Cloud, können Sie den Stream-Manager verwenden.

    Weitere Informationen zur MQTT-Nachrichtenwarteschlange, einschließlich der Konfiguration eines lokalen Speicher-Caches, der Nachrichten für AWS Cloud Ziele beibehalten kann, finden Sie unter MQTT-Nachrichtenwarteschlange für Cloud-Ziele.

  • Eingehende Nachrichten verwenden QoS 0 (Standard) oder QoS 1

    Standardmäßig abonniert der Core Nachrichten aus AWS Cloud Quellen mit QoS 0. Wenn Sie persistente Sitzungen aktivieren, abonniert der Core mit QoS 1. Dies kann dazu beitragen, Datenverluste durch intermittierende Konnektivität zu minimieren. Um die QoS für diese Abonnements zu verwalten, konfigurieren Sie Persistenzeinstellungen für die lokale Spooler-Systemkomponente.

    Weitere Informationen, einschließlich der Aktivierung des Kerns zum Einrichten einer persistenten Sitzung mit AWS Cloud Zielen, finden Sie unter Persistente MQTT-Sitzungen mit AWS IoT Core.

Kommunikation mit lokalen Zielen

Die gesamte lokale Kommunikation verwendet QoS 0. Der Kern versucht einen Versuch, eine Nachricht an ein lokales Ziel zu senden, bei dem es sich um eine Greengrass-Lambda-Funktion, einen Konnektor oder ein Client-Gerät handeln kann. Der Core speichert keine Nachrichten und bestätigt die Zustellung nicht. Nachrichten können überall zwischen den Komponenten gelöscht werden.

Anmerkung

Obwohl die direkte Kommunikation zwischen Lambda-Funktionen kein MQTT-Messaging verwendet, ist das Verhalten gleich.

MQTT-Nachrichtenwarteschlange für Cloud-Ziele

MQTT-Nachrichten, die für AWS Cloud Ziele bestimmt sind, werden in die Warteschlange gestellt, um auf die Verarbeitung zu warten. Nachrichten in der Warteschlange werden in der FIFO (First-in-First-out)-Reihenfolge verarbeitet. Nachdem eine Nachricht verarbeitet und in AWS IoT Core veröffentlicht wurde, wird sie aus der Warteschlange entfernt.

Standardmäßig speichert der Greengrass-Kern unverarbeitete Nachrichten, die für AWS Cloud Ziele bestimmt sind, im Speicher. Sie können den Core so konfigurieren, dass nicht verarbeitete Nachrichten stattdessen in einem lokalen Speichercache gespeichert werden. Im Gegensatz zu speicherinternem Speicher überdauert der lokale Speicher-Cache einen Neustart (z. B. nach der Bereitstellung einer Gruppe oder ein Geräteneustart), sodass AWS IoT Greengrass die Nachrichten weiter verarbeiten kann. Sie können auch die Speichergröße konfigurieren.

Warnung

Der Greengrass-Kern stellt möglicherweise doppelte MQTT-Nachrichten in die Warteschlange, wenn er die Verbindung verliert, da er einen Veröffentlichungsvorgang wiederholt, bevor der MQTT-Client feststellt, dass er offline ist. Um doppelte MQTT-Nachrichten für Cloud-Ziele zu vermeiden, konfigurieren Sie den keepAlive Wert des Kerns auf weniger als die Hälfte seines mqttOperationTimeout Werts. Weitere Informationen finden Sie unter AWS IoT Greengrass Core-Konfigurationsdatei.

AWS IoT Greengrass verwendet die Spooler-Systemkomponente (die GGCloudSpooler Lambda-Funktion), um die Nachrichtenwarteschlange zu verwalten. Sie können die folgenden GGCloudSpooler-Umgebungsvariablen verwenden, um Speichereinstellungen zu konfigurieren.

  • GG_CONFIG_STORAGE_TYPE. Der Speicherort der Nachrichtenwarteschlange. Die folgenden Werte sind gültig:

    • FileSystem. Speichern Sie unverarbeitete Nachrichten im lokalen Speichercache auf der Festplatte des physischen Core-Geräts. Wenn der Core neu gestartet wird, werden Nachrichten in der Warteschlange für die Verarbeitung beibehalten. Nachrichten werden nach der Verarbeitung entfernt.

    • Memory (default). Speichern Sie nicht verarbeitete Nachrichten im Arbeitsspeicher. Wenn der Core neu gestartet wird, gehen Nachrichten in der Warteschlange verloren.

      Diese Option sind für Geräte mit eingeschränkten Hardwaremöglichkeiten optimiert. Wenn Sie diese Konfiguration verwenden, sollten Sie Gruppen bereitstellen oder das Gerät neu starten, wenn die Serviceunterbrechung möglichst gering ist.

  • GG_CONFIG_MAX_SIZE_BYTES. Die Speichergröße in Bytes. Dieser Wert kann eine beliebige nicht negative Ganzzahl größer oder gleich 262144 (256 KB) sein. Eine kleinere Größe verhindert, dass die AWS IoT Greengrass Core-Software gestartet wird. Die Standardgröße ist 2.5 MB. Wenn die maximale Größe erreicht ist, werden die ältesten Nachrichten in der Warteschlange durch neue Nachrichten ersetzt.

Anmerkung

Diese Funktion ist für AWS IoT Greengrass Core v1.6 und höher verfügbar. Frühere Versionen verwenden In-Memory-Speicher mit einer Warteschlangengröße von 2,5 MB. Sie können keine Speichereinstellungen für frühere Versionen konfigurieren.

So speichern Sie Nachrichten im lokalen Speicher

Sie können AWS IoT Greengrass so konfigurieren, dass Nachrichten im Dateisystem zwischengespeichert werden und einen Core-Neustart überdauern. Dazu stellen Sie eine Funktionsdefinitionsversion bereit, in der die GGCloudSpooler-Funktion den Speichertyp auf FileSystem festlegt. Sie müssen den lokalen Speicher-Cache mit der AWS IoT Greengrass-API konfigurieren. Sie können dies von der Konsole aus erledigen.

Im folgenden Verfahren wird der create-function-definition-version CLI-Befehl verwendet, um den Spooler so zu konfigurieren, dass Nachrichten in der Warteschlange im Dateisystem gespeichert werden. Außerdem wird damit eine Warteschlange mit einer Größe von 2,6 MB konfiguriert.

  1. Rufen Sie die IDs der Greengrass-Zielgruppen und die Gruppenversion ab. Bei diesem Verfahren wird davon ausgegangen, dass es sich um die neueste Gruppe und Gruppenversion handelt. Die folgende Abfrage gibt die zuletzt erstellte Gruppe zurück.

    aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"

    Sie können auch nach Namen abfragen. Gruppennamen müssen nicht eindeutig sein, sodass mehrere Gruppen zurückgegeben werden können.

    aws greengrass list-groups --query "Groups[?Name=='MyGroup']"
    Anmerkung

    Sie finden diese Werte auch in der -AWS IoTKonsole. Die Gruppen-ID wird auf der Seite Einstellungen der Gruppe angezeigt. Gruppenversions-IDs werden auf der Registerkarte Bereitstellungen der Gruppe angezeigt.

  2. Kopieren Sie die LatestVersionWerte und Id aus der Zielgruppe in die Ausgabe.

  3. Rufen Sie die neueste Gruppenversion ab.

    • Ersetzen Sie group-id durch die kopierte Id.

    • Ersetzen Sie latest-group-version-id durch den LatestVersion, den Sie kopiert haben.

    aws greengrass get-group-version \ --group-id group-id \ --group-version-id latest-group-version-id
  4. Kopieren Sie aus dem Objekt Definition in der Ausgabe den CoreDefinitionVersionArn und die ARNs aller anderen Gruppenkomponenten außer FunctionDefinitionVersionArn. Diese Werte verwenden Sie, wenn Sie eine neue Gruppenversion erstellen.

  5. Kopieren Sie die ID der Funktionsdefinition aus FunctionDefinitionVersionArn. Die ID ist die GUID, die dem functions-Segment im ARN folgt, wie im folgenden Beispiel gezeigt.

    arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/bcfc6b49-beb0-4396-b703-6dEXAMPLEcu5/versions/0f7337b4-922b-45c5-856f-1aEXAMPLEsf6
    Anmerkung

    Sie können auch eine Funktionsdefinition erstellen, indem Sie den create-function-definition Befehl ausführen und dann die ID aus der Ausgabe kopieren.

  6. Fügen Sie der Funktionsdefinition eine Funktionsdefinitionsversion hinzu.

    • Ersetzen Sie durch function-definition-id die Id, die Sie für die Funktionsdefinition kopiert haben.

    • Ersetzen Sie arbitrary-function-id durch einen Namen für die Funktion, z. B. spooler-function.

    • Fügen Sie dem functionsArray alle Lambda-Funktionen hinzu, die Sie in diese Version aufnehmen möchten. Sie können den get-function-definition-version Befehl verwenden, um die Greengrass-Lambda-Funktionen aus einer vorhandenen Funktionsdefinitionsversion abzurufen.

    Warnung

    Stellen Sie sicher, dass Sie einen Wert für GG_CONFIG_MAX_SIZE_BYTES angeben, der größer als oder gleich 262144 ist. Eine kleinere Größe verhindert, dass die AWS IoT Greengrass Core-Software gestartet wird.

    aws greengrass create-function-definition-version \ --function-definition-id function-definition-id \ --functions '[{"FunctionArn": "arn:aws:lambda:::function:GGCloudSpooler:1","FunctionConfiguration": {"Environment": {"Variables":{"GG_CONFIG_MAX_SIZE_BYTES":"2621440","GG_CONFIG_STORAGE_TYPE":"FileSystem"}},"Executable": "spooler","MemorySize": 32768,"Pinned": true,"Timeout": 3},"Id": "arbitrary-function-id"}]'
    Anmerkung

    Wenn Sie zuvor die GG_CONFIG_SUBSCRIPTION_QUALITY-Umgebungsvariable so einstellen, dass sie persistente Sitzungen mit AWS IoT Core unterstützt, schließen Sie sie in diese Funktions-Instance ein.

  7. Kopieren Sie den Arn der Funktionsdefinitionsversion aus der Ausgabe.

  8. Erstellen Sie eine Gruppenversion, die die System-Lambda-Funktion enthält.

    • Ersetzen Sie group-id durch die Id für die Gruppe.

    • Ersetzen Sie durch core-definition-version-arn die CoreDefinitionVersionArn, die Sie aus der neuesten Gruppenversion kopiert haben.

    • Ersetzen Sie durch function-definition-version-arn die Arn, die Sie für die neue Version der Funktionsdefinition kopiert haben.

    • Ersetzen Sie die ARNs für andere Gruppenkomponenten (zum Beispiel SubscriptionDefinitionVersionArn oder DeviceDefinitionVersionArn), die Sie aus der neuesten Gruppe kopiert haben.

    • Entfernen Sie alle nicht verwendeten Parameter. Entfernen Sie zum Beispiel --resource-definition-version-arn, wenn Ihre Gruppenversion keine Ressourcen enthält.

    aws greengrass create-group-version \ --group-id group-id \ --core-definition-version-arn core-definition-version-arn \ --function-definition-version-arn function-definition-version-arn \ --device-definition-version-arn device-definition-version-arn \ --logger-definition-version-arn logger-definition-version-arn \ --resource-definition-version-arn resource-definition-version-arn \ --subscription-definition-version-arn subscription-definition-version-arn
  9. Kopieren Sie die Version aus der Ausgabe. Dies ist die ID der neuen Gruppenversion.

  10. Stellen Sie die Gruppe mit der neuen Gruppenversion bereit.

    • Ersetzen Sie group-id durch die kopierte Id für die Gruppe.

    • Ersetzen Sie durch group-version-id die Version, die Sie für die neue Gruppenversion kopiert haben.

    aws greengrass create-deployment \ --group-id group-id \ --group-version-id group-version-id \ --deployment-type NewDeployment

Sie können die Speichereinstellungen mit der AWS IoT Greengrass API aktualisieren, um eine neue Version der Funktionsdefinition zu erstellen, in der die GGCloudSpooler-Funktion mit der aktualisierten Konfiguration enthalten ist. Fügen Sie anschließend die Funktionsdefinitionsversion einer neuen Gruppenversion (zusammen mit Ihren anderen Gruppenkomponenten) hinzu und stellen Sie die Gruppenversion bereit. Wenn Sie die Standardkonfiguration wiederherstellen möchten, können Sie eine Funktionsdefinitionsversion bereitstellen, in der die GGCloudSpooler-Funktion nicht enthalten ist.

Diese System-Lambda-Funktion ist in der Konsole nicht sichtbar. Nachdem die Funktion der neuesten Gruppenversion hinzugefügt wurde, ist sie allerdings in Bereitstellungen enthalten, die Sie von der Konsole aus erstellen, es sei denn, Sie ersetzen oder verschieben sie mit der API.

Persistente MQTT-Sitzungen mit AWS IoT Core

Diese Funktion ist für AWS IoT Greengrass Core v1.10 und höher verfügbar.

Ein Greengrass-Core kann eine persistente Sitzung mit dem AWS IoT-Nachrichtenbroker einrichten. Eine dauerhafte Sitzung ist eine fortlaufende Verbindung, die es dem Core ermöglicht, Nachrichten zu empfangen, die gesendet werden, während der Core offline ist. Der Core ist der Client in der Verbindung.

In einer persistenten Sitzung speichert der AWS IoT-Nachrichtenbroker alle Abonnements, die der Core während der Verbindung erstellt. Wenn der Kern getrennt wird, speichert der AWS IoT Message Broker unbestätigte und neue Nachrichten, die als QoS 1 veröffentlicht und für lokale Ziele wie Lambda-Funktionen und Client-Geräte bestimmt sind. Wenn sich der Core erneut verbindet, wird die persistente Sitzung fortgesetzt, und der AWS IoT-Nachrichtenbroker sendet gespeicherte Nachrichten mit einer maximalen Rate von 10 Nachrichten pro Sekunde an den Core. Dauerhafte Sitzungen haben eine Standardablauffrist von 1 Stunde, die beginnt, wenn der Nachrichtenbroker erkennt, dass der Core getrennt wird. Weitere Informationen finden Sie unter Persistente MQTT-Sitzungen im AWS IoT -Entwicklerhandbuch.

AWS IoT Greengrass verwendet die Spooler-Systemkomponente (die GGCloudSpooler Lambda-Funktion), um Abonnements zu erstellen, die AWS IoT als Quelle haben. Sie können die folgende GGCloudSpooler-Umgebungsvariable verwenden, um persistente Sitzungen zu konfigurieren.

  • GG_CONFIG_SUBSCRIPTION_QUALITY. Die Qualität der Abonnements, die AWS IoT als Quelle haben. Die folgenden Werte sind gültig:

    • AtMostOnce (default). Deaktiviert persistente Sitzungen. Abonnements verwenden QoS 0.

    • AtLeastOncePersistent. Aktiviert persistente Sitzungen. Legt das cleanSession-Flag in CONNECT-Nachrichten auf 0 fest und abonniert mit QoS 1.

      Nachrichten, die mit QoS 1 veröffentlicht wurden, die der Core erhält, erreichen garantiert die In-Memory-Arbeitswarteschlange des Greengrass-Daemons. Der Core bestätigt die Nachricht, nachdem sie zur Warteschlange hinzugefügt wurde. Die nachfolgende Kommunikation von der Warteschlange zum lokalen Ziel (z. B. Greengrass-Lambda-Funktion, Konnektor oder Gerät) wird als QoS 0 gesendet. garantiert AWS IoT Greengrass keine Übermittlung an lokale Ziele.

      Anmerkung

      Sie können die Count-maxWorkItemKonfigurationseigenschaft verwenden, um die Größe der Arbeitselementwarteschlange zu steuern. Beispielsweise können Sie die Warteschlangengröße erhöhen, wenn Ihre Arbeitslast einen hohen MQTT-Datenverkehr erfordert.

      Wenn persistente Sitzungen aktiviert sind, öffnet der Core mindestens eine zusätzliche Verbindung für den MQTT-Nachrichtenaustausch mit AWS IoT. Weitere Informationen finden Sie unter Client-IDs für MQTT-Verbindungen mit AWS IoT.

So konfigurieren Sie persistente MQTT-Sitzungen

Sie können AWS IoT Greengrass so konfigurieren, dass persistente Sitzungen mit AWS IoT Core verwendet werden. Dazu stellen Sie eine Funktionsdefinitionsversion bereit, in der die GGCloudSpooler-Funktion die Abonnementqualität auf AtLeastOncePersistent festlegt. Diese Einstellung gilt für alle Ihre Abonnements, die AWS IoT Core (cloud) als Quelle haben. Sie müssen die AWS IoT Greengrass-API verwenden, um persistente Sitzungen zu konfigurieren. Sie können dies von der Konsole aus erledigen.

Im folgenden Verfahren wird der create-function-definition-version CLI-Befehl verwendet, um den Spooler für die Verwendung persistenter Sitzungen zu konfigurieren. In diesem Verfahren wird davon ausgegangen, dass Sie die Konfiguration auf die neueste Gruppenversion einer vorhandenen Gruppe aktualisieren.

  1. Rufen Sie die IDs der Greengrass-Zielgruppen und die Gruppenversion ab. Bei diesem Verfahren wird davon ausgegangen, dass es sich um die neueste Gruppe und Gruppenversion handelt. Die folgende Abfrage gibt die zuletzt erstellte Gruppe zurück.

    aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"

    Sie können auch nach Namen abfragen. Gruppennamen müssen nicht eindeutig sein, sodass mehrere Gruppen zurückgegeben werden können.

    aws greengrass list-groups --query "Groups[?Name=='MyGroup']"
    Anmerkung

    Sie finden diese Werte auch in der -AWS IoTKonsole. Die Gruppen-ID wird auf der Seite Einstellungen der Gruppe angezeigt. Gruppenversions-IDs werden auf der Registerkarte Bereitstellungen der Gruppe angezeigt.

  2. Kopieren Sie die LatestVersionWerte und Id aus der Zielgruppe in die Ausgabe.

  3. Rufen Sie die neueste Gruppenversion ab.

    • Ersetzen Sie group-id durch die kopierte Id.

    • Ersetzen Sie latest-group-version-id durch den LatestVersion, den Sie kopiert haben.

    aws greengrass get-group-version \ --group-id group-id \ --group-version-id latest-group-version-id
  4. Kopieren Sie aus dem Objekt Definition in der Ausgabe den CoreDefinitionVersionArn und die ARNs aller anderen Gruppenkomponenten außer FunctionDefinitionVersionArn. Diese Werte verwenden Sie, wenn Sie eine neue Gruppenversion erstellen.

  5. Kopieren Sie die ID der Funktionsdefinition aus FunctionDefinitionVersionArn. Die ID ist die GUID, die dem functions-Segment im ARN folgt, wie im folgenden Beispiel gezeigt.

    arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/bcfc6b49-beb0-4396-b703-6dEXAMPLEcu5/versions/0f7337b4-922b-45c5-856f-1aEXAMPLEsf6
    Anmerkung

    Sie können auch eine Funktionsdefinition erstellen, indem Sie den create-function-definition Befehl ausführen und dann die ID aus der Ausgabe kopieren.

  6. Fügen Sie der Funktionsdefinition eine Funktionsdefinitionsversion hinzu.

    • Ersetzen Sie durch function-definition-id die Id, die Sie für die Funktionsdefinition kopiert haben.

    • Ersetzen Sie arbitrary-function-id durch einen Namen für die Funktion, z. B. spooler-function.

    • Fügen Sie dem functionsArray alle Lambda-Funktionen hinzu, die Sie in diese Version aufnehmen möchten. Sie können den get-function-definition-version Befehl verwenden, um die Greengrass-Lambda-Funktionen aus einer vorhandenen Funktionsdefinitionsversion abzurufen.

    aws greengrass create-function-definition-version \ --function-definition-id function-definition-id \ --functions '[{"FunctionArn": "arn:aws:lambda:::function:GGCloudSpooler:1","FunctionConfiguration": {"Environment": {"Variables":{"GG_CONFIG_SUBSCRIPTION_QUALITY":"AtLeastOncePersistent"}},"Executable": "spooler","MemorySize": 32768,"Pinned": true,"Timeout": 3},"Id": "arbitrary-function-id"}]'
    Anmerkung

    Wenn Sie zuvor die Umgebungsvariablen GG_CONFIG_STORAGE_TYPE oder GG_CONFIG_MAX_SIZE_BYTES zum Definieren von Speichereinstellungen festlegen, schließen Sie sie in diese Funktions-Instance ein.

  7. Kopieren Sie den Arn der Funktionsdefinitionsversion aus der Ausgabe.

  8. Erstellen Sie eine Gruppenversion, die die System-Lambda-Funktion enthält.

    • Ersetzen Sie group-id durch die Id für die Gruppe.

    • Ersetzen Sie durch core-definition-version-arn die CoreDefinitionVersionArn, die Sie aus der neuesten Gruppenversion kopiert haben.

    • Ersetzen Sie durch function-definition-version-arn die Arn, die Sie für die neue Version der Funktionsdefinition kopiert haben.

    • Ersetzen Sie die ARNs für andere Gruppenkomponenten (zum Beispiel SubscriptionDefinitionVersionArn oder DeviceDefinitionVersionArn), die Sie aus der neuesten Gruppe kopiert haben.

    • Entfernen Sie alle nicht verwendeten Parameter. Entfernen Sie zum Beispiel --resource-definition-version-arn, wenn Ihre Gruppenversion keine Ressourcen enthält.

    aws greengrass create-group-version \ --group-id group-id \ --core-definition-version-arn core-definition-version-arn \ --function-definition-version-arn function-definition-version-arn \ --device-definition-version-arn device-definition-version-arn \ --logger-definition-version-arn logger-definition-version-arn \ --resource-definition-version-arn resource-definition-version-arn \ --subscription-definition-version-arn subscription-definition-version-arn
  9. Kopieren Sie die Version aus der Ausgabe. Dies ist die ID der neuen Gruppenversion.

  10. Stellen Sie die Gruppe mit der neuen Gruppenversion bereit.

    • Ersetzen Sie group-id durch die kopierte Id für die Gruppe.

    • Ersetzen Sie durch group-version-id die Version, die Sie für die neue Gruppenversion kopiert haben.

    aws greengrass create-deployment \ --group-id group-id \ --group-version-id group-version-id \ --deployment-type NewDeployment
  11. (Optional) Erhöhen Sie die maxWorkItemCount-Eigenschaft in der Core-Konfigurationsdatei. Dies kann dem Core helfen, erhöhten MQTT-Datenverkehr und die Kommunikation mit lokalen Zielen zu bewältigen.

Zum Aktualisieren des Cores mit diesen Konfigurationsänderungen verwenden Sie die AWS IoT Greengrass-API, um eine neue Funktionsdefinitionsversion zu erstellen, die die GGCloudSpooler-Funktion mit der aktualisierten Konfiguration enthält. Fügen Sie anschließend die Funktionsdefinitionsversion einer neuen Gruppenversion (zusammen mit Ihren anderen Gruppenkomponenten) hinzu und stellen Sie die Gruppenversion bereit. Wenn Sie die Standardkonfiguration wiederherstellen möchten, können Sie eine Funktionsdefinitionsversion erstellen, in der die GGCloudSpooler-Funktion nicht enthalten ist.

Diese System-Lambda-Funktion ist in der Konsole nicht sichtbar. Nachdem die Funktion der neuesten Gruppenversion hinzugefügt wurde, ist sie allerdings in Bereitstellungen enthalten, die Sie von der Konsole aus erstellen, es sei denn, Sie ersetzen oder verschieben sie mit der API.

Client-IDs für MQTT-Verbindungen mit AWS IoT

Diese Funktion ist für AWS IoT Greengrass Core v1.8 und höher verfügbar.

Der Greengrass-Core öffnet MQTT-Verbindungen mit AWS IoT Core für Operationen, wie etwa die Schattensynchronisierung und die Zertifikatsverwaltung. Für diese Verbindungen generiert der Core vorhersagbare Client-IDs auf Grundlage des Core-Namens. Vorhersehbare Client-IDs können mit Überwachungs-, Überwachungs- und Preisfunktionen verwendet werden, einschließlich AWS IoT Device Defender und AWS IoT Lebenszyklusereignissen. Sie können auch eine Logik im Zusammenhang mit vorhersagbaren Client-IDs erstellen (Beispiel: Aborichtlinien-Vorlagen auf Grundlage von Zertifikatsattributen).

GGC v1.9 and later

Zwei Greengrass-Systemkomponenten öffnen MQTT-Verbindungen mit AWS IoT Core. Diese Komponenten verwenden die folgenden Muster, um die Client-IDs für die Verbindungen zu generieren.

Operation Client-ID Muster
Bereitstellungen

core-thing-name

Beispiel: MyCoreThing

Verwenden Sie diese Client-ID für Benachrichtigungen bei folgenden Lebenszyklusereignissen: Verbinden, Verbindung trennen, Abonnieren und Abonnement kündigen.

Subscriptions (Abonnements)

core-thing-name-cn

Beispiel: MyCoreThing-c01

n ist eine Ganzzahl, die bei 00 beginnt und bei jeder neuen Verbindung auf eine maximale Anzahl von 250 erhöht wird. Die Anzahl der Verbindungen wird durch die Anzahl der Geräte bestimmt, die ihren Schattenstatus mit synchronisieren AWS IoT Core (maximal 2 500 pro Gruppe) und die Anzahl der Abonnements mit cloud als Quelle in der Gruppe (maximal 10 000 pro Gruppe).

Die Spooler-Systemkomponente stellt eine Verbindung mit herAWS IoT Core, um Nachrichten gegen Abonnements mit einer Cloud-Quelle oder einem Ziel auszutauschen. Der Spooler fungiert außerdem als Proxy für den lokalen Nachrichtenaustausch zwischen AWS IoT Core und dem lokalen Schattenservice und dem Device Certificate Manager.

Verwenden Sie die folgende Formel, um die Anzahl der MQTT-Verbindungen pro Gruppe zu berechnen:

number of MQTT connections per group = number of connections for Deployment Agent + number of connections for Subscriptions

Wobei gilt,

  • Anzahl der Verbindungen für Deployment Agent = 1.

  • Anzahl der Verbindungen für Abonnements = (2 subscriptions for supporting certificate generation + number of MQTT topics in AWS IoT Core + number of device shadows synced) / 50.

    • Wobei 50 = die maximale Anzahl von Abonnements pro Verbindung ist, die unterstützen AWS IoT Core kann.

Anmerkung

Wenn Sie persistente Sitzungen für das Abonnement mit AWS IoT Core aktivieren, öffnet der Core mindestens eine zusätzliche Verbindung, die in einer persistenten Sitzung verwendet werden kann. Die Systemkomponenten unterstützen keine persistenten Sitzungen, sodass sie diese Verbindung nicht gemeinsam nutzen können.

Um die Anzahl der MQTT-Verbindungen zu reduzieren und die Kosten zu senken, können Sie lokale Lambda-Funktionen verwenden, um Daten am Edge zu aggregieren. Anschließend senden Sie die aggregierten Daten an AWS Cloud. Daher verwenden Sie weniger MQTT-Themen in AWS IoT Core. Weitere Informationen finden Sie unter AWS IoT Greengrass-Preisgestaltung.

GGC v1.8

Mehrere Greengrass-Systemkomponenten öffnen MQTT-Verbindungen mit AWS IoT Core. Diese Komponenten verwenden die folgenden Muster, um die Client-IDs für die Verbindungen zu generieren.

Operation Client-ID Muster
Bereitstellungen

core-thing-name

Beispiel: MyCoreThing

Verwenden Sie diese Client-ID für Benachrichtigungen bei folgenden Lebenszyklusereignissen: Verbinden, Verbindung trennen, Abonnieren und Abonnement kündigen.

MQTT-Nachrichtenaustausch mit AWS IoT Core

core-thing-name-spr

Beispiel: MyCoreThing-spr

Schattensynchronisierung

core-thing-name-snn

Beispiel: MyCoreThing-s01

nn ist eine Ganzzahl, die bei 00 beginnt und mit jeder neuen Verbindung auf höchstens 03 ansteigt. Die Anzahl der Verbindungen wird durch die Anzahl der Geräte (maximal 200 Geräte pro Gruppe) bestimmt, die ihren Schattenstatus mit AWS IoT Core (maximal 50 Abonnements pro Verbindung) synchronisieren.

Gerätezertifikatsverwaltung

core-thing-name-dcm

Beispiel: MyCoreThing-dcm

Anmerkung

Doppelte Client-IDs in gleichzeitigen Verbindungen können zu einer unendlichen Verbinden-Trennen-Schleife führen. Dies kann der Fall sein, wenn für ein anderes Gerät festgelegt ist, dass der Core-Gerätename als Client-ID in Verbindungen verwendet wird. Weitere Informationen finden Sie im Fehlerbehandlungsschritt.

Greengrass-Geräte sind zudem vollständig in den Flotten-Indizierungsdienst von AWS IoT Device Management integriert. Auf diese Weise können Sie Geräte in der Cloud auf der Grundlage von Geräteattributen, Schattenzustand und Verbindungsstatus indizieren und suchen. Greengrass-Geräte stellen beispielsweise mindestens eine Verbindung her, bei der der Objektname als Client-ID verwendet wird, damit Sie mithilfe der Gerätekonnektivitätsindizierung ermitteln können, welche Greengrass-Geräte derzeit mit AWS IoT Core verbunden oder davon getrennt sind. Weitere Informationen finden Sie unter Flottenindizierungsservice im AWS IoT Entwicklerhandbuch für .

Konfigurieren des MQTT-Ports für lokales Messaging

Für diese Funktion ist AWS IoT Greengrass Core v1.10 oder höher erforderlich.

Der Greengrass-Kern fungiert als lokaler Message Broker für MQTT-Messaging zwischen lokalen Lambda-Funktionen, Konnektoren und Client-Geräten. Standardmäßig verwendet der Core Port 8883 für MQTT-Datenverkehr im lokalen Netzwerk. Möglicherweise möchten Sie den Port ändern, um Konflikte mit anderer Software zu vermeiden, die auf Port 8883 ausgeführt wird.

So konfigurieren Sie die Portnummer, die der Core für den lokalen MQTT-Datenverkehr verwendet
  1. Führen Sie den folgenden Befehl aus, um den Greengrass-Daemon zu stoppen:

    cd /greengrass-root/ggc/core/ sudo ./greengrassd stop
  2. Öffnen Sie greengrass-root/config/config.json zur Bearbeitung als su-Benutzer.

  3. Fügen Sie im coreThing-Objekt die ggMqttPort-Eigenschaft hinzu und legen Sie den Wert auf die Portnummer fest, die Sie verwenden möchten. Gültige Werte sind 1024 bis 65535. Im folgenden Beispiel wird die Portnummer auf 9000 festgelegt.

    { "coreThing" : { "caPath" : "root.ca.pem", "certPath" : "12345abcde.cert.pem", "keyPath" : "12345abcde.private.key", "thingArn" : "arn:aws:iot:us-west-2:123456789012:thing/core-thing-name", "iotHost" : "abcd123456wxyz-ats.iot.us-west-2.amazonaws.com", "ggHost" : "greengrass-ats.iot.us-west-2.amazonaws.com", "ggMqttPort" : 9000, "keepAlive" : 600 }, ... }
  4. Starten Sie den -Daemon.

    cd /greengrass-root/ggc/core/ sudo ./greengrassd start
  5. Wenn die automatische IP-Erkennung für den Core aktiviert ist, ist die Konfiguration abgeschlossen.

    Wenn die automatische IP-Erkennung nicht aktiviert ist, müssen Sie die Konnektivitätsinformationen für den Core aktualisieren. Auf diese Weise können Client-Geräte bei Erkennungsvorgängen die richtige Portnummer erhalten, um Kernkonnektivitätsinformationen zu erhalten. Sie können die AWS IoT Konsole oder AWS IoT Greengrass API verwenden, um die Kernkonnektivitätsinformationen zu aktualisieren. Für dieses Verfahren aktualisieren Sie nur die Portnummer. Die lokale IP-Adresse für den Core bleibt unverändert.

    So aktualisieren Sie die Konnektivitätsinformationen für den Core (Konsole)
    1. Wählen Sie auf der Seite Gruppenkonfiguration den Greengrass-Kern aus.

    2. Wählen Sie auf der Seite mit den Kerndetails die Registerkarte MQTT-Broker-Endpunkte aus.

    3. Wählen Sie Endpunkte verwalten und dann Endpunkt hinzufügen

    4. Geben Sie Ihre aktuelle lokale IP-Adresse und die neue Portnummer ein. Im folgenden Beispiel wird die Portnummer 9000 für die IP-Adresse 192.168.1.8 festgelegt.

    5. Entfernen Sie den veralteten Endpunkt und wählen Sie dann Aktualisieren aus.

    So aktualisieren Sie die Konnektivitätsinformationen für den Core (API)
    • Verwenden Sie die Aktion „UpdateConnectivityInfo“. Im folgenden Beispiel wird update-connectivity-info in der AWS CLI verwendet, um die Portnummer 9000 für die IP-Adresse 192.168.1.8 festzulegen.

      aws greengrass update-connectivity-info \ --thing-name "MyGroup_Core" \ --connectivity-info "[{\"Metadata\":\"\",\"PortNumber\":9000,\"HostAddress\":\"192.168.1.8\",\"Id\":\"localIP_192.168.1.8\"},{\"Metadata\":\"\",\"PortNumber\":8883,\"HostAddress\":\"127.0.0.1\",\"Id\":\"localhost_127.0.0.1_0\"}]"
    Anmerkung

    Sie können auch den Port konfigurieren, den der Core für das MQTT-Messaging mit AWS IoT Core verwendet. Weitere Informationen finden Sie unter Verbindungsherstellung auf Port 443 oder über einen Netzwerk-Proxy.

Timeout für Veröffentlichungs-, Abonnement- und Abmeldevorgänge in MQTT-Verbindungen mit der AWS Cloud

Diese Funktion ist in AWS IoT Greengrass Version 1.10.2 oder höher verfügbar.

Sie können die Zeit (in Sekunden) so konfigurieren, dass der Greengrass-Core eine Veröffentlichungs-, Abonnement- oder Abmeldeoperation in MQTT-Verbindungen mit AWS IoT Core abschließen kann. Sie können diese Einstellung anpassen, wenn die Operationen aufgrund von Bandbreitenbeschränkungen oder hoher Latenz zu einer Zeitüberschreitung führen. Um diese Einstellung in der Datei config.json zu konfigurieren, fügen Sie die mqttOperationTimeout-Eigenschaft im coreThing-Objekt hinzu, oder ändern Sie sie. Beispielsweise:

{ "coreThing": { "mqttOperationTimeout": 10, "caPath": "root-ca.pem", "certPath": "hash.cert.pem", "keyPath": "hash.private.key", ... }, ... }

Das Standard-Timeout beträgt 5 Sekunden. Der minimale Timeout beträgt 5 Sekunden.

Aktivieren der automatischen IP-Erkennung

Sie können so konfigurierenAWS IoT Greengrass, dass Client-Geräte in einer Greengrass-Gruppe den Greengrass-Kern automatisch erkennen können. Wenn diese Option aktiviert ist, sucht der Core nach Änderungen an seinen IP-Adressen. Wenn sich eine Adresse ändert, veröffentlicht der Core eine aktualisierte Liste von Adressen. Diese Adressen werden Client-Geräten zur Verfügung gestellt, die sich in derselben Greengrass-Gruppe wie der -Kern befinden.

Anmerkung

Die AWS IoT Richtlinie für Client-Geräte muss die -greengrass:DiscoverBerechtigung erteilen, damit Geräte Konnektivitätsinformationen für den Kern abrufen können. Weitere Informationen zur Richtlinienanweisung finden Sie unter Berechtigung zum Discovery.

Um dieses Feature über die AWS IoT Greengrass Konsole zu aktivieren, wählen Sie Automatische Erkennung, wenn Sie Ihre Greengrass-Gruppe zum ersten Mal bereitstellen. Sie können diese Funktion auch auf der Seite Gruppenkonfiguration aktivieren oder deaktivieren, indem Sie die Registerkarte Lambda-Funktionen und den IP-Detektor auswählen. Die automatische IP-Erkennung ist aktiviert, wenn MQTT-Broker-Endpunkte automatisch erkennen und überschreiben ausgewählt ist.

Um die automatische Erkennung mit der AWS IoT Greengrass API zu verwalten, müssen Sie die IPDetector System-Lambda-Funktion konfigurieren. Das folgende Verfahren zeigt, wie Sie den create-function-definition-version CLI-Befehl verwenden, um die automatische Erkennung des Greengrass-Kerns zu konfigurieren.

  1. Rufen Sie die IDs der Greengrass-Zielgruppen und die Gruppenversion ab. Bei diesem Verfahren wird davon ausgegangen, dass es sich um die neueste Gruppe und Gruppenversion handelt. Die folgende Abfrage gibt die zuletzt erstellte Gruppe zurück.

    aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"

    Sie können auch nach Namen abfragen. Gruppennamen müssen nicht eindeutig sein, sodass mehrere Gruppen zurückgegeben werden können.

    aws greengrass list-groups --query "Groups[?Name=='MyGroup']"
    Anmerkung

    Sie finden diese Werte auch in der -AWS IoTKonsole. Die Gruppen-ID wird auf der Seite Einstellungen der Gruppe angezeigt. Gruppenversions-IDs werden auf der Registerkarte Bereitstellungen der Gruppe angezeigt.

  2. Kopieren Sie die LatestVersionWerte und Id aus der Zielgruppe in die Ausgabe.

  3. Rufen Sie die neueste Gruppenversion ab.

    • Ersetzen Sie group-id durch die kopierte Id.

    • Ersetzen Sie latest-group-version-id durch den LatestVersion, den Sie kopiert haben.

    aws greengrass get-group-version \ --group-id group-id \ --group-version-id latest-group-version-id
  4. Kopieren Sie aus dem Objekt Definition in der Ausgabe den CoreDefinitionVersionArn und die ARNs aller anderen Gruppenkomponenten außer FunctionDefinitionVersionArn. Diese Werte verwenden Sie, wenn Sie eine neue Gruppenversion erstellen.

  5. Kopieren Sie die ID der Funktionsdefinition sowie die Funktionsdefinitionsversion aus FunctionDefinitionVersionArn in der Ausgabe:

    arn:aws:greengrass:region:account-id:/greengrass/groups/function-definition-id/versions/function-definition-version-id
    Anmerkung

    Sie können optional eine Funktionsdefinition mit dem create-function-definition-Befehl erstellen, und anschließend die ID aus der Ausgabe kopieren.

  6. Verwenden Sie den Befehl get-function-definition-version zum Abrufen des aktuellen Definitionsstatus. Verwenden Sie die , die function-definition-id Sie für die Funktionsdefinition kopiert haben. Zum Beispiel: 4d941bc7-92a1-4f45-8d64-EXAMPLEf76c3.

    aws greengrass get-function-definition-version --function-definition-id function-definition-id --function-definition-version-id function-definition-version-id

    Notieren Sie sich die aufgeführten Funktionskonfigurationen. Beim Erstellen einer neuen Funktionsdefinitionsversion müssen Sie diese angeben, um zu verhindern, dass Ihre aktuellen Definitionseinstellungen verloren gehen.

  7. Fügen Sie der Funktionsdefinition eine Funktionsdefinitionsversion hinzu.

    • Ersetzen Sie durch function-definition-id die Id, die Sie für die Funktionsdefinition kopiert haben. Zum Beispiel: 4d941bc7-92a1-4f45-8d64-EXAMPLEf76c3.

    • Ersetzen Sie arbitrary-function-id durch einen Namen für die Funktion, z. B. auto-detection-function.

    • Fügen Sie dem functionsArray alle Lambda-Funktionen hinzu, die Sie in diese Version aufnehmen möchten, z. B. alle im vorherigen Schritt aufgeführten Funktionen.

    aws greengrass create-function-definition-version \ --function-definition-id function-definition-id \ --functions '[{"FunctionArn":"arn:aws:lambda:::function:GGIPDetector:1","Id":"arbitrary-function-id","FunctionConfiguration":{"Pinned":true,"MemorySize":32768,"Timeout":3}}]'\ --region us-west-2
  8. Kopieren Sie den Arn der Funktionsdefinitionsversion aus der Ausgabe.

  9. Erstellen Sie eine Gruppenversion, die die System-Lambda-Funktion enthält.

    • Ersetzen Sie group-id durch die Id für die Gruppe.

    • Ersetzen Sie durch core-definition-version-arn die CoreDefinitionVersionArn, die Sie aus der neuesten Gruppenversion kopiert haben.

    • Ersetzen Sie durch function-definition-version-arn die Arn, die Sie für die neue Version der Funktionsdefinition kopiert haben.

    • Ersetzen Sie die ARNs für andere Gruppenkomponenten (zum Beispiel SubscriptionDefinitionVersionArn oder DeviceDefinitionVersionArn), die Sie aus der neuesten Gruppe kopiert haben.

    • Entfernen Sie alle nicht verwendeten Parameter. Entfernen Sie zum Beispiel --resource-definition-version-arn, wenn Ihre Gruppenversion keine Ressourcen enthält.

    aws greengrass create-group-version \ --group-id group-id \ --core-definition-version-arn core-definition-version-arn \ --function-definition-version-arn function-definition-version-arn \ --device-definition-version-arn device-definition-version-arn \ --logger-definition-version-arn logger-definition-version-arn \ --resource-definition-version-arn resource-definition-version-arn \ --subscription-definition-version-arn subscription-definition-version-arn
  10. Kopieren Sie die Version aus der Ausgabe. Dies ist die ID der neuen Gruppenversion.

  11. Stellen Sie die Gruppe mit der neuen Gruppenversion bereit.

    • Ersetzen Sie group-id durch die kopierte Id für die Gruppe.

    • Ersetzen Sie durch group-version-id die Version, die Sie für die neue Gruppenversion kopiert haben.

    aws greengrass create-deployment \ --group-id group-id \ --group-version-id group-version-id \ --deployment-type NewDeployment

Wenn Sie die IP-Adresse Ihres Greengrass-Cores manuell eingeben möchten, können Sie dieses Tutorial mit einer anderen Funktionsdefinition abschließen, die die IPDetector-Funktion nicht enthält. Dadurch wird verhindert, dass die Erkennungsfunktion Ihre Greengrass-Core-IP-Adresse findet und automatisch eingibt.

Diese System-Lambda-Funktion ist in der Lambda-Konsole nicht sichtbar. Nachdem die Funktion der neuesten Gruppenversion hinzugefügt wurde, ist sie in Bereitstellungen enthalten, die Sie von der Konsole aus erstellen (es sei denn, Sie ersetzen oder verschieben sie mit der API).

Konfigurieren das Init-Systems zum Starten des Greengrass-Daemons

Es ist ein bewährtes Verfahren, Ihr Init-System so einzurichten, dass der Greengrass-Daemon beim Startvorgang ausgeführt wird, insbesondere bei der Verwaltung großer Geräteflotten.

Anmerkung

Wenn Sie die AWS IoT Greengrass Core-Software mit apt installiert haben, können Sie die systemd-Skripte verwenden, um „Start beim Booten“ zu aktivieren. Weitere Informationen finden Sie unter Verwenden von systemd-Skripts zum Verwalten des Greengrass Daemon-Lebenszyklus.

Es gibt verschiedene Arten von Init-Systemen, z. B. initd, systemd und SystemV, und sie verwenden ähnliche Konfigurationsparameter. Das folgende Beispiel ist eine Servicedatei für systemd. Der Type-Parameter wird auf forking festgelegt, da greengrassd (das zum Starten von Greengrass verwendet wird) den Greengrass-Daemon-Prozess verzweigt und der Restart-Parameter auf on-failure festgelegt wird, um systemd so zu steuern, dass Greengrass neu gestartet wird, wenn Greengrass einen fehlerhaften Zustand aufweist.

Anmerkung

Führen Sie das check_ggc_dependencies-Skript wie in Modul 1 beschrieben aus, um festzustellen, ob Ihr Gerät systemd verwendet. Zur Verwendung von systemd stellen Sie anschließend sicher, dass der useSystemd-Parameter in config.json auf yes festgelegt ist.

[Unit] Description=Greengrass Daemon [Service] Type=forking PIDFile=/var/run/greengrassd.pid Restart=on-failure ExecStart=/greengrass/ggc/core/greengrassd start ExecReload=/greengrass/ggc/core/greengrassd restart ExecStop=/greengrass/ggc/core/greengrassd stop [Install] WantedBy=multi-user.target

Weitere Informationen finden Sie auch unter