Configuration de AWS IoT Greengrass Core - AWS IoT Greengrass

AWS IoT Greengrass Version 1 est entré dans la phase de durée de vie prolongée le 30 juin 2023. Pour plus d'informations, consultez la politique de AWS IoT Greengrass V1 maintenance. Après cette date, AWS IoT Greengrass V1 ne publiera pas de mises à jour fournissant des fonctionnalités, des améliorations, des corrections de bogues ou des correctifs de sécurité. Les appareils qui fonctionnent AWS IoT Greengrass V1 sous tension ne seront pas perturbés et continueront à fonctionner et à se connecter au cloud. Nous vous recommandons vivement de migrer vers AWS IoT Greengrass Version 2, qui ajoute de nouvelles fonctionnalités importantes et prend en charge des plateformes supplémentaires.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration de AWS IoT Greengrass Core

Un AWS IoT Greengrass cœur est un AWS IoT objet (appareil) qui agit comme un hub ou une passerelle dans les environnements périphériques. Comme les autres appareils AWS IoT, un noyau existe dans le registre, possède un shadow d'appareil et utilise un certificat d'appareil pour s'authentifier auprès d'AWS IoT Core et de AWS IoT Greengrass. L'appareil principal exécute le logiciel AWS IoT Greengrass Core, ce qui lui permet de gérer les processus locaux pour les groupes Greengrass, tels que la communication, la synchronisation de shadows et l'échange de jetons.

Le logiciel AWS IoT Greengrass Core fournit les fonctionnalités suivantes :

  • Déploiement et exécution locale de connecteurs et de fonctions Lambda.

  • Traitez les flux de données localement avec des exportations automatiques vers leAWS Cloud.

  • Messagerie MQTT sur le réseau local entre les appareils, les connecteurs et les fonctions Lambda à l'aide d'abonnements gérés.

  • Messagerie MQTT entre appareils, connecteurs AWS IoT et fonctions Lambda à l'aide d'abonnements gérés.

  • Connexions sécurisées entre les appareils et AWS Cloud utilisation de l'authentification et de l'autorisation des appareils.

  • Synchronisation cachée locale des appareils. Les ombres peuvent être configurées pour être synchronisées avecAWS Cloud.

  • Accès contrôlé à l'appareil local et aux ressources de volume.

  • Déploiement de modèles d'apprentissage automatique formés dans le cloud pour exécution de l'inférence locale.

  • Détection automatique d'adresse IP qui permet aux appareils de détecter votre appareil Greengrass principal.

  • Déploiement central de nouvelles configurations de groupe ou mises à jour. Une fois les données de configuration téléchargée, l'appareil principal redémarre automatiquement.

  • Mises à jour logicielles sécurisées over-the-air (OTA) des fonctions Lambda définies par l'utilisateur.

  • Stockage sécurisé et crypté des secrets locaux et accès contrôlé par des connecteurs et des fonctions Lambda.

Fichier de configuration de AWS IoT Greengrass Core

Le fichier de configuration du logiciel AWS IoT Greengrass Core est config.json. Il est placé dans le répertoire /greengrass-root/config.

Note

greengrass-root indique le chemin d'installation du logiciel AWS IoT Greengrass Core sur votre appareil. Généralement, il s'agit du répertoire /greengrass.

Si vous utilisez l'option de création de groupe par défaut depuis la AWS IoT Greengrass console, le config.json fichier est déployé sur le périphérique principal dans un état de fonctionnement.

Vous pouvez vérifier le contenu de ce fichier en exécutant la commande suivante :

cat /greengrass-root/config/config.json

Voici un exemple de fichier config.json. Il s'agit de la version générée lorsque vous créez le noyau depuis la AWS IoT Greengrass console.

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" }

Le fichier config.json prend en charge les propriétés suivantes :

coreThing

Champ Description Remarques
caPath

Chemin d'accès au certificat d'authentification racine AWS IoT relatif au répertoire /greengrass-root/certs.

Pour une compatibilité descendante avec les versions antérieures à la version 1.7.0. Cette propriété est ignorée lorsque l'cryptoobjet est présent.

certPath

Chemin d'accès au certificat de l'appareil principal relatif au répertoire /greengrass-root/certs.

Pour une compatibilité descendante avec les versions antérieures à la version 1.7.0. Cette propriété est ignorée lorsque l'cryptoobjet est présent.
keyPath Chemin d'accès à la clé privée principale relatif au répertoire /greengrass-root/certs. Pour une compatibilité descendante avec les versions antérieures à la version 1.7.0. Cette propriété est ignorée lorsque l'cryptoobjet est présent.
thingArn Le nom de ressource Amazon (ARN) de l'AWS IoTobjet qui représente le périphérique AWS IoT Greengrass principal. Trouvez l'ARN de votre cœur dans la AWS IoT Greengrass console, sous Cores, ou en exécutant la commande aws greengrass get-core-definition-versionCLI.
iotHost Votre point de terminaison AWS IoT.

Recherchez le point de terminaison dans la AWS IoT console sous Paramètres ou en exécutant la commande aws iot describe-endpoint --endpoint-type iot:Data-ATSCLI.

Cette commande renvoie le point de terminaison ATS (Amazon Trust Services). Pour de plus amples informations, veuillez consulter la documentation Authentification du serveur.

ggHost Votre point de terminaison AWS IoT Greengrass.

Il s'agit de votre point de terminaison iotHost avec le préfixe de l'hôte remplacé par greengrass (par exemple, greengrass-ats.iot.region.amazonaws.com). Utilisez le même Région AWS queiotHost.

iotMqttPort Facultatif. Numéro de port à utiliser pour la communication MQTT avec AWS IoT. Les valeurs valides sont 8883 ou 443. La valeur par défaut est 8883. Pour plus d’informations, consultez Connexion au port 443 ou via un proxy réseau.
iotHttpPort Facultatif. Numéro de port utilisé pour créer des connexions HTTPS vers AWS IoT. Les valeurs valides sont 8443 ou 443. La valeur par défaut est 8443. Pour plus d’informations, consultez Connexion au port 443 ou via un proxy réseau.
ggMqttPort Facultatif. Numéro de port à utiliser pour la communication MQTT sur le réseau local. Les valeurs valides vont de 1024 à 65535. La valeur par défaut est 8883. Pour plus d’informations, consultez Configuration du port MQTT pour la messagerie locale.
ggHttpPort Facultatif. Numéro de port utilisé pour créer des connexions HTTPS vers le service AWS IoT Greengrass. Les valeurs valides sont 8443 ou 443. La valeur par défaut est 8443. Pour plus d’informations, consultez Connexion au port 443 ou via un proxy réseau.
keepAlive Facultatif. Période KeepAlive MQTT, en secondes La plage valide est comprise entre 30 et 1 200 secondes. La valeur par défaut est 600.
networkProxy Facultatif. Objet qui définit une serveur proxy auquel vous connecter. Le serveur proxy peut être HTTP ou HTTPS. Pour plus d’informations, consultez Connexion au port 443 ou via un proxy réseau.
mqttOperationTimeout Facultatif. Durée (en secondes) permettant au noyau Greengrass de terminer une opération de publication, d'abonnement ou de désabonnement dans des connexions MQTT vers AWS IoT Core. La valeur par défaut est 5. La valeur minimale est 5.
ggDaemonPort Facultatif. Le numéro de port IPC principal de Greengrass.

Cette propriété est disponible dans la AWS IoT Greengrass version v1.11.0 ou ultérieure.

Les valeurs valides sont comprises entre 1024 et 65535. La valeur par défaut est 8000.

systemComponentAuthTimeout Facultatif. Durée (en millisecondes) nécessaire pour permettre à l'IPC principal de Greengrass de terminer l'authentification.

Cette propriété est disponible dans la AWS IoT Greengrass version v1.11.0 ou ultérieure.

Les valeurs valides sont comprises entre 500 et 5 000. La valeur par défaut est 5000.

runtime

Champ Description Remarques
maxWorkItemCompter

Facultatif. Nombre maximal d'éléments de travail que le démon Greengrass peut traiter simultanément. Les éléments de travail qui dépassent cette limite sont ignorés.

La file d'attente des éléments de travail est partagée par les composants du système, les fonctions Lambda définies par l'utilisateur et les connecteurs.

La valeur par défaut est 1024. La valeur maximale est limitée par le matériel de votre appareil.

L'augmentation de cette valeur augmente la mémoire utilisée par AWS IoT Greengrass. Vous pouvez augmenter cette valeur si vous pensez que votre noyau va recevoir un trafic de messages MQTT important.

maxConcurrentLimit

Facultatif. Le nombre maximum de travailleurs Lambda non épinglés simultanés que le daemon Greengrass peut avoir. Vous pouvez spécifier un autre entier pour remplacer ce paramètre.

La valeur par défaut est 25. La valeur minimale est définie parlruSize.

Taille du LRU Optional. Defines the minimum value for maxConcurrentLimit. The default value is 25.
mountAllBlockAppareils Optional. Enables AWS IoT Greengrass to use bind mounts to mount all block devices into a container after setting up the OverlayFS.

Cette propriété est disponible dans la AWS IoT Greengrass version v1.11.0 ou ultérieure.

Les valeurs valides sont yes et no. La valeur par défaut est no.

Définissez cette valeur sur yes si votre /usr répertoire ne se trouve pas dans la / hiérarchie.

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
Utiliser le système D Indicates whether your device uses systemd. Valid values are oui or non. Run the check_ggc_dependencies script in Module 1 to see if your device uses systemd.

crypto

Le paramètre crypto contient les propriétés qui prennent en charge le stockage de la clé privée sur un module de sécurité matérielle (HSM) via PKCS #11 et le stockage secret local. Pour plus d’informations, consultez AWS IoT Greengrass principes de sécurité fondamentaux, Intégration de sécurité matérielle et Déployer des secrets sur AWS IoT Greengrass Core. Les configurations pour le stockage des clés privées sur les HSM ou dans le système de fichiers sont prises en charge.

Champ Description Remarques
Trajectorat

Chemin d'accès absolu au certificat d'autorité de certification racine AWS IoT.

Il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

PKCS11
Moteur OpenSSL

Facultatif. Chemin d'accès absolu au fichier de moteur OpenSSL .so pour activer la prise en charge PKCS # 11 sur OpenSSL.

Doit être un chemin d'accès à un fichier sur le système de fichiers.

Cette propriété est requise si vous utilisez l'agent de mise à jour Greengrass OTA avec sécurité matérielle. Pour plus d’informations, consultez Configurer le support pour les over-the-air mises à jour.

Fournisseur P11

Chemin absolu vers la bibliothèque libdl-loadable d'implémentation PKCS # 11.

Doit être un chemin d'accès à un fichier sur le système de fichiers.

Étiquette de machine à sous

Étiquette d'emplacement qui est utilisée pour identifier le module matériel.

Doit se conformer aux spécifications d'étiquette PKCS # 11.

slotUserPin

Le code PIN utilisateur utilisé pour authentifier le noyau de Greengrass auprès du module.

Vous devez disposer d'autorisations suffisantes pour exécuter C_Sign avec les clés privées configurées.

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

Chemin d'accès à la clé privée principale.

Pour le stockage de système de fichiers, il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

Pour le stockage HSM, il doit s'agir du chemin d'accès RFC WF-7512 PKCS # 11 qui spécifie l'objet étiquette.

Certificat IoT .CertificatePath

Chemin d'accès absolu au certificat de votre noyau.

Il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

MQTT ServerCertificate

Facultatif. Clé privée que le noyau utilise en combinaison avec le certificat pour agir en tant que passerelle ou serveur MQTT.

MQTTServerCertificate . privateKeyPath

Chemin d'accès à la clé privée du serveur MQTT local.

Utilisez cette valeur pour spécifier votre propre clé privée pour le serveur MQTT local.

Pour le stockage de système de fichiers, il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

Pour le stockage HSM, il doit s'agir du chemin d'accès RFC WF-7512 PKCS # 11 qui spécifie l'objet étiquette.

Si cette propriété n'est pas spécifiée, AWS IoT Greengrass effectue une rotation de la clé basée sur vos paramètres de rotation. Si cette propriété est spécifiée, le client est responsable de la rotation de la clé.

SecretsManager The private key that secures the data key used for encryption. For more information, see Déployer des secrets sur AWS IoT Greengrass Core.
SecretsManager  .privateKeyPath

Chemin d'accès à la clé privée du Secrets Manager local.

Seule une clé RSA est prise en charge.

Pour le stockage de système de fichiers, il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

Pour le stockage HSM, il doit s'agir du chemin d'accès RFC WF-7512 PKCS # 11 qui spécifie l'objet étiquette. La clé privée doit être générée à l'aide du mécanisme de remplissage PKCS#1 v1.5.

Les propriétés de configuration suivantes sont également prises en charge :

Champ Description Remarques
mqttMaxConnectionRetryInterval

Facultatif. L'intervalle maximal (en secondes) entre les tentatives de connexion MQTT si la connexion est abandonnée.

Spécifiez cette valeur en tant qu'entier non signé. L’argument par défaut est 60.

managedRespawn

Facultatif. Indique que l'agent OTA doit exécuter un code personnalisé avant une mise à jour.

Les valeurs valides sont true ou false. Pour plus d’informations, consultez Mises à jour OTA du logiciel AWS IoT Greengrass Core.

writeDirectory

Facultatif. Le répertoire d'écriture où sont AWS IoT Greengrass créées toutes les ressources de lecture/écriture.

Pour plus d’informations, consultez Configuration d'un répertoire en écriture pour AWS IoT Greengrass.

pidFileDirectory

Facultatif AWS IoT Greengrassenregistre son identifiant de processus (PID) dans ce répertoire.

La valeur par défaut est /var/run.

Extended life versions

Les versions suivantes du logiciel AWS IoT Greengrass Core sont en phase de durée de vie prolongée. Ces informations sont incluses à titre de référence uniquement.

GGC 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" } }

Le fichier config.json prend en charge les propriétés suivantes :

coreThing

Champ Description Remarques
caPath

Chemin d'accès au certificat d'authentification racine AWS IoT relatif au répertoire /greengrass-root/certs.

Pour une compatibilité descendante avec les versions antérieures à la version 1.7.0. Cette propriété est ignorée lorsque l'cryptoobjet est présent.

certPath

Chemin d'accès au certificat de l'appareil principal relatif au répertoire /greengrass-root/certs.

Pour une compatibilité descendante avec les versions antérieures à la version 1.7.0. Cette propriété est ignorée lorsque l'cryptoobjet est présent.
keyPath Chemin d'accès à la clé privée principale relatif au répertoire /greengrass-root/certs. Pour une compatibilité descendante avec les versions antérieures à la version 1.7.0. Cette propriété est ignorée lorsque l'cryptoobjet est présent.
thingArn Le nom de ressource Amazon (ARN) de l'AWS IoTobjet qui représente le périphérique AWS IoT Greengrass principal. Trouvez l'ARN de votre cœur dans la AWS IoT Greengrass console, sous Cores, ou en exécutant la commande aws greengrass get-core-definition-versionCLI.
iotHost Votre point de terminaison AWS IoT.

Recherchez le point de terminaison dans la AWS IoT console sous Paramètres ou en exécutant la commande aws iot describe-endpoint --endpoint-type iot:Data-ATSCLI.

Cette commande renvoie le point de terminaison ATS (Amazon Trust Services). Pour de plus amples informations, veuillez consulter la documentation Authentification du serveur.

ggHost Votre point de terminaison AWS IoT Greengrass.

Il s'agit de votre point de terminaison iotHost avec le préfixe de l'hôte remplacé par greengrass (par exemple, greengrass-ats.iot.region.amazonaws.com). Utilisez le même Région AWS queiotHost.

iotMqttPort Facultatif. Numéro de port à utiliser pour la communication MQTT avec AWS IoT. Les valeurs valides sont 8883 ou 443. La valeur par défaut est 8883. Pour plus d’informations, consultez Connexion au port 443 ou via un proxy réseau.
iotHttpPort Facultatif. Numéro de port utilisé pour créer des connexions HTTPS vers AWS IoT. Les valeurs valides sont 8443 ou 443. La valeur par défaut est 8443. Pour plus d’informations, consultez Connexion au port 443 ou via un proxy réseau.
ggMqttPort Facultatif. Numéro de port à utiliser pour la communication MQTT sur le réseau local. Les valeurs valides vont de 1024 à 65535. La valeur par défaut est 8883. Pour plus d’informations, consultez Configuration du port MQTT pour la messagerie locale.
ggHttpPort Facultatif. Numéro de port utilisé pour créer des connexions HTTPS vers le service AWS IoT Greengrass. Les valeurs valides sont 8443 ou 443. La valeur par défaut est 8443. Pour plus d’informations, consultez Connexion au port 443 ou via un proxy réseau.
keepAlive Facultatif. Période KeepAlive MQTT, en secondes La plage valide est comprise entre 30 et 1 200 secondes. La valeur par défaut est 600.
networkProxy Facultatif. Objet qui définit une serveur proxy auquel vous connecter. Le serveur proxy peut être HTTP ou HTTPS. Pour plus d’informations, consultez Connexion au port 443 ou via un proxy réseau.
mqttOperationTimeout Facultatif. Durée (en secondes) permettant au noyau Greengrass de terminer une opération de publication, d'abonnement ou de désabonnement dans des connexions MQTT vers AWS IoT Core.

Cette propriété est disponible à partir de AWS IoT Greengrass v1.10.2.

La valeur par défaut est 5. La valeur minimale est 5.

runtime

Champ Description Remarques
maxWorkItemCompter

Facultatif. Nombre maximal d'éléments de travail que le démon Greengrass peut traiter simultanément. Les éléments de travail qui dépassent cette limite sont ignorés.

La file d'attente des éléments de travail est partagée par les composants du système, les fonctions Lambda définies par l'utilisateur et les connecteurs.

La valeur par défaut est 1024. La valeur maximale est limitée par le matériel de votre appareil.

L'augmentation de cette valeur augmente la mémoire utilisée par AWS IoT Greengrass. Vous pouvez augmenter cette valeur si vous pensez que votre noyau va recevoir un trafic de messages MQTT important.

maxConcurrentLimit

Facultatif. Le nombre maximum de travailleurs Lambda non épinglés simultanés que le daemon Greengrass peut avoir. Vous pouvez spécifier un autre entier pour remplacer ce paramètre.

La valeur par défaut est 25. La valeur minimale est définie parlruSize.

Taille du LRU 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
Utiliser le système D Indicates whether your device uses systemd. Valid values are oui or non. Run the check_ggc_dependencies script in Module 1 to see if your device uses systemd.

crypto

Le paramètre crypto contient les propriétés qui prennent en charge le stockage de la clé privée sur un module de sécurité matérielle (HSM) via PKCS #11 et le stockage secret local. Pour plus d’informations, consultez AWS IoT Greengrass principes de sécurité fondamentaux, Intégration de sécurité matérielle et Déployer des secrets sur AWS IoT Greengrass Core. Les configurations pour le stockage des clés privées sur les HSM ou dans le système de fichiers sont prises en charge.

Champ Description Remarques
Trajectorat

Chemin d'accès absolu au certificat d'autorité de certification racine AWS IoT.

Il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

PKCS11
Moteur OpenSSL

Facultatif. Chemin d'accès absolu au fichier de moteur OpenSSL .so pour activer la prise en charge PKCS # 11 sur OpenSSL.

Doit être un chemin d'accès à un fichier sur le système de fichiers.

Cette propriété est requise si vous utilisez l'agent de mise à jour Greengrass OTA avec sécurité matérielle. Pour plus d’informations, consultez Configurer le support pour les over-the-air mises à jour.

Fournisseur P11

Chemin absolu vers la bibliothèque libdl-loadable d'implémentation PKCS # 11.

Doit être un chemin d'accès à un fichier sur le système de fichiers.

Étiquette de machine à sous

Étiquette d'emplacement qui est utilisée pour identifier le module matériel.

Doit se conformer aux spécifications d'étiquette PKCS # 11.

slotUserPin

Le code PIN utilisateur utilisé pour authentifier le noyau de Greengrass auprès du module.

Vous devez disposer d'autorisations suffisantes pour exécuter C_Sign avec les clés privées configurées.

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

Chemin d'accès à la clé privée principale.

Pour le stockage de système de fichiers, il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

Pour le stockage HSM, il doit s'agir du chemin d'accès RFC WF-7512 PKCS # 11 qui spécifie l'objet étiquette.

Certificat IoT .CertificatePath

Chemin d'accès absolu au certificat de votre noyau.

Il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

MQTT ServerCertificate

Facultatif. Clé privée que le noyau utilise en combinaison avec le certificat pour agir en tant que passerelle ou serveur MQTT.

MQTTServerCertificate . privateKeyPath

Chemin d'accès à la clé privée du serveur MQTT local.

Utilisez cette valeur pour spécifier votre propre clé privée pour le serveur MQTT local.

Pour le stockage de système de fichiers, il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

Pour le stockage HSM, il doit s'agir du chemin d'accès RFC WF-7512 PKCS # 11 qui spécifie l'objet étiquette.

Si cette propriété n'est pas spécifiée, AWS IoT Greengrass effectue une rotation de la clé basée sur vos paramètres de rotation. Si cette propriété est spécifiée, le client est responsable de la rotation de la clé.

SecretsManager The private key that secures the data key used for encryption. For more information, see Déployer des secrets sur AWS IoT Greengrass Core.
SecretsManager  .privateKeyPath

Chemin d'accès à la clé privée du Secrets Manager local.

Seule une clé RSA est prise en charge.

Pour le stockage de système de fichiers, il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

Pour le stockage HSM, il doit s'agir du chemin d'accès RFC WF-7512 PKCS # 11 qui spécifie l'objet étiquette. La clé privée doit être générée à l'aide du mécanisme de remplissage PKCS#1 v1.5.

Les propriétés de configuration suivantes sont également prises en charge :

Champ Description Remarques
mqttMaxConnectionRetryInterval

Facultatif. L'intervalle maximal (en secondes) entre les tentatives de connexion MQTT si la connexion est abandonnée.

Spécifiez cette valeur en tant qu'entier non signé. L’argument par défaut est 60.

managedRespawn

Facultatif. Indique que l'agent OTA doit exécuter un code personnalisé avant une mise à jour.

Les valeurs valides sont true ou false. Pour plus d’informations, consultez Mises à jour OTA du logiciel AWS IoT Greengrass Core.

writeDirectory

Facultatif. Le répertoire d'écriture où sont AWS IoT Greengrass créées toutes les ressources de lecture/écriture.

Pour plus d’informations, consultez Configuration d'un répertoire en écriture pour AWS IoT Greengrass.

GGC 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" } }

Le fichier config.json prend en charge les propriétés suivantes :

coreThing

Champ Description Remarques
caPath

Chemin d'accès au certificat d'authentification racine AWS IoT relatif au répertoire /greengrass-root/certs.

Pour une compatibilité descendante avec les versions antérieures à la version 1.7.0. Cette propriété est ignorée lorsque l'cryptoobjet est présent.

certPath

Chemin d'accès au certificat de l'appareil principal relatif au répertoire /greengrass-root/certs.

Pour une compatibilité descendante avec les versions antérieures à la version 1.7.0. Cette propriété est ignorée lorsque l'cryptoobjet est présent.
keyPath Chemin d'accès à la clé privée principale relatif au répertoire /greengrass-root/certs. Pour une compatibilité descendante avec les versions antérieures à la version 1.7.0. Cette propriété est ignorée lorsque l'cryptoobjet est présent.
thingArn Le nom de ressource Amazon (ARN) de l'AWS IoTobjet qui représente le périphérique AWS IoT Greengrass principal. Trouvez l'ARN de votre cœur dans la AWS IoT Greengrass console, sous Cores, ou en exécutant la commande aws greengrass get-core-definition-versionCLI.
iotHost Votre point de terminaison AWS IoT.

Recherchez le point de terminaison dans la AWS IoT console sous Paramètres ou en exécutant la commande aws iot describe-endpoint --endpoint-type iot:Data-ATSCLI.

Cette commande renvoie le point de terminaison ATS (Amazon Trust Services). Pour de plus amples informations, veuillez consulter la documentation Authentification du serveur.

ggHost Votre point de terminaison AWS IoT Greengrass.

Il s'agit de votre point de terminaison iotHost avec le préfixe de l'hôte remplacé par greengrass (par exemple, greengrass-ats.iot.region.amazonaws.com). Utilisez le même Région AWS queiotHost.

iotMqttPort Facultatif. Numéro de port à utiliser pour la communication MQTT avec AWS IoT. Les valeurs valides sont 8883 ou 443. La valeur par défaut est 8883. Pour plus d’informations, consultez Connexion au port 443 ou via un proxy réseau.
iotHttpPort Facultatif. Numéro de port utilisé pour créer des connexions HTTPS vers AWS IoT. Les valeurs valides sont 8443 ou 443. La valeur par défaut est 8443. Pour plus d’informations, consultez Connexion au port 443 ou via un proxy réseau.
ggHttpPort Facultatif. Numéro de port utilisé pour créer des connexions HTTPS vers le service AWS IoT Greengrass. Les valeurs valides sont 8443 ou 443. La valeur par défaut est 8443. Pour plus d’informations, consultez Connexion au port 443 ou via un proxy réseau.
keepAlive Facultatif. Période KeepAlive MQTT, en secondes La plage valide est comprise entre 30 et 1 200 secondes. La valeur par défaut est 600.
networkProxy Facultatif. Objet qui définit une serveur proxy auquel vous connecter. Le serveur proxy peut être HTTP ou HTTPS. Pour plus d’informations, consultez Connexion au port 443 ou via un proxy réseau.

runtime

Champ Description Remarques
maxConcurrentLimit

Facultatif. Le nombre maximum de travailleurs Lambda non épinglés simultanés que le daemon Greengrass peut avoir. Vous pouvez spécifier un autre entier pour remplacer ce paramètre.

La valeur par défaut est 25. La valeur minimale est définie parlruSize.

Taille du LRU 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
Utiliser le système D Indicates whether your device uses systemd. Valid values are oui or non. Run the check_ggc_dependencies script in Module 1 to see if your device uses systemd.

crypto

L'objet crypto est ajouté dans v1.7.0. Il présente les propriétés qui prennent en charge le stockage de la clé privée sur un module de sécurité matérielle (HSM) via PKCS # 11 et le stockage secret local. Pour plus d’informations, consultez AWS IoT Greengrass principes de sécurité fondamentaux, Intégration de sécurité matérielle et Déployer des secrets sur AWS IoT Greengrass Core. Les configurations pour le stockage des clés privées sur les HSM ou dans le système de fichiers sont prises en charge.

Champ Description Remarques
Trajectorat

Chemin d'accès absolu au certificat d'autorité de certification racine AWS IoT.

Il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

PKCS11
Moteur OpenSSL

Facultatif. Chemin d'accès absolu au fichier de moteur OpenSSL .so pour activer la prise en charge PKCS # 11 sur OpenSSL.

Doit être un chemin d'accès à un fichier sur le système de fichiers.

Cette propriété est requise si vous utilisez l'agent de mise à jour Greengrass OTA avec sécurité matérielle. Pour plus d’informations, consultez Configurer le support pour les over-the-air mises à jour.

Fournisseur P11

Chemin absolu vers la bibliothèque libdl-loadable d'implémentation PKCS # 11.

Doit être un chemin d'accès à un fichier sur le système de fichiers.

Étiquette de machine à sous

Étiquette d'emplacement qui est utilisée pour identifier le module matériel.

Doit se conformer aux spécifications d'étiquette PKCS # 11.

slotUserPin

Le code PIN utilisateur utilisé pour authentifier le noyau de Greengrass auprès du module.

Vous devez disposer d'autorisations suffisantes pour exécuter C_Sign avec les clés privées configurées.

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

Chemin d'accès à la clé privée principale.

Pour le stockage de système de fichiers, il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

Pour le stockage HSM, il doit s'agir du chemin d'accès RFC WF-7512 PKCS # 11 qui spécifie l'objet étiquette.

Certificat IoT .CertificatePath

Chemin d'accès absolu au certificat de votre noyau.

Il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

MQTT ServerCertificate

Facultatif. Clé privée que le noyau utilise en combinaison avec le certificat pour agir en tant que passerelle ou serveur MQTT.

MQTTServerCertificate . privateKeyPath

Chemin d'accès à la clé privée du serveur MQTT local.

Utilisez cette valeur pour spécifier votre propre clé privée pour le serveur MQTT local.

Pour le stockage de système de fichiers, il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

Pour le stockage HSM, il doit s'agir du chemin d'accès RFC WF-7512 PKCS # 11 qui spécifie l'objet étiquette.

Si cette propriété n'est pas spécifiée, AWS IoT Greengrass effectue une rotation de la clé basée sur vos paramètres de rotation. Si cette propriété est spécifiée, le client est responsable de la rotation de la clé.

SecretsManager The private key that secures the data key used for encryption. For more information, see Déployer des secrets sur AWS IoT Greengrass Core.
SecretsManager  .privateKeyPath

Chemin d'accès à la clé privée du Secrets Manager local.

Seule une clé RSA est prise en charge.

Pour le stockage de système de fichiers, il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

Pour le stockage HSM, il doit s'agir du chemin d'accès RFC WF-7512 PKCS # 11 qui spécifie l'objet étiquette. La clé privée doit être générée à l'aide du mécanisme de remplissage PKCS#1 v1.5.

Les propriétés de configuration suivantes sont également prises en charge.

Champ Description Remarques
mqttMaxConnectionRetryInterval

Facultatif. L'intervalle maximal (en secondes) entre les tentatives de connexion MQTT si la connexion est abandonnée.

Spécifiez cette valeur en tant qu'entier non signé. L’argument par défaut est 60.

managedRespawn

Facultatif. Indique que l'agent OTA doit exécuter un code personnalisé avant une mise à jour.

Les valeurs valides sont true ou false. Pour plus d’informations, consultez Mises à jour OTA du logiciel AWS IoT Greengrass Core.

writeDirectory

Facultatif. Le répertoire d'écriture où sont AWS IoT Greengrass créées toutes les ressources de lecture/écriture.

Pour plus d’informations, consultez Configuration d'un répertoire en écriture pour AWS IoT Greengrass.

GGC 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" } }

Le config.json fichier prend en charge les propriétés suivantes.

coreThing

Champ Description Remarques
caPath

Chemin d'accès au certificat d'authentification racine AWS IoT relatif au répertoire /greengrass-root/certs.

Pour une compatibilité descendante avec les versions antérieures à la version 1.7.0. Cette propriété est ignorée lorsque l'cryptoobjet est présent.

certPath

Chemin d'accès au certificat de l'appareil principal relatif au répertoire /greengrass-root/certs.

Pour une compatibilité descendante avec les versions antérieures à la version 1.7.0. Cette propriété est ignorée lorsque l'cryptoobjet est présent.
keyPath Chemin d'accès à la clé privée principale relatif au répertoire /greengrass-root/certs. Pour une compatibilité descendante avec les versions antérieures à la version 1.7.0. Cette propriété est ignorée lorsque l'cryptoobjet est présent.
thingArn Le nom de ressource Amazon (ARN) de l'AWS IoTobjet qui représente le périphérique AWS IoT Greengrass principal. Trouvez l'ARN de votre cœur dans la AWS IoT Greengrass console, sous Cores, ou en exécutant la commande aws greengrass get-core-definition-versionCLI.
iotHost Votre point de terminaison AWS IoT.

Recherchez le point de terminaison dans la AWS IoT console sous Paramètres ou en exécutant la commande aws iot describe-endpoint --endpoint-type iot:Data-ATSCLI.

Cette commande renvoie le point de terminaison ATS (Amazon Trust Services). Pour de plus amples informations, veuillez consulter la documentation Authentification du serveur.

ggHost Votre point de terminaison AWS IoT Greengrass.

Il s'agit de votre point de terminaison iotHost avec le préfixe de l'hôte remplacé par greengrass (par exemple, greengrass-ats.iot.region.amazonaws.com). Utilisez le même Région AWS queiotHost.

iotMqttPort Facultatif. Numéro de port à utiliser pour la communication MQTT avec AWS IoT. Les valeurs valides sont 8883 ou 443. La valeur par défaut est 8883. Pour plus d’informations, consultez Connexion au port 443 ou via un proxy réseau.
iotHttpPort Facultatif. Numéro de port utilisé pour créer des connexions HTTPS vers AWS IoT. Les valeurs valides sont 8443 ou 443. La valeur par défaut est 8443. Pour plus d’informations, consultez Connexion au port 443 ou via un proxy réseau.
ggHttpPort Facultatif. Numéro de port utilisé pour créer des connexions HTTPS vers le service AWS IoT Greengrass. Les valeurs valides sont 8443 ou 443. La valeur par défaut est 8443. Pour plus d’informations, consultez Connexion au port 443 ou via un proxy réseau.
keepAlive Facultatif. Période KeepAlive MQTT, en secondes La plage valide est comprise entre 30 et 1 200 secondes. La valeur par défaut est 600.
networkProxy Facultatif. Objet qui définit une serveur proxy auquel vous connecter. Le serveur proxy peut être HTTP ou HTTPS. Pour plus d’informations, consultez Connexion au port 443 ou via un proxy réseau.

runtime

Champ Description Remarques
cgroup
Utiliser le système D Indicates whether your device uses systemd. Valid values are oui or non. Run the check_ggc_dependencies script in Module 1 to see if your device uses systemd.

crypto

L'objet crypto est ajouté dans v1.7.0. Il présente les propriétés qui prennent en charge le stockage de la clé privée sur un module de sécurité matérielle (HSM) via PKCS # 11 et le stockage secret local. Pour plus d’informations, consultez AWS IoT Greengrass principes de sécurité fondamentaux, Intégration de sécurité matérielle et Déployer des secrets sur AWS IoT Greengrass Core. Les configurations pour le stockage des clés privées sur les HSM ou dans le système de fichiers sont prises en charge.

Champ Description Remarques
Trajectorat

Chemin d'accès absolu au certificat d'autorité de certification racine AWS IoT.

Il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

PKCS11
Moteur OpenSSL

Facultatif. Chemin d'accès absolu au fichier de moteur OpenSSL .so pour activer la prise en charge PKCS # 11 sur OpenSSL.

Doit être un chemin d'accès à un fichier sur le système de fichiers.

Cette propriété est requise si vous utilisez l'agent de mise à jour Greengrass OTA avec sécurité matérielle. Pour plus d’informations, consultez Configurer le support pour les over-the-air mises à jour.

Fournisseur P11

Chemin absolu vers la bibliothèque libdl-loadable d'implémentation PKCS # 11.

Doit être un chemin d'accès à un fichier sur le système de fichiers.

Étiquette de machine à sous

Étiquette d'emplacement qui est utilisée pour identifier le module matériel.

Doit se conformer aux spécifications d'étiquette PKCS # 11.

slotUserPin

Le code PIN utilisateur utilisé pour authentifier le noyau de Greengrass auprès du module.

Vous devez disposer d'autorisations suffisantes pour exécuter C_Sign avec les clés privées configurées.

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

Chemin d'accès à la clé privée principale.

Pour le stockage de système de fichiers, il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

Pour le stockage HSM, il doit s'agir du chemin d'accès RFC WF-7512 PKCS # 11 qui spécifie l'objet étiquette.

Certificat IoT .CertificatePath

Chemin d'accès absolu au certificat de votre noyau.

Il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

MQTT ServerCertificate

Facultatif. Clé privée que le noyau utilise en combinaison avec le certificat pour agir en tant que passerelle ou serveur MQTT.

MQTTServerCertificate . privateKeyPath

Chemin d'accès à la clé privée du serveur MQTT local.

Utilisez cette valeur pour spécifier votre propre clé privée pour le serveur MQTT local.

Pour le stockage de système de fichiers, il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

Pour le stockage HSM, il doit s'agir du chemin d'accès RFC WF-7512 PKCS # 11 qui spécifie l'objet étiquette.

Si cette propriété n'est pas spécifiée, AWS IoT Greengrass effectue une rotation de la clé basée sur vos paramètres de rotation. Si cette propriété est spécifiée, le client est responsable de la rotation de la clé.

SecretsManager The private key that secures the data key used for encryption. For more information, see Déployer des secrets sur AWS IoT Greengrass Core.
SecretsManager  .privateKeyPath

Chemin d'accès à la clé privée du Secrets Manager local.

Seule une clé RSA est prise en charge.

Pour le stockage de système de fichiers, il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

Pour le stockage HSM, il doit s'agir du chemin d'accès RFC WF-7512 PKCS # 11 qui spécifie l'objet étiquette. La clé privée doit être générée à l'aide du mécanisme de remplissage PKCS#1 v1.5.

Les propriétés de configuration suivantes sont également prises en charge :

Champ Description Remarques
mqttMaxConnectionRetryInterval

Facultatif. L'intervalle maximal (en secondes) entre les tentatives de connexion MQTT si la connexion est abandonnée.

Spécifiez cette valeur en tant qu'entier non signé. L’argument par défaut est 60.

managedRespawn

Facultatif. Indique que l'agent OTA doit exécuter un code personnalisé avant une mise à jour.

Les valeurs valides sont true ou false. Pour plus d’informations, consultez Mises à jour OTA du logiciel AWS IoT Greengrass Core.

writeDirectory

Facultatif. Le répertoire d'écriture où sont AWS IoT Greengrass créées toutes les ressources de lecture/écriture.

Pour plus d’informations, consultez Configuration d'un répertoire en écriture pour 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" } }

Le fichier config.json prend en charge les propriétés suivantes :

coreThing

Champ Description Remarques
caPath

Chemin d'accès au certificat d'authentification racine AWS IoT relatif au répertoire /greengrass-root/certs.

Pour une compatibilité descendante avec les versions antérieures à la version 1.7.0. Cette propriété est ignorée lorsque l'cryptoobjet est présent.

certPath

Chemin d'accès au certificat de l'appareil principal relatif au répertoire /greengrass-root/certs.

Pour une compatibilité descendante avec les versions antérieures à la version 1.7.0. Cette propriété est ignorée lorsque l'cryptoobjet est présent.
keyPath Chemin d'accès à la clé privée principale relatif au répertoire /greengrass-root/certs. Pour une compatibilité descendante avec les versions antérieures à la version 1.7.0. Cette propriété est ignorée lorsque l'cryptoobjet est présent.
thingArn Le nom de ressource Amazon (ARN) de l'AWS IoTobjet qui représente le périphérique AWS IoT Greengrass principal. Trouvez l'ARN de votre cœur dans la AWS IoT Greengrass console, sous Cores, ou en exécutant la commande aws greengrass get-core-definition-versionCLI.
iotHost Votre point de terminaison AWS IoT.

Recherchez le point de terminaison dans la AWS IoT console sous Paramètres ou en exécutant la commande aws iot describe-endpoint --endpoint-type iot:Data-ATSCLI.

Cette commande renvoie le point de terminaison ATS (Amazon Trust Services). Pour de plus amples informations, veuillez consulter la documentation Authentification du serveur.

ggHost Votre point de terminaison AWS IoT Greengrass.

Il s'agit de votre point de terminaison iotHost avec le préfixe de l'hôte remplacé par greengrass (par exemple, greengrass-ats.iot.region.amazonaws.com). Utilisez le même Région AWS queiotHost.

iotMqttPort Facultatif. Numéro de port à utiliser pour la communication MQTT avec AWS IoT. Les valeurs valides sont 8883 ou 443. La valeur par défaut est 8883. Pour plus d’informations, consultez Connexion au port 443 ou via un proxy réseau.
keepAlive Facultatif. Période KeepAlive MQTT, en secondes La plage valide est comprise entre 30 et 1 200 secondes. La valeur par défaut est 600.
networkProxy Facultatif. Objet qui définit une serveur proxy auquel vous connecter. Le serveur proxy peut être HTTP ou HTTPS. Pour plus d’informations, consultez Connexion au port 443 ou via un proxy réseau.

runtime

Champ Description Remarques
cgroup
Utiliser le système D Indicates whether your device uses systemd. Valid values are oui or non. Run the check_ggc_dependencies script in Module 1 to see if your device uses systemd.

crypto

L'objet crypto, ajouté dans la version 1.7.0, présente les propriétés qui prennent en charge le stockage de la clé privée sur un module de sécurité matérielle (HSM) via PKCS # 11 et le stockage secret local. Pour plus d’informations, consultez Intégration de sécurité matérielle et Déployer des secrets sur AWS IoT Greengrass Core. Les configurations pour le stockage des clés privées sur les HSM ou dans le système de fichiers sont prises en charge.

Champ Description Remarques
Trajectorat

Chemin d'accès absolu au certificat d'autorité de certification racine AWS IoT.

Il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

PKCS11
Moteur OpenSSL

Facultatif. Chemin d'accès absolu au fichier de moteur OpenSSL .so pour activer la prise en charge PKCS # 11 sur OpenSSL.

Doit être un chemin d'accès à un fichier sur le système de fichiers.

Cette propriété est requise si vous utilisez l'agent de mise à jour Greengrass OTA avec sécurité matérielle. Pour plus d’informations, consultez Configurer le support pour les over-the-air mises à jour.

Fournisseur P11

Chemin absolu vers la bibliothèque libdl-loadable d'implémentation PKCS # 11.

Doit être un chemin d'accès à un fichier sur le système de fichiers.

Étiquette de machine à sous

Étiquette d'emplacement qui est utilisée pour identifier le module matériel.

Doit se conformer aux spécifications d'étiquette PKCS # 11.

slotUserPin

Le code PIN utilisateur utilisé pour authentifier le noyau de Greengrass auprès du module.

Vous devez disposer d'autorisations suffisantes pour exécuter C_Sign avec les clés privées configurées.

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

Chemin d'accès à la clé privée principale.

Pour le stockage de système de fichiers, il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

Pour le stockage HSM, il doit s'agir du chemin d'accès RFC WF-7512 PKCS # 11 qui spécifie l'objet étiquette.

Certificat IoT .CertificatePath

Chemin d'accès absolu au certificat de votre noyau.

Il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

MQTT ServerCertificate

Facultatif. Clé privée que le noyau utilise en combinaison avec le certificat pour agir en tant que passerelle ou serveur MQTT.

MQTTServerCertificate . privateKeyPath

Chemin d'accès à la clé privée du serveur MQTT local.

Utilisez cette valeur pour spécifier votre propre clé privée pour le serveur MQTT local.

Pour le stockage de système de fichiers, il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

Pour le stockage HSM, il doit s'agir du chemin d'accès RFC WF-7512 PKCS # 11 qui spécifie l'objet étiquette.

Si cette propriété n'est pas spécifiée, AWS IoT Greengrass effectue une rotation de la clé basée sur vos paramètres de rotation. Si cette propriété est spécifiée, le client est responsable de la rotation de la clé.

SecretsManager The private key that secures the data key used for encryption. For more information, see Déployer des secrets sur AWS IoT Greengrass Core.
SecretsManager  .privateKeyPath

Chemin d'accès à la clé privée du Secrets Manager local.

Seule une clé RSA est prise en charge.

Pour le stockage de système de fichiers, il doit s'agir de l'URI d'un fichier du formulaire : file:///absolute/path/to/file.

Pour le stockage HSM, il doit s'agir du chemin d'accès RFC WF-7512 PKCS # 11 qui spécifie l'objet étiquette. La clé privée doit être générée à l'aide du mécanisme de remplissage PKCS#1 v1.5.

Les propriétés de configuration suivantes sont également prises en charge :

Champ Description Remarques
mqttMaxConnectionRetryInterval

Facultatif. L'intervalle maximal (en secondes) entre les tentatives de connexion MQTT si la connexion est abandonnée.

Spécifiez cette valeur en tant qu'entier non signé. L’argument par défaut est 60.

managedRespawn

Facultatif. Indique que l'agent OTA doit exécuter un code personnalisé avant une mise à jour.

Les valeurs valides sont true ou false. Pour plus d’informations, consultez Mises à jour OTA du logiciel AWS IoT Greengrass Core.

writeDirectory

Facultatif. Le répertoire d'écriture où sont AWS IoT Greengrass créées toutes les ressources de lecture/écriture.

Pour plus d’informations, consultez Configuration d'un répertoire en écriture pour 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" }
Note

Si vous utilisez l'option de création de groupe par défaut depuis la AWS IoT Greengrass console, le config.json fichier est déployé sur le périphérique principal dans un état de fonctionnement qui spécifie la configuration par défaut.

Le fichier config.json prend en charge les propriétés suivantes :

Champ Description Remarques
caPath

Chemin d'accès au certificat d'authentification racine AWS IoT relatif au répertoire /greengrass-root/certs.

Enregistrez le fichier sous /greengrass-root/certs.

certPath

Le chemin d'accès AWS IoT Greengrass au certificat principal relatif au /greengrass-root/certs répertoire.

Enregistrez le fichier sous /greengrass-root/certs.
keyPath Le chemin d'accès à la AWS IoT Greengrass clé privée principale par rapport au /greengrass-root/certs répertoire. Enregistrez le fichier sous /greengrass-root/certs.
thingArn Le nom de ressource Amazon (ARN) de l'AWS IoTobjet qui représente le périphérique AWS IoT Greengrass principal. Trouvez l'ARN de votre cœur dans la AWS IoT Greengrass console, sous Cores, ou en exécutant la commande aws greengrass get-core-definition-versionCLI.
iotHost Votre point de terminaison AWS IoT. Trouvez-le dans la AWS IoT console, sous Paramètres, ou en exécutant la commande aws iot describe-endpointCLI.
ggHost Votre point de terminaison AWS IoT Greengrass. Cette valeur utilise le format greengrass.iot.region.amazonaws.com. Utilisez la même région que iotHost.
keepAlive Période KeepAlive MQTT, en secondes Cette valeur est facultative. L’argument par défaut est 600.
mqttMaxConnectionRetryInterval

L'intervalle maximal (en secondes) entre les tentatives de connexion MQTT si la connexion est abandonnée.

Spécifiez cette valeur en tant qu'entier non signé. Cette valeur est facultative. L’argument par défaut est 60.

useSystemd Indique si votre appareil utilise systemd. Les valeurs valides sont yes ou no. Exécutez le script check_ggc_dependencies dans Module 1 pour voir si votre appareil utilise systemd.
managedRespawn

Fonctionnalité de mise à jour optionnelle over-the-air (OTA), qui indique que l'agent OTA doit exécuter un code personnalisé avant une mise à jour.

Les valeurs valides sont true ou false. Pour plus d’informations, consultez Mises à jour OTA du logiciel AWS IoT Greengrass Core.

writeDirectory

Le répertoire d'écriture où sont AWS IoT Greengrass créées toutes les ressources de lecture/écriture.

Cette valeur est facultative. Pour plus d’informations, consultez Configuration d'un répertoire en écriture pour 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 }

Le fichier config.json existe dans /greengrass-root/config et contient les paramètres suivants :

Champ Description Remarques
caPath

Chemin d'accès au certificat d'authentification racine AWS IoT relatif au dossier /greengrass-root/certs.

Enregistrez le fichier sous le dossier /greengrass-root/certs.

certPath

Le chemin d'accès AWS IoT Greengrass au certificat principal relatif au /greengrass-root/certs dossier.

Enregistrez le fichier sous le dossier /greengrass-root/certs.
keyPath Le chemin d'accès à la AWS IoT Greengrass clé privée principale par rapport au /greengrass-root/certs dossier. Enregistrez le fichier sous le dossier /greengrass-root/certs.
thingArn Le nom de ressource Amazon (ARN) de l'AWS IoTobjet qui représente le périphérique AWS IoT Greengrass principal. Trouvez l'ARN de votre cœur dans la AWS IoT Greengrass console, sous Cores, ou en exécutant la commande aws greengrass get-core-definition-versionCLI.
iotHost Votre point de terminaison AWS IoT. Trouvez-le dans la AWS IoT console, sous Paramètres, ou en exécutant la aws iot describe-endpointcommande.
ggHost Votre point de terminaison AWS IoT Greengrass. Cette valeur utilise le format greengrass.iot.region.amazonaws.com. Utilisez la même région que iotHost.
keepAlive Période KeepAlive MQTT, en secondes Cette valeur est facultative. La valeur par défaut est de 600 secondes.
useSystemd Indique si votre appareil utilise systemd. Les valeurs valides sont yes ou no. Exécutez le script check_ggc_dependencies dans Module 1 pour voir si votre appareil utilise systemd.
managedRespawn

Fonctionnalité de mise à jour optionnelle over-the-air (OTA), qui indique que l'agent OTA doit exécuter un code personnalisé avant une mise à jour.

Pour plus d’informations, consultez Mises à jour OTA du logiciel AWS IoT Greengrass Core.

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 }

Le fichier config.json existe dans /greengrass-root/config et contient les paramètres suivants :

Champ Description Remarques
caPath

Chemin d'accès au certificat d'authentification racine AWS IoT relatif au dossier /greengrass-root/certs.

Enregistrez le fichier sous le dossier /greengrass-root/certs.

certPath

Le chemin d'accès AWS IoT Greengrass au certificat principal relatif au /greengrass-root/certs dossier.

Enregistrez le fichier sous le dossier /greengrass-root/certs.
keyPath Le chemin d'accès à la AWS IoT Greengrass clé privée principale par rapport au /greengrass-root/certs dossier. Enregistrez le fichier sous le dossier /greengrass-root/certs.
thingArn Le nom de ressource Amazon (ARN) de l'AWS IoTobjet qui représente le AWS IoT Greengrass noyau. Vous pouvez trouver cette valeur dans la AWS IoT Greengrass console, sous la définition de votre AWS IoT objet.
iotHost Votre point de terminaison AWS IoT. Vous pouvez trouver cette valeur dans la AWS IoT console sous Paramètres.
ggHost Votre point de terminaison AWS IoT Greengrass. Vous pouvez trouver cette valeur dans la AWS IoT console sous Paramètres avec un greengrass. préfixe.
keepAlive Période KeepAlive MQTT, en secondes Cette valeur est facultative. La valeur par défaut est de 600 secondes.
useSystemd Indicateur binaire, si votre appareil utilise systemd. Les valeurs sont yes ou no. Utilisez le script de dépendance du Module 1 pour voir si votre appareil utilise systemd.
managedRespawn

Fonctionnalité de mise à jour optionnelle over-the-air (OTA), qui indique que l'agent OTA doit exécuter un code personnalisé avant une mise à jour.

Pour plus d’informations, consultez Mises à jour OTA du logiciel AWS IoT Greengrass Core.

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" } } }

Le fichier config.json existe dans /greengrass-root/config et contient les paramètres suivants :

Champ Description Remarques
caPath

Chemin d'accès au certificat d'authentification racine AWS IoT relatif au dossier /greengrass-root/certs.

Enregistrez le fichier sous le dossier /greengrass-root/certs.

certPath

Le chemin d'accès AWS IoT Greengrass au certificat principal relatif au /greengrass-root/certs dossier.

Enregistrez le fichier sous le dossier /greengrass-root/certs.
keyPath Le chemin d'accès à la AWS IoT Greengrass clé privée principale par rapport au /greengrass-root/certs dossier. Enregistrez le fichier sous le dossier /greengrass-root/certs.
thingArn Le nom de ressource Amazon (ARN) de l'AWS IoTobjet qui représente le AWS IoT Greengrass noyau. Vous pouvez trouver cette valeur dans la AWS IoT Greengrass console, sous la définition de votre AWS IoT objet.
iotHost Votre point de terminaison AWS IoT. Vous pouvez trouver cette valeur dans la AWS IoT console sous Paramètres.
ggHost Votre point de terminaison AWS IoT Greengrass. Vous pouvez trouver cette valeur dans la AWS IoT console sous Paramètres avec un greengrass. préfixe.
keepAlive Période KeepAlive MQTT, en secondes Cette valeur est facultative. La valeur par défaut est de 600 secondes.
useSystemd Indicateur binaire, si votre appareil utilise systemd. Les valeurs sont yes ou no. Utilisez le script de dépendance du Module 1 pour voir si votre appareil utilise systemd.
GGC v1.0

Dans AWS IoT Greengrass Core v1.0, config.json est déployé sur greengrass-root/configuration.

{ "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" } } }

Le fichier config.json existe dans /greengrass-root/configuration et contient les paramètres suivants :

Champ Description Remarques
caPath

Chemin d'accès au certificat d'authentification racine AWS IoT relatif au dossier /greengrass-root/configuration/certs.

Enregistrez le fichier sous le dossier /greengrass-root/configuration/certs.

certPath

Le chemin d'accès AWS IoT Greengrass au certificat principal relatif au /greengrass-root/configuration/certs dossier.

Enregistrez le fichier sous le dossier /greengrass-root/configuration/certs.
keyPath Le chemin d'accès à la AWS IoT Greengrass clé privée principale par rapport au /greengrass-root/configuration/certs dossier. Enregistrez le fichier sous le dossier /greengrass-root/configuration/certs.
thingArn Le nom de ressource Amazon (ARN) de l'AWS IoTobjet qui représente le AWS IoT Greengrass noyau. Vous pouvez trouver cette valeur dans la AWS IoT Greengrass console sous la définition de votre AWS IoT objet.
iotHost Votre point de terminaison AWS IoT. Vous pouvez trouver cette valeur dans la AWS IoT console sous Paramètres.
ggHost Votre point de terminaison AWS IoT Greengrass.

Vous pouvez trouver cette valeur dans la AWS IoT console sous Paramètres avec un greengrass. préfixe.

keepAlive Période KeepAlive MQTT, en secondes Cette valeur est facultative. La valeur par défaut est de 600 secondes.
useSystemd Indicateur binaire si votre appareil utilise systemd. Les valeurs sont yes ou no. Utilisez le script de dépendance du Module 1 pour voir si votre appareil utilise systemd.

Les points de terminaison du service doivent correspondre au type de certificat de l'autorité de certification racine

Vos points de terminaison AWS IoT Core et AWS IoT Greengrass doivent correspondre au type de certificat du certificat d'autorité de certification racine sur votre appareil. Si les points de terminaison et le type de certificat ne correspondent pas, les tentatives d'authentification entre le périphérique et AWS IoT Core ou AWS IoT Greengrass échouent. Pour plus d'informations, consultez la section Authentification du serveur dans le guide du AWS IoT développeur.

Si votre appareil utilise un certificat CA racine Amazon Trust Services (ATS), qui est la méthode préférée, il doit également utiliser les points de terminaison ATS pour la gestion des appareils et les opérations du plan de données de découverte. Les points de terminaison ATS incluent le segment ats, comme illustré dans la syntaxe suivante pour le point de terminaison AWS IoT Core.

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

Pour des raisons de rétrocompatibilité, prend AWS IoT Greengrass actuellement en charge les anciens certificats et points de terminaison de l'autorité de certification VeriSign racine dans certains Région AWS s. Si vous utilisez un ancien certificat d'autorité de certification VeriSign racine, nous vous recommandons de créer un point de terminaison ATS et d'utiliser plutôt un certificat d'autorité de certification racine ATS. Sinon, assurez-vous d'utiliser les points de terminaison hérités correspondants. Pour de plus amples informations, veuillez consulter Points de terminaison hérités pris en charge dans le Référence générale d'Amazon Web Services.

Points de terminaison dans config.json

Sur un appareil noyau Greengrass, les points de terminaison sont spécifiés dans l'objet coreThing du fichier config.json. La propriété iotHost représente le point de terminaison AWS IoT Core. La propriété ggHost représente le point de terminaison AWS IoT Greengrass. Dans l'exemple d'extrait suivant, ces propriétés spécifient des points de terminaison ATS.

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

Vous pouvez obtenir votre point de terminaison AWS IoT Core en exécutant la commande de l'interface de ligne de commande aws iot describe-endpoint avec le paramètre --endpoint-type qui convient.

  • Pour renvoyer un point de terminaison signé ATS, exécutez :

    aws iot describe-endpoint --endpoint-type iot:Data-ATS
  • Pour renvoyer un ancien point de terminaison VeriSign signé, exécutez :

    aws iot describe-endpoint --endpoint-type iot:Data
Point de terminaison AWS IoT Greengrass

Le point de terminaison AWS IoT Greengrass correspond au point de terminaison iotHost avec le préfixe de l'hôte remplacé par greengrass. Par exemple, le point de terminaison signé ATS est greengrass-ats.iot.region.amazonaws.com. La même région que pour le point de terminaison AWS IoT Core est utilisée.

Connexion au port 443 ou via un proxy réseau

Cette fonctionnalité est disponible pour AWS IoT Greengrass Core v1.7 et versions ultérieures.

Les noyaux Greengrass communiquent avec AWS IoT Core à l'aide du protocole de messagerie MQTT avec l'authentification client TLS. Par convention, MQTT via TLS utilise le port 8883. Toutefois, par mesure de sécurité, les environnements restrictifs peuvent limiter le trafic entrant et sortant à une petite plage de ports TCP. Par exemple, un pare-feu d'entreprise peut ouvrir le port 443 pour le trafic HTTPS, mais fermer les autres ports qui sont utilisés pour des protocoles moins courants, tels que le port 8883 pour le trafic MQTT. D'autres environnements restrictifs peuvent nécessiter que l'ensemble du trafic passe par un proxy HTTP avant de vous connecter à Internet.

Pour activer la communication dans ces scénarios, AWS IoT Greengrass autorise les configurations suivantes :

  • MQTT avec l'authentification client TLS via le port 443. Si votre réseau autorise les connexions au port 443, vous pouvez configurer le noyau pour utiliser ce port pour le trafic MQTT au lieu du port 8883 par défaut. Il peut s'agir d'une connexion directe au port 443 ou d'une connexion via un serveur réseau proxy.

    AWS IoT Greengrass utilise l'extension TLS Application Layer Protocol Network (ALPN) pour permettre cette connexion. Comme avec la configuration par défaut, MQTT via TLS sur le port 443 utilise l'authentification client basée sur le certificat.

    Lorsqu'il est configuré pour utiliser une connexion directe au port 443, le cœur prend en charge les mises à jour AWS IoT Greengrass logicielles over-the-air (OTA). Cette prise en charge nécessite AWS IoT Greengrass Core v1.9.3 ou version ultérieure.

  • Communication HTTPS via le port 443. Par défaut, AWS IoT Greengrass achemine le trafic HTTPS via le port 8443, mais vous pouvez le configurer afin qu'il utilise le port 443.

  • Connexion via un proxy réseau. Vous pouvez configurer un serveur réseau proxy comme intermédiaire pour la connexion au noyau Greengrass. Seule l'authentification de base et les proxys HTTP et HTTPS sont pris en charge.

    La configuration du proxy est transmise aux fonctions Lambda définies par l'utilisateur via http_proxy les variables d'https_proxyenvironnement, no_proxy et. Les fonctions Lambda définies par l'utilisateur doivent utiliser ces paramètres transmis pour se connecter via le proxy. Les bibliothèques courantes utilisées par les fonctions Lambda pour établir des connexions (telles que les packages boto3 ou cURL et requests python) utilisent généralement ces variables d'environnement par défaut. Si une fonction Lambda spécifie également ces mêmes variables d'environnement, AWS IoT Greengrass elle ne les remplace pas.

    Important

    Les noyaux Greengrass qui sont configurés pour utiliser un proxy réseau ne prennent pas en charge les mises à jour OTA.

Pour configurer MQTT via le port 443

Cette fonctionnalité nécessite AWS IoT Greengrass Core v1.7 ou version ultérieure.

Cette procédure permet au noyau Greengrass d'utiliser le port 443 pour la messagerie MQTT avec AWS IoT Core.

  1. Exécutez la commande suivante pour arrêter le daemon Greengrass :

    cd /greengrass-root/ggc/core/ sudo ./greengrassd stop
  2. Ouvrez greengrass-root/config/config.json pour le modifier en tant qu'utilisateur su.

  3. Dans l'objet coreThing, ajoutez la propriété iotMqttPort et définissez la valeur sur 443, comme illustré dans l'exemple suivant.

    { "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. Lancez le démon.

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

 

Pour configurer HTTPS via le port 443

Cette fonctionnalité nécessite AWS IoT Greengrass Core v1.8 ou version ultérieure.

Cette procédure configure le noyau afin qu'il utilise le port 443 pour la communication HTTPS.

  1. Exécutez la commande suivante pour arrêter le daemon Greengrass :

    cd /greengrass-root/ggc/core/ sudo ./greengrassd stop
  2. Ouvrez greengrass-root/config/config.json pour le modifier en tant qu'utilisateur su.

  3. Dans l'objet coreThing, ajoutez les propriétés iotHttpPort et ggHttpPort, comme indiqué dans l'exemple suivant.

    { "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. Lancez le démon.

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

 

Pour configurer un proxy réseau

Cette fonctionnalité nécessite AWS IoT Greengrass Core v1.7 ou version ultérieure.

Cette procédure permet à AWS IoT Greengrass de se connecter à Internet via un proxy réseau HTTP ou HTTPS.

  1. Exécutez la commande suivante pour arrêter le daemon Greengrass :

    cd /greengrass-root/ggc/core/ sudo ./greengrassd stop
  2. Ouvrez greengrass-root/config/config.json pour le modifier en tant qu'utilisateur su.

  3. Dans l'coreThingobjet, ajoutez l'objet NetworkProxy, comme indiqué dans l'exemple suivant.

    { "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. Lancez le démon.

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

Objet networkProxy

Utilisez l'objet networkProxy pour spécifier les informations sur le proxy réseau. Cet objet a les propriétés suivantes.

Champ Description
noProxyAddresses

Facultatif. Liste séparée par des virgules d'adresses IP ou de noms d'hôte qui sont dispensés par le proxy.

proxy

Proxy auquel se connecter. Un proxy a les propriétés suivantes.

  • url. URL du serveur proxy, au formatscheme://userinfo@host:port.

    • scheme. Le schéma. Doit être http ou https.

    • userinfo. Facultatif Informations concernant le nom d'utilisateur et le mot de passe. Si cette valeur est spécifiée, les champs username et password sont ignorés.

    • host. Le nom d'hôte ou l'adresse IP du serveur proxy.

    • port. Facultatif Numéro de port. Si rien n'est spécifié, les valeurs par défaut suivantes sont utilisées :

      • http : 80

      • https : 443

  • username. Facultatif Nom d'utilisateur à utiliser pour s'authentifier auprès du serveur proxy.

  • password. Facultatif Mot de passe à utiliser pour s'authentifier auprès du serveur proxy.

Autoriser les points de terminaison

La communication entre les appareils Greengrass et AWS IoT Core ou AWS IoT Greengrass doit être authentifiée. Cette authentification est basée sur les certificats d'appareils X.509 enregistrés et sur des clés de chiffrement. Pour autoriser les demandes authentifiées à passer par des proxys sans chiffrement supplémentaire, autorisez les points de terminaison suivants.

Point de terminaison Port Description
greengrass.region.amazonaws.com 443

Utilisé pour les opérations de plan de contrôle pour la gestion des groupes.

prefix-ats.iot.region.amazonaws.com

or

prefix.iot.region.amazonaws.com

MQTT : 8883 ou 443

HTTPS : 8443 ou 443

Utilisé pour les opérations de plan de contrôle pour la gestion des appareils, par exemple la synchronisation shadow.

Autorisez l'utilisation d'un ou des deux points de terminaison, selon que vos appareils principaux et clients utilisent des certificats d'autorité de certification racine (préférés) d'Amazon Trust Services, des certificats d'autorité de certification racine existants ou les deux. Pour plus d’informations, consultez Les points de terminaison du service doivent correspondre au type de certificat de l'autorité de certification racine.

greengrass-ats.iot.region.amazonaws.com

or

greengrass.iot.region.amazonaws.com

8443 ou 443

Utilisé pour les opérations de détection d'appareils.

Autorisez l'utilisation d'un ou des deux points de terminaison, selon que vos appareils principaux et clients utilisent des certificats d'autorité de certification racine (préférés) d'Amazon Trust Services, des certificats d'autorité de certification racine existants ou les deux. Pour plus d’informations, consultez Les points de terminaison du service doivent correspondre au type de certificat de l'autorité de certification racine.

Note

Les clients qui se connectent sur le port 443 doivent implémenter l'extension TLS ALPN (Application Layer Protocol Negotiation) et la transmettre x-amzn-http-ca comme ProtocolName dans le. ProtocolNameList Pour plus d'informations, consultez la section Protocoles du guide du AWS IoT développeur.

*.s3.amazonaws.com 443

Utilisé pour les opérations de déploiement et les over-the-air mises à jour. Ce format comprend le caractère *, car les préfixes des points de terminaison sont contrôlés en interne et peuvent évoluer à tout moment.

logs.region.amazonaws.com 443

Requis si le groupe Greengrass est configuré pour écrire des journaux dans CloudWatch.

Configuration d'un répertoire en écriture pour AWS IoT Greengrass

Cette fonctionnalité est disponible pour AWS IoT Greengrass Core v1.6 et versions ultérieures.

Par défaut, le logiciel AWS IoT Greengrass Core est déployé dans un répertoire racine unique où AWS IoT Greengrass effectue toutes les opérations de lecture et d'écriture. Cependant, vous pouvez configurer AWS IoT Greengrass pour qu'il utilise un répertoire distinct pour toutes les opérations d'écriture, y compris la création de répertoires et de fichiers. Dans ce cas, AWS IoT Greengrass utilise deux répertoires de niveau supérieur :

  • Le répertoire greengrass-root, que vous pouvez conserver accessible en lecture et en écriture ou, si vous le souhaitez, rendre accessible en lecture seule. Celui-ci contient le logiciel AWS IoT Greengrass et d'autres composants critiques qui doivent rester immuables lors de l'exécution (par exemple, les certificats et config.json).

  • Le répertoire en écriture spécifié. Il contient du contenu inscriptible, tel que des journaux, des informations d'état et des fonctions Lambda définies par l'utilisateur déployées.

Cette configuration entraîne la structure de répertoires suivante.

Répertoire racine Greengrass
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/
Répertoire en écriture
write-directory/ |-- packages/ | |-- package-version/ | |-- ggc_root/ | |-- rootfs_nosys/ | |-- rootfs_sys/ | |-- var/ |-- deployment/ | |-- group/ | |-- group.json | |-- lambda/ | |-- mlmodel/ |-- var/ | |-- log/ | |-- state/

 

Pour configurer un répertoire en écriture
  1. Exécutez la commande suivante pour arrêter le démon AWS IoT Greengrass :

    cd /greengrass-root/ggc/core/ sudo ./greengrassd stop
  2. Ouvrez greengrass-root/config/config.json pour le modifier en tant qu'utilisateur su.

  3. Ajoutez writeDirectory en tant que paramètre et spécifiez le chemin d'accès au répertoire cible, comme illustré dans l'exemple suivant.

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

    Vous pouvez mettre à jour le paramètre writeDirectory aussi souvent que vous le souhaitez. Une fois que le paramètre est mis à jour, AWS IoT Greengrass utilise le répertoire d'écriture nouvellement spécifié lors du démarrage suivant, mais ne migre pas le contenu du répertoire en écriture précédent.

  4. Maintenant que votre répertoire en écriture est configuré, vous pouvez, si vous le souhaitez, rendre le répertoire greengrass-root accessible en lecture seule. Pour en savoir plus, consultez Pour rendre le répertoire racine Greengrass accessible en lecture seule.

    Sinon, démarrez le démon AWS IoT Greengrass :

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

 

Pour rendre le répertoire racine Greengrass accessible en lecture seule

Cette étape est nécessaire uniquement si vous souhaitez que le répertoire racine Greengrass soit accessible en lecture seule. Le répertoire en écriture doit être configuré avant de commencer cette procédure.

  1. Accorder des autorisations d'accès aux répertoires requis :

    1. Accordez les autorisations en lecture et en écriture au propriétaire de config.json.

      sudo chmod 0600 /greengrass-root/config/config.json
    2. Définissez ggc_user en tant que propriétaire des répertoires certs et Lambda système.

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

      Les comptes ggc_user et ggc_group sont utilisés par défaut pour exécuter les fonctions Lambda du système. Si vous avez configuré l'identité d'accès par défaut au niveau du groupe de façon à utiliser différents comptes, vous devez octroyer des autorisations à cet utilisateur (UID) et à ce groupe (GID) à la place.

  2. Rendez le répertoire greengrass-root accessible en lecture seule en utilisant la méthode de votre choix.

    Note

    Une des méthodes pour rendre le répertoire greengrass-root accessible en lecture seule consiste à monter le répertoire en lecture seule. Toutefois, pour appliquer des mises à jour over-the-air (OTA) au logiciel AWS IoT Greengrass Core dans un répertoire monté, le répertoire doit d'abord être démonté, puis remonté après la mise à jour. Vous pouvez ajouter ces opérations umount et mount aux scripts ota_pre_update et ota_post_update. Pour plus d'informations sur les mises à jour OTA, consultez Agent de mise à jour OTA Greengrass et Commande managedRespawn avec mises à jour OTA.

  3. Lancez le démon.

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

    Si les autorisations de l'étape 1 ne sont pas correctement définies, le démon ne démarre pas.

Configuration des paramètres MQTT

Dans l'AWS IoT Greengrassenvironnement, les appareils clients locaux, les fonctions Lambda, les connecteurs et les composants du système peuvent communiquer entre eux et avec. AWS IoT Core Toutes les communications passent par le noyau, qui gère les abonnements autorisant la communication MQTT entre les entités.

Pour de plus amples informations sur les paramètres MQTT que vous pouvez configurer pour AWS IoT Greengrass, consultez les sections suivantes :

Note

OPC-UA est une norme d'échange d'informations pour la communication industrielle. Pour implémenter la prise en charge de l'OPC-UA sur le cœur de Greengrass, vous pouvez utiliser le connecteur IoT. SiteWise Le connecteur envoie les données d'appareil industrielles provenant de serveurs OPC-UA aux propriétés des ressources dans AWS IoT SiteWise.

Message de qualité de service

AWS IoT Greengrass prend en charge les niveaux de qualité de service (QoS) 0 ou 1, en fonction de votre configuration, ainsi que de la cible et de la direction de la communication. Le noyau Greengrass agit comme un client pour la communication avec AWS IoT Core et comme un courtier de messages pour la communication sur le réseau local.

Le noyau en tant que client et que courtier de messages local.

Pour plus d'informations sur MQTT et QoS, consultez Getting Started sur le site Web de MQTT.

Communication avec le AWS Cloud
  • Les messages sortants utilisent QoS 1

    Le noyau envoie des messages destinés aux AWS Cloud cibles à l'aide de QoS 1. AWS IoT Greengrassutilise une file de messages MQTT pour traiter ces messages. Si la livraison du message n'est pas confirmée parAWS IoT, le message est mis en attente pour être réessayé ultérieurement. Le message ne peut pas être réessayé si la file d'attente est pleine. La confirmation de remise du message peut aider à minimiser les pertes de données dues à une connectivité intermittente.

    Comme les messages sortants doivent AWS IoT utiliser QoS 1, le débit maximal auquel le cœur de Greengrass peut envoyer des messages dépend de la latence entre le cœur et. AWS IoT Chaque fois que le noyau envoie un message, il attend d'AWS IoTavoir accusé réception du message avant d'envoyer le message suivant. Par exemple, si le temps d'aller-retour entre le cœur et le sien Région AWS est de 50 millisecondes, le cœur peut envoyer jusqu'à 20 messages par seconde. Tenez compte de ce comportement lorsque vous choisissez l'Région AWSendroit où votre cœur se connecte. Pour ingérer de gros volumes de données IoT dans leAWS Cloud, vous pouvez utiliser le gestionnaire de flux.

    Pour plus d'informations sur la file d'attente de messages MQTT, notamment sur la façon de configurer un cache de stockage local capable de conserver les messages destinés aux AWS Cloud cibles, consultezFile d'attente de messages MQTT pour les cibles cloud.

  • Les messages entrants utilisent le niveau de qualité QoS 0 (par défaut) ou QoS 1

    Par défaut, le noyau s'abonne avec QoS 0 aux messages AWS Cloud provenant des sources. Si vous activez les sessions persistantes, le noyau s'abonne avec le niveau QoS 1. Cela peut permettre de réduire les pertes de données dues à l'intermittence de la connexion. Pour gérer le niveau de qualité QoS pour ces abonnements, vous configurez les paramètres de persistance sur le composant système spouleur local.

    Pour plus d'informations, notamment sur la manière de permettre au noyau d'établir une session persistante avec AWS Cloud des cibles, consultezSessions persistantes MQTT avec AWS IoT Core.

Communication avec les cibles locales

Toutes les communications locales utilisent le niveau QoS 0. Le noyau tente d'envoyer un message à une cible locale, qui peut être une fonction Greengrass Lambda, un connecteur ou un appareil client. Le noyau ne stocke pas de messages et ne confirme pas la livraison. Les messages peuvent être supprimés n'importe où entre les composants.

Note

Bien que la communication directe entre les fonctions Lambda n'utilise pas la messagerie MQTT, le comportement est le même.

File d'attente de messages MQTT pour les cibles cloud

Les messages MQTT destinés aux AWS Cloud cibles sont mis en file d'attente en attente de traitement. Les messages en attente sont traités selon l'ordre FIFO (premier entré, premier sorti). Lorsqu'un message est traité et publié dans AWS IoT Core, il est supprimé de la file d'attente.

Par défaut, le cœur de Greengrass stocke en mémoire les messages non traités destinés aux cibles. AWS Cloud Si vous le souhaitez, vous pouvez configurer le noyau pour stocker les messages non traités dans une mémoire cache locale. Contrairement au stockage en mémoire, le cache de stockage local peut être conservé malgré les redémarrages du noyau (par exemple, après le déploiement d'un groupe ou un redémarrage de l'appareil), ce qui permet à AWS IoT Greengrass de continuer à traiter les messages. Vous pouvez également configurer la taille du stockage.

Avertissement

Le noyau de Greengrass peut mettre en file d'attente des messages MQTT dupliqués lorsqu'il perd la connexion, car il tente à nouveau une opération de publication avant que le client MQTT ne détecte qu'il est hors ligne. Pour éviter les messages MQTT dupliqués pour les cibles du cloud, configurez la keepAlive valeur du noyau à moins de la moitié de sa mqttOperationTimeout valeur. Pour plus d’informations, consultez Fichier de configuration de AWS IoT Greengrass Core.

AWS IoT Greengrassutilise le composant du système de spouleur (fonction GGCloudSpooler Lambda) pour gérer la file d'attente de messages. Vous pouvez utiliser les variables d'environnement GGCloudSpooler suivantes pour configurer les paramètres de stockage.

  • GG_CONFIG_STORAGE_TYPE. Emplacement de la file d'attente de messages. Les valeurs suivantes sont valides :

    • FileSystem. Stockez les messages non traités dans le cache de stockage local sur le disque du périphérique principal physique. Lorsque le noyau redémarre, les messages mis en file d'attente sont conservés en vue de leur traitement. Les messages sont supprimés une fois qu'ils sont traités.

    • Memory (default). Les messages non traités sont stockés en mémoire. Lorsque le noyau redémarre, les messages mis en file d'attente sont perdus.

      Cette option est optimisée pour les périphériques avec des capacités matérielles restreintes. Lorsque vous utilisez cette configuration, nous vous recommandons de déployer des groupes ou de redémarrer l'appareil lorsque l'interruption de service est la moins importante.

  • GG_CONFIG_MAX_SIZE_BYTES. Taille du stockage, en octets. Cette valeur peut être n'importe quel nombre entier non négatif supérieur ou égal à 262144 (256 Ko) ; une taille plus petite empêche le logiciel AWS IoT Greengrass Core de démarrer. La taille par défaut est de 2.5 Mo. Lorsque la taille limite est atteinte, les messages les plus anciens de la file d'attente sont remplacés par de nouveaux messages.

Note

Cette fonctionnalité est disponible pour AWS IoT Greengrass Core v1.6 et versions ultérieures. Les versions antérieures utilisent le stockage en mémoire avec une taille de file d'attente de 2,5 Mo. Vous ne pouvez pas configurer les paramètres de stockage pour les versions antérieures.

Pour mettre en cache des messages dans le stockage local

Vous pouvez configurer AWS IoT Greengrass pour mettre en cache des messages dans le système de fichiers, afin qu'ils soient conservés lors des redémarrages du noyau. Pour ce faire, vous déployez une version de définition de fonction dans laquelle la fonction GGCloudSpooler définit le type de stockage sur FileSystem. Vous devez utiliser l'API AWS IoT Greengrass pour configurer le cache de stockage local. Vous ne pouvez pas réaliser cette opération dans la console.

La procédure suivante utilise la commande create-function-definition-versionCLI pour configurer le spouleur afin d'enregistrer les messages en file d'attente dans le système de fichiers. Elle configure également une file d'attente d'une taille de 2,6 Mo.

  1. Obtenez les ID du groupe et de la version de groupe Greengrass cible. Cette procédure suppose qu'il s'agit de la dernière version du groupe et du groupe. La requête suivante renvoie le dernier groupe créé.

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

    Vous pouvez également procéder à une interrogation par nom. Les noms de groupe ne devant pas nécessairement être uniques, plusieurs groupes peuvent être renvoyés.

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

    Vous pouvez également trouver ces valeurs dans la AWS IoT console. L'ID du groupe s'affiche sur la page Paramètres du groupe. Les identifiants de version du groupe sont affichés dans l'onglet Déploiements du groupe.

  2. Copiez les valeurs LatestVersion et Id du groupe cible dans la sortie.

  3. Obtenez la version de groupe la plus récente.

    • Remplacez group-id par la propriété Id que vous avez copiée.

    • Remplacez latest-group-version-id par l’LatestVersion que vous avez copié.

    aws greengrass get-group-version \ --group-id group-id \ --group-version-id latest-group-version-id
  4. À partir de l'objet Definition de la sortie, copiez le CoreDefinitionVersionArn et les ARN de tous les autres composants de groupe à l'exception de FunctionDefinitionVersionArn. Vous utilisez ces valeurs lorsque vous créez une nouvelle version de groupe.

  5. Depuis FunctionDefinitionVersionArn dans la sortie, copiez l'ID de la définition de fonction. L'ID est le GUID qui suit le segment functions dans l'ARN, comme illustré dans l'exemple suivant.

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

    Vous pouvez également créer une définition de fonction en exécutant la create-function-definitioncommande, puis en copiant l'ID depuis la sortie.

  6. Ajoutez une version de définition de fonction à la définition de fonction.

    • function-definition-idRemplacez-le par celui Id que vous avez copié pour la définition de la fonction.

    • arbitrary-function-idRemplacez-le par un nom pour la fonction, tel quespooler-function.

    • Ajoutez au tableau toutes les fonctions Lambda que vous souhaitez inclure dans cette version. functions Vous pouvez utiliser la get-function-definition-versioncommande pour obtenir les fonctions Greengrass Lambda à partir d'une version de définition de fonction existante.

    Avertissement

    Assurez-vous de spécifier une valeur pour GG_CONFIG_MAX_SIZE_BYTES qui soit supérieure ou égale à 262 144. Une taille plus petite empêche le logiciel AWS IoT Greengrass Core de démarrer.

    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"}]'
    Note

    Si vous avez précédemment défini la variable d'environnement GG_CONFIG_SUBSCRIPTION_QUALITY pour prendre en charge les sessions persistantes avec AWS IoT Core, incluez-la dans cette instance de fonction.

  7. Copiez l'Arn de la version de définition de fonction à partir de la sortie.

  8. Créez une version de groupe contenant la fonction Lambda du système.

    • Remplacez group-id par l'Id du groupe.

    • core-definition-version-arnRemplacez-le par celui CoreDefinitionVersionArn que vous avez copié à partir de la dernière version du groupe.

    • function-definition-version-arnRemplacez-le par celui Arn que vous avez copié pour la nouvelle version de définition de fonction.

    • Remplacez les ARN des autres composants de groupe (par exemple SubscriptionDefinitionVersionArn ou DeviceDefinitionVersionArn) que vous avez copiés de la version de groupe la plus récente.

    • Supprimez tous les paramètres inutilisés. Par exemple, supprimez --resource-definition-version-arn si votre version de groupe ne contient aucune ressource.

    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. Copiez la Version à partir de la sortie. Il s'agit de l'ID de la nouvelle version de groupe.

  10. Déployez le groupe avec la nouvelle version de groupe.

    • Remplacez group-id par l'Id que vous avez copié pour le groupe.

    • group-version-idRemplacez-le par celui Version que vous avez copié pour la nouvelle version du groupe.

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

Pour mettre à jour les paramètres de stockage, utilisez l'API AWS IoT Greengrass pour créer une nouvelle version de définition de fonction qui contient la fonction GGCloudSpooler avec la configuration mise à jour. Ensuite, ajoutez la version de définition de fonction à une nouvelle version de groupe (avec vos autres composants de groupe) et déployez la version de groupe. Si vous souhaitez restaurer la configuration par défaut, vous pouvez déployer une version de définition de fonction qui n'inclut pas la fonction GGCloudSpooler.

Cette fonction Lambda du système n'est pas visible dans la console. Toutefois, lorsque la fonction est ajoutée à la version de groupe la plus récente, elle est incluse dans les déploiements que vous effectuez à partir de la console (sauf si vous utilisez l'API pour la remplacer ou la supprimer).

Sessions persistantes MQTT avec AWS IoT Core

Cette fonction est disponible pour AWS IoT Greengrass Core v1.10 et versions ultérieures.

Un noyau Greengrass peut établir une session persistante avec le courtier de messages AWS IoT. Une session persistante est une connexion continue qui permet au noyau de recevoir les messages envoyés pendant qu'il est hors connexion. Le noyau est le client dans la connexion.

Dans une session persistante, le courtier de messages AWS IoT enregistre tous les abonnements souscrits par le noyau pendant la connexion. Si le cœur se déconnecte, le courtier de AWS IoT messages stocke les messages non reconnus et les nouveaux messages publiés sous QoS 1 et destinés à des cibles locales, telles que les fonctions Lambda et les appareils clients. Lorsque le noyau se reconnecte, la session persistante reprend son exécution et le courtier de messages AWS IoT envoie les messages stockés au noyau à un rythme maximum de 10 messages par seconde. Les sessions persistantes ont une période d'expiration par défaut de 1 heure, qui commence lorsque le courtier de messages détecte la déconnexion du noyau. Pour plus d'informations, consultez la section Sessions persistantes MQTT dans le manuel du AWS IoT développeur.

AWS IoT Greengrassutilise le composant du système de spouleur (fonction GGCloudSpooler Lambda) pour créer des abonnements ayant AWS IoT pour source. Vous pouvez utiliser la variable d'environnement GGCloudSpooler suivante pour configurer des sessions persistantes.

  • GG_CONFIG_SUBSCRIPTION_QUALITY. La qualité des abonnements qui ont AWS IoT comme source. Les valeurs suivantes sont valides :

    • AtMostOnce (default). Désactive les sessions persistantes. Les abonnements utilisent le niveau QoS 0.

    • AtLeastOncePersistent. Active les sessions persistantes. Définit l'indicateur cleanSession sur 0 dans les messages CONNECT et s'abonne au niveau QoS 1.

      Les messages publiés avec le niveau QoS 1 et qui sont reçus par le noyau atteignent obligatoirement la file d'attente de travail en mémoire du démon Greengrass. Le noyau accuse réception du message après son ajout à la file d'attente. Les communications ultérieures entre la file d'attente et la cible locale (par exemple, la fonction, le connecteur ou le périphérique Greengrass Lambda) sont envoyées sous la forme de QoS 0. AWS IoT Greengrassne garantit pas la livraison aux cibles locales.

      Note

      Vous pouvez utiliser la propriété de configuration maxWorkItemCount pour contrôler la taille de la file d'attente des éléments de travail. Par exemple, vous pouvez augmenter la taille de la file d'attente si votre charge de travail nécessite un trafic MQTT élevé.

      Lorsque les sessions persistantes sont activées, le noyau ouvre au moins une connexion supplémentaire pour l'échange de messages MQTT avec AWS IoT. Pour plus d’informations, consultez ID client pour les connexions MQTT avec AWS IoT.

Pour configurer des sessions permanentes MQTT

Vous pouvez configurer AWS IoT Greengrass pour utiliser les sessions persistantes avec AWS IoT Core. Pour ce faire, vous déployez une version de définition de fonction dans laquelle la fonction GGCloudSpooler définit la qualité d'abonnement sur AtLeastOncePersistent. Ce paramètre s'applique à tous vos abonnements ayant AWS IoT Core (cloud) comme source. Vous devez utiliser l'API AWS IoT Greengrass pour configurer les sessions persistantes. Vous ne pouvez pas réaliser cette opération dans la console.

La procédure suivante utilise la commande create-function-definition-versionCLI pour configurer le spouleur afin qu'il utilise des sessions persistantes. Dans cette procédure, on suppose que vous mettez à jour la configuration de la version de groupe la plus récente d'un groupe existant.

  1. Obtenez les ID du groupe et de la version de groupe Greengrass cible. Cette procédure suppose qu'il s'agit de la dernière version du groupe et du groupe. La requête suivante renvoie le dernier groupe créé.

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

    Vous pouvez également procéder à une interrogation par nom. Les noms de groupe ne devant pas nécessairement être uniques, plusieurs groupes peuvent être renvoyés.

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

    Vous pouvez également trouver ces valeurs dans la AWS IoT console. L'ID du groupe s'affiche sur la page Paramètres du groupe. Les identifiants de version du groupe sont affichés dans l'onglet Déploiements du groupe.

  2. Copiez les valeurs LatestVersion et Id du groupe cible dans la sortie.

  3. Obtenez la version de groupe la plus récente.

    • Remplacez group-id par la propriété Id que vous avez copiée.

    • Remplacez latest-group-version-id par l’LatestVersion que vous avez copié.

    aws greengrass get-group-version \ --group-id group-id \ --group-version-id latest-group-version-id
  4. À partir de l'objet Definition de la sortie, copiez le CoreDefinitionVersionArn et les ARN de tous les autres composants de groupe à l'exception de FunctionDefinitionVersionArn. Vous utilisez ces valeurs lorsque vous créez une nouvelle version de groupe.

  5. Depuis FunctionDefinitionVersionArn dans la sortie, copiez l'ID de la définition de fonction. L'ID est le GUID qui suit le segment functions dans l'ARN, comme illustré dans l'exemple suivant.

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

    Vous pouvez également créer une définition de fonction en exécutant la create-function-definitioncommande, puis en copiant l'ID depuis la sortie.

  6. Ajoutez une version de définition de fonction à la définition de fonction.

    • function-definition-idRemplacez-le par celui Id que vous avez copié pour la définition de la fonction.

    • arbitrary-function-idRemplacez-le par un nom pour la fonction, tel quespooler-function.

    • Ajoutez au tableau toutes les fonctions Lambda que vous souhaitez inclure dans cette version. functions Vous pouvez utiliser la get-function-definition-versioncommande pour obtenir les fonctions Greengrass Lambda à partir d'une version de définition de fonction existante.

    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"}]'
    Note

    Si vous avez précédemment défini les variables d'environnement GG_CONFIG_STORAGE_TYPEou GG_CONFIG_MAX_SIZE_BYTES afin de définir les paramètres de stockage, incluez-les dans cette instance de fonction.

  7. Copiez l'Arn de la version de définition de fonction à partir de la sortie.

  8. Créez une version de groupe contenant la fonction Lambda du système.

    • Remplacez group-id par l'Id du groupe.

    • core-definition-version-arnRemplacez-le par celui CoreDefinitionVersionArn que vous avez copié à partir de la dernière version du groupe.

    • function-definition-version-arnRemplacez-le par celui Arn que vous avez copié pour la nouvelle version de définition de fonction.

    • Remplacez les ARN des autres composants de groupe (par exemple SubscriptionDefinitionVersionArn ou DeviceDefinitionVersionArn) que vous avez copiés de la version de groupe la plus récente.

    • Supprimez tous les paramètres inutilisés. Par exemple, supprimez --resource-definition-version-arn si votre version de groupe ne contient aucune ressource.

    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. Copiez la Version à partir de la sortie. Il s'agit de l'ID de la nouvelle version de groupe.

  10. Déployez le groupe avec la nouvelle version de groupe.

    • Remplacez group-id par l'Id que vous avez copié pour le groupe.

    • group-version-idRemplacez-le par celui Version que vous avez copié pour la nouvelle version du groupe.

    aws greengrass create-deployment \ --group-id group-id \ --group-version-id group-version-id \ --deployment-type NewDeployment
  11. (Facultatif) Augmentez la propriété maxWorkItemCount dans le fichier de configuration principal. Cela peut aider le noyau à gérer l'augmentation du trafic MQTT et la communication avec les cibles locales.

Pour mettre à jour le noyau en fonction de ces modifications de configuration, utilisez l'API AWS IoT Greengrass pour créer une nouvelle version de définition de fonction contenant la fonction GGCloudSpooler avec la configuration mise à jour. Ensuite, ajoutez la version de définition de fonction à une nouvelle version de groupe (avec vos autres composants de groupe) et déployez la version de groupe. Si vous souhaitez restaurer la configuration par défaut, vous pouvez créer une version de définition de fonction qui n'inclut pas la fonction GGCloudSpooler.

Cette fonction Lambda du système n'est pas visible dans la console. Toutefois, lorsque la fonction est ajoutée à la version de groupe la plus récente, elle est incluse dans les déploiements que vous effectuez à partir de la console (sauf si vous utilisez l'API pour la remplacer ou la supprimer).

ID client pour les connexions MQTT avec AWS IoT

Cette fonctionnalité est disponible pour AWS IoT Greengrass Core v1.8 et versions ultérieures.

Le noyau Greengrass ouvre les connexions MQTT avec AWS IoT Core pour des opérations telles que la synchronisation shadow et la gestion de certificats. Pour ces connexions, les ID client prévisibles sont basés sur le nom de l'élément principal. Les identifiants clients prévisibles peuvent être utilisés avec les fonctionnalités de surveillance, d'audit et de tarification, y compris les événements AWS IoT Device Defender liés au AWS IoT cycle de vie. Vous pouvez aussi créer des ID client prévisibles logiques (par exemple, les modèles de stratégie d'abonnement basés sur les attributs de certificat).

GGC v1.9 and later

Deux composants de système Greengrass ouvrent des connexions MQTT avec AWS IoT Core. Ces composants utilisent les modèles suivants pour générer l'ID client pour les connexions.

Opération Modèle d'ID client
Déploiements

core-thing-name

Exemple : MyCoreThing

Utilisez cet ID client pour vous connecter, vous déconnecter, vous abonner et vous désabonner des notifications d'événement de cycle de vie.

Abonnements

core-thing-name-cn

Exemple : MyCoreThing-c01

nest un entier qui commence à 00 et augmente à chaque nouvelle connexion jusqu'à un maximum de 250. Le nombre de connexions est déterminé par le nombre d'appareils synchronisant leur état fantôme AWS IoT Core (maximum 2 500 par groupe) et par le nombre d'abonnements ayant cloud comme source dans le groupe (maximum 10 000 par groupe).

Le composant du système de spouleur se connecte pour échanger des messages relatifs AWS IoT Core à des abonnements avec une source ou une cible cloud. Le spouleur agit également en tant que proxy pour l'échange de messages entre AWS IoT Core d'une part et le service de shadow local ainsi que le gestionnaire de certificats d'appareils d'autre part.

Pour calculer le nombre de connexions MQTT par groupe, utilisez la formule suivante :

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

Où,

  • nombre de connexions pour l'agent de déploiement = 1.

  • nombre de connexions pour les abonnements =(2 subscriptions for supporting certificate generation + number of MQTT topics in AWS IoT Core + number of device shadows synced) / 50.

    • Où, 50 = le nombre maximum d'abonnements par connexion AWS IoT Core pouvant être pris en charge.

Note

Si vous activez les sessions persistantes pour l'abonnement avec AWS IoT Core, le noyau ouvre au moins une connexion supplémentaire à utiliser dans une session persistante. Les composants système ne prennent pas en charge les sessions persistantes ; ils ne peuvent donc pas partager cette connexion.

Pour réduire le nombre de connexions MQTT et réduire les coûts, vous pouvez utiliser les fonctions Lambda locales pour agréger les données à la périphérie. Vous envoyez ensuite les données agrégées auAWS Cloud. Par conséquent, vous utilisez moins de sujets MQTT dansAWS IoT Core. Pour plus d’informations, consultez Tarification d’AWS IoT Greengrass.

GGC v1.8

Plusieurs composants système Greengrass ouvrent des connexions MQTT avec AWS IoT Core. Ces composants utilisent les modèles suivants pour générer l'ID client pour les connexions.

Opération Modèle d'ID client
Déploiements

core-thing-name

Exemple : MyCoreThing

Utilisez cet ID client pour vous connecter, vous déconnecter, vous abonner et vous désabonner des notifications d'événement de cycle de vie.

Échange de messages MQTT avec AWS IoT Core

core-thing-name-spr

Exemple : MyCoreThing-spr

Synchronisation shadow

core-thing-name-snn

Exemple : MyCoreThing-s01

nn est un entier qui commence à 00 et s'incrémente à chaque nouvelle connexion jusqu'à un maximum de 03. Le nombre de connexions est déterminé par le nombre de périphériques (200 périphériques par groupe maximum) qui synchronisent leur état shadow avec AWS IoT Core (50 abonnements par connexion maximum).

Gestion des certificats de périphérique

core-thing-name-dcm

Exemple : MyCoreThing-dcm

Note

Dupliquer les ID client utilisés dans les connexions simultanées peut entraîner une boucle connexion-déconnexion infinie. Cela peut se produire si un autre périphérique est codé de manière irréversible pour utiliser le nom du périphérique principal comme ID client dans les connexions. Pour plus d'informations, consultez cette étape de dépannage.

Les appareils Greengrass sont également entièrement intégrés au service d'indexation de flotte d'AWS IoT Device Management. Cela vous permet d'indexer et de rechercher des appareils en fonction de leurs attributs, de leur état shadow et de leur état de connexion dans le cloud. Par exemple, les appareils Greengrass établissent au moins une connexion qui utilise le nom d'objet comme ID client, afin que vous puissiez utiliser l'indexation de connectivité des appareils pour détecter quels appareils Greengrass sont actuellement connectés à AWS IoT Core ou déconnectés de celui-ci. Pour plus d'informations, consultez la section Service d'indexation de flotte dans le Guide du AWS IoT développeur.

Configuration du port MQTT pour la messagerie locale

Cette fonctionnalité nécessite AWS IoT Greengrass Core v1.10 ou version ultérieure.

Le noyau de Greengrass agit en tant que courtier de messages local pour la messagerie MQTT entre les fonctions Lambda locales, les connecteurs et les appareils clients. Par défaut, le noyau utilise le port 8883 pour le trafic MQTT sur le réseau local. Vous pouvez modifier le port pour éviter un conflit avec d'autres logiciels s'exécutant sur le port 8883.

Pour configurer le numéro de port utilisé par le noyau pour le trafic MQTT local
  1. Exécutez la commande suivante pour arrêter le daemon Greengrass :

    cd /greengrass-root/ggc/core/ sudo ./greengrassd stop
  2. Ouvrez greengrass-root/config/config.json pour le modifier en tant qu'utilisateur su.

  3. Dans l'objet coreThing, ajoutez la propriété ggMqttPort et définissez la valeur sur le numéro de port que vous souhaitez utiliser. Les valeurs valides vont de 1 024 à 65 535. L'exemple suivant définit le numéro de port sur 9000.

    { "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. Lancez le démon.

    cd /greengrass-root/ggc/core/ sudo ./greengrassd start
  5. Si la détection IP automatique est activée pour le noyau, la configuration est terminée.

    Si la détection IP automatique n'est pas activée, vous devez mettre à jour les informations de connectivité du noyau. Cela permet aux appareils clients de recevoir le numéro de port correct lors des opérations de découverte afin d'acquérir des informations de connectivité de base. Vous pouvez utiliser la AWS IoT console ou l'AWS IoT GreengrassAPI pour mettre à jour les informations de connectivité de base. Pour cette procédure, vous mettez uniquement à jour le numéro de port. L'adresse IP locale du noyau reste la même.

    Pour mettre à jour les informations de connectivité du noyau (console)
    1. Sur la page de configuration du groupe, choisissez le noyau Greengrass.

    2. Sur la page des détails de base, choisissez l'onglet Points de terminaison du broker MQTT.

    3. Choisissez Gérer les points de terminaison, puis choisissez Ajouter un point de terminaison

    4. Entrez votre adresse IP locale actuelle et le nouveau numéro de port. L'exemple suivant définit le numéro de port 9000 pour l'adresse IP 192.168.1.8.

    5. Supprimez le point de terminaison obsolète, puis choisissez Mettre à jour

    Pour mettre à jour les informations de connectivité du noyau (API)
    • Utilisez l'action UpdateConnectivityInfo. L'exemple suivant utilise update-connectivity-info dans l'AWS CLI pour définir le numéro de port 9000 de l'adresse IP 192.168.1.8.

      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\"}]"
    Note

    Vous pouvez également configurer le port utilisé par le noyau pour la messagerie MQTT avec AWS IoT Core. Pour plus d’informations, consultez Connexion au port 443 ou via un proxy réseau.

Délai d'expiration pour les opérations de publication, d'abonnement et de désinscription dans le cadre des connexions MQTT avec AWS Cloud

Cette fonctionnalité est disponible dans AWS IoT Greengrass version 1.10.2 ou ultérieure.

Vous pouvez configurer le temps (en secondes) alloué au noyau Greengrass pour terminer une opération de publication, d'abonnement ou de désabonnement dans des connexions MQTT vers AWS IoT Core. Vous pouvez modifier ce paramètre si les opérations dépassent le délai d'attente en raison de contraintes de bande passante ou d'une latence élevée. Pour configurer ce paramètre dans le fichier config.json, ajoutez ou modifiez la propriété mqttOperationTimeout dans l'objet coreThing. Par exemple :

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

Le délai d’attente par défaut est de 5 secondes. Le délai d'attente minimum est de 5 secondes.

Activation de la la détection IP automatique

Vous pouvez configurer AWS IoT Greengrass pour permettre aux appareils clients d'un groupe Greengrass de découvrir automatiquement le noyau de Greengrass. Lorsque cette option est activée, le cœur surveille les modifications apportées à ses adresses IP. Si une adresse change, le noyau publie une liste d'adresses mise à jour. Ces adresses sont mises à la disposition des appareils clients appartenant au même groupe Greengrass que le noyau.

Note

La AWS IoT politique relative aux appareils clients doit greengrass:Discover autoriser les appareils à récupérer des informations de connectivité pour le cœur. Pour de plus amples informations sur cette instruction de stratégie, veuillez consulter Acvery Service Service Service.

Pour activer cette fonctionnalité depuis la AWS IoT Greengrass console, choisissez Détection automatique lorsque vous déployez votre groupe Greengrass pour la première fois. Vous pouvez également activer ou désactiver cette fonctionnalité sur la page de configuration du groupe en choisissant l'onglet Fonctions Lambda et en sélectionnant le détecteur IP. La détection automatique des adresses IP est activée si l'option Détecter et remplacer automatiquement les points de terminaison du broker MQTT est sélectionnée.

Pour gérer la découverte automatique avec l'AWS IoT GreengrassAPI, vous devez configurer la fonction Lambda IPDetector du système. La procédure suivante montre comment utiliser la commande create-function-definition-versionCLI pour configurer la découverte automatique du noyau de Greengrass.

  1. Obtenez les ID du groupe et de la version de groupe Greengrass cible. Cette procédure suppose qu'il s'agit de la dernière version du groupe et du groupe. La requête suivante renvoie le dernier groupe créé.

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

    Vous pouvez également procéder à une interrogation par nom. Les noms de groupe ne devant pas nécessairement être uniques, plusieurs groupes peuvent être renvoyés.

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

    Vous pouvez également trouver ces valeurs dans la AWS IoT console. L'ID du groupe s'affiche sur la page Paramètres du groupe. Les identifiants de version du groupe sont affichés dans l'onglet Déploiements du groupe.

  2. Copiez les valeurs LatestVersion et Id du groupe cible dans la sortie.

  3. Obtenez la version de groupe la plus récente.

    • Remplacez group-id par la propriété Id que vous avez copiée.

    • Remplacez latest-group-version-id par l’LatestVersion que vous avez copié.

    aws greengrass get-group-version \ --group-id group-id \ --group-version-id latest-group-version-id
  4. À partir de l'objet Definition de la sortie, copiez le CoreDefinitionVersionArn et les ARN de tous les autres composants de groupe à l'exception de FunctionDefinitionVersionArn. Vous utilisez ces valeurs lorsque vous créez une nouvelle version de groupe.

  5. Depuis FunctionDefinitionVersionArn dans la sortie, copiez l'ID de la définition de fonction et la version de la définition de fonction :

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

    Si vous le souhaitez, vous pouvez créer une définition de fonction en exécutant la commande create-function-definition, puis copier l'ID à partir de la sortie.

  6. Utilisez la commande get-function-definition-version pour obtenir l'état de la définition actuelle. Utilisez celui function-definition-idque vous avez copié pour définir la fonction. Par exemple, 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

    Notez les configurations de la fonction répertoriée. Vous devez inclure ces valeurs lorsque vous créez une nouvelle version de la définition de fonction. Vous évitez ainsi de perdre les paramètres de votre définition actuelle.

  7. Ajoutez une version de définition de fonction à la définition de fonction.

    • function-definition-idRemplacez-le par celui Id que vous avez copié pour la définition de la fonction. Par exemple, 4d941bc7-92a1-4f45-8d64 EXAMPLEf76c3.

    • arbitrary-function-idRemplacez-le par un nom pour la fonction, tel queauto-detection-function.

    • Ajoutez au functions tableau toutes les fonctions Lambda que vous souhaitez inclure dans cette version, telles que celles répertoriées à l'étape précédente.

    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. Copiez l'Arn de la version de définition de fonction à partir de la sortie.

  9. Créez une version de groupe contenant la fonction Lambda du système.

    • Remplacez group-id par l'Id du groupe.

    • core-definition-version-arnRemplacez-le par celui CoreDefinitionVersionArn que vous avez copié à partir de la dernière version du groupe.

    • function-definition-version-arnRemplacez-le par celui Arn que vous avez copié pour la nouvelle version de définition de fonction.

    • Remplacez les ARN des autres composants de groupe (par exemple SubscriptionDefinitionVersionArn ou DeviceDefinitionVersionArn) que vous avez copiés de la version de groupe la plus récente.

    • Supprimez tous les paramètres inutilisés. Par exemple, supprimez --resource-definition-version-arn si votre version de groupe ne contient aucune ressource.

    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. Copiez la Version à partir de la sortie. Il s'agit de l'ID de la nouvelle version de groupe.

  11. Déployez le groupe avec la nouvelle version de groupe.

    • Remplacez group-id par l'Id que vous avez copié pour le groupe.

    • group-version-idRemplacez-le par celui Version que vous avez copié pour la nouvelle version du groupe.

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

Si vous souhaitez entrer manuellement l'adresse IP de votre noyau Greengrass, vous pouvez effectuer ce didacticiel avec une autre définition de fonction, qui n'inclut pas la fonction IPDetector. Cela empêchera la fonction de détection de localiser et de saisir automatiquement votre adresse IP principale de Greengrass.

Cette fonction Lambda du système n'est pas visible dans la console Lambda. Lorsque la fonction est ajoutée à la version de groupe la plus récente, elle est incluse dans les déploiements que vous effectuez à partir de la console, sauf si vous utilisez l'API pour la remplacer ou la supprimer.

Configuration du système d'initialisation pour le lancement du démon Greengrass

Il est recommandé de configurer votre système d'initialisation de manière à lancer le démon Greengrass au démarrage système, en particulier lorsque vous gérez d'importantes flottes d'appareils.

Note

Si vous avez utilisé apt pour installer le logiciel AWS IoT Greengrass Core, vous pouvez utiliser les scripts systemd pour activer le lancement au démarrage. Pour plus d’informations, consultez Utiliser des scripts systemd pour gérer le cycle de vie du démon Greengrass.

Il existe différents types de système d'initialisation, par exemple initd, systemd et SystemV, qui utilisent des paramètres de configuration similaires. L'exemple suivant est un fichier de service pour systemd. Le paramètre Type est défini sur forking, car greengrassd (utilisé pour lancer Greengrass) duplique le processus du démon Greengrass, et le paramètre Restart est défini sur on-failure pour demander à systemd de relancer Greengrass si celui-ci entre dans un état d'échec.

Note

Pour voir si votre appareil utilise systemd, exécutez le script check_ggc_dependencies comme décrit dans Module 1. Ensuite, pour utiliser systemd, assurez-vous que le paramètre useSystemd dans config.json est défini sur yes.

[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

Consultez aussi