Configuration du logiciel AWS IoT Greengrass de base - AWS IoT Greengrass

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 du logiciel AWS IoT Greengrass de base

Le logiciel AWS IoT Greengrass Core propose des options que vous pouvez utiliser pour configurer le logiciel. Vous pouvez créer des déploiements pour configurer le logiciel AWS IoT Greengrass principal sur chaque appareil principal.

Déployez le composant Greengrass nucleus

AWS IoT Greengrass fournit le logiciel AWS IoT Greengrass Core sous forme de composant que vous pouvez déployer sur vos appareils principaux Greengrass. Vous pouvez créer un déploiement pour appliquer la même configuration à plusieurs appareils principaux de Greengrass. Pour plus d’informations, consultez Noyau de Greengrass et Mettre à jour le logiciel AWS IoT Greengrass principal (OTA).

Configurer le noyau Greengrass en tant que service système

Vous devez configurer le logiciel AWS IoT Greengrass Core en tant que service système dans le système d'initialisation de votre appareil pour effectuer les opérations suivantes :

  • Démarrez le logiciel AWS IoT Greengrass Core au démarrage de l'appareil. Il s'agit d'une bonne pratique si vous gérez de grands parcs d'appareils.

  • Installez et exécutez les composants du plugin. Plusieurs composants AWS fournis sont des modules d'extension, ce qui leur permet de s'interfacer directement avec le noyau de Greengrass. Pour plus d'informations sur les types de composants, consultezTypes de composants.

  • Appliquez over-the-air (OTA) les mises à jour au logiciel principal de l'appareil AWS IoT Greengrass principal. Pour de plus amples informations, veuillez consulter Mettre à jour le logiciel AWS IoT Greengrass principal (OTA).

  • Permettez aux composants de redémarrer le logiciel AWS IoT Greengrass principal ou le périphérique principal lorsqu'un déploiement met à jour le composant vers une nouvelle version ou met à jour certains paramètres de configuration. Pour plus d'informations, consultez l'étape du cycle de vie du bootstrap.

Important

Sur les appareils Windows Core, vous devez configurer le logiciel AWS IoT Greengrass Core en tant que service système.

Configurer le noyau en tant que service système (Linux)

Les appareils Linux prennent en charge différents systèmes d'initialisation, tels que initd, systemd et systemV. Vous utilisez --setup-system-service true cet argument lorsque vous installez le logiciel AWS IoT Greengrass Core pour démarrer le noyau en tant que service système et le configurez pour qu'il soit lancé au démarrage du périphérique. Le programme d'installation configure le logiciel AWS IoT Greengrass Core en tant que service système avec systemd.

Vous pouvez également configurer manuellement le noyau pour qu'il s'exécute en tant que service système. L'exemple suivant est un fichier de service pour systemd.

[Unit] Description=Greengrass Core [Service] Type=simple PIDFile=/greengrass/v2/alts/loader.pid RemainAfterExit=no Restart=on-failure RestartSec=10 ExecStart=/bin/sh /greengrass/v2/alts/current/distro/bin/loader [Install] WantedBy=multi-user.target

Après avoir configuré le service système, vous pouvez exécuter les commandes suivantes pour configurer le démarrage du périphérique au démarrage et pour démarrer ou arrêter le logiciel AWS IoT Greengrass Core.

  • Pour vérifier l'état du service (systemd)

    sudo systemctl status greengrass.service
  • Pour permettre au noyau de démarrer au démarrage de l'appareil.

    sudo systemctl enable greengrass.service
  • Pour empêcher le noyau de démarrer au démarrage de l'appareil.

    sudo systemctl disable greengrass.service
  • Pour démarrer le logiciel AWS IoT Greengrass Core.

    sudo systemctl start greengrass.service
  • Pour arrêter le logiciel AWS IoT Greengrass Core.

    sudo systemctl stop greengrass.service

Configuration du noyau en tant que service système (Windows)

Vous utilisez --setup-system-service true cet argument lorsque vous installez le logiciel AWS IoT Greengrass Core pour démarrer le noyau en tant que service Windows et le configurez pour qu'il démarre au démarrage du périphérique.

Après avoir configuré le service, vous pouvez exécuter les commandes suivantes pour configurer le démarrage du périphérique au démarrage et pour démarrer ou arrêter le logiciel AWS IoT Greengrass Core. Vous devez exécuter l'invite de commande ou PowerShell en tant qu'administrateur pour exécuter ces commandes.

Windows Command Prompt (CMD)
  • Pour vérifier l'état du service

    sc query "greengrass"
  • Pour permettre au noyau de démarrer au démarrage de l'appareil.

    sc config "greengrass" start=auto
  • Pour empêcher le noyau de démarrer au démarrage de l'appareil.

    sc config "greengrass" start=disabled
  • Pour démarrer le logiciel AWS IoT Greengrass Core.

    sc start "greengrass"
  • Pour arrêter le logiciel AWS IoT Greengrass Core.

    sc stop "greengrass"
    Note

    Sur les appareils Windows, le logiciel AWS IoT Greengrass Core ignore ce signal d'arrêt lorsqu'il arrête les processus des composants Greengrass. Si le logiciel AWS IoT Greengrass Core ignore le signal d'arrêt lorsque vous exécutez cette commande, attendez quelques secondes, puis réessayez.

PowerShell
  • Pour vérifier l'état du service

    Get-Service -Name "greengrass"
  • Pour permettre au noyau de démarrer au démarrage de l'appareil.

    Set-Service -Name "greengrass" -Status stopped -StartupType automatic
  • Pour empêcher le noyau de démarrer au démarrage de l'appareil.

    Set-Service -Name "greengrass" -Status stopped -StartupType disabled
  • Pour démarrer le logiciel AWS IoT Greengrass Core.

    Start-Service -Name "greengrass"
  • Pour arrêter le logiciel AWS IoT Greengrass Core.

    Stop-Service -Name "greengrass"
    Note

    Sur les appareils Windows, le logiciel AWS IoT Greengrass Core ignore ce signal d'arrêt lorsqu'il arrête les processus des composants Greengrass. Si le logiciel AWS IoT Greengrass Core ignore le signal d'arrêt lorsque vous exécutez cette commande, attendez quelques secondes, puis réessayez.

Contrôlez l'allocation de mémoire à l'aide JVM d'options

Si vous utilisez AWS IoT Greengrass un appareil dont la mémoire est limitée, vous pouvez utiliser les options de machine virtuelle Java (JVM) pour contrôler la taille maximale du tas, les modes de collecte des déchets et les options du compilateur, qui contrôlent la quantité de mémoire utilisée par le logiciel AWS IoT Greengrass Core. La taille du segment de mémoire JVM détermine la quantité de mémoire qu'une application peut utiliser avant la collecte des déchets ou avant que l'application ne manque de mémoire. La taille maximale du tas indique la quantité maximale de mémoire qu'il est JVM possible d'allouer lors de l'extension du tas lors d'une activité intense.

Pour contrôler l'allocation de mémoire, créez un nouveau déploiement ou révisez un déploiement existant qui inclut le composant noyau, et spécifiez vos JVM options dans le paramètre de jvmOptions configuration de la configuration du composant noyau.

Selon vos besoins, vous pouvez exécuter le logiciel AWS IoT Greengrass Core avec une allocation de mémoire réduite ou avec une allocation de mémoire minimale.

Allocation de mémoire réduite

Pour exécuter le logiciel AWS IoT Greengrass Core avec une allocation de mémoire réduite, nous vous recommandons d'utiliser l'exemple de mise à jour de fusion de configuration suivant pour définir JVM les options de votre configuration Nucleus :

{ "jvmOptions": "-XX:+UseSerialGC -XX:TieredStopAtLevel=1" }
Allocation de mémoire minimale

Pour exécuter le logiciel AWS IoT Greengrass Core avec une allocation de mémoire minimale, nous vous recommandons d'utiliser l'exemple de mise à jour de fusion de configuration suivant pour définir JVM les options de votre configuration Nucleus :

{ "jvmOptions": "-Xmx32m -XX:+UseSerialGC -Xint" }
Important

L'exécution du logiciel AWS IoT Greengrass Core avec une allocation de mémoire minimale peut avoir un impact significatif sur les performances des systèmes peu performants, car ils JVM effectueront plus de traitement en utilisant moins de mémoire. Nous vous recommandons de régler les options pour équilibrer vos besoins en termes de mémoire et de performances.

Ces exemples de mise à jour par fusion de configuration utilisent les JVM options suivantes :

-XX:+UseSerialGC

Spécifie d'utiliser la collecte des déchets en série pour l'JVMespace de stockage. Le ramasseur de déchets en série est plus lent, mais utilise moins de mémoire que les autres implémentations de collecte de JVM déchets.

-XX:TieredStopAtLevel=1

Indique au compilateur Java () JVM d'utiliser le compilateur Java just-in-time (JIT) une seule fois. Comme le code JIT compilé utilise de l'espace dans la mémoire de l'appareil, l'utilisation du JIT compilateur à plusieurs reprises consomme plus de mémoire qu'une seule compilation.

-XmxNNm

Définit la taille maximale du JVM tas.

Important

Si vous définissez une taille de tas maximale trop faible, vous risquez de ralentir les performances ou de provoquer out-of-memory des erreurs. Nous vous recommandons de mesurer votre utilisation actuelle du tas avant de définir une taille maximale avec l'-XmxNNmoption. Configurez votre JVM avec l'-XX:NativeMemoryTracking=detailJVMoption. Mesurez ensuite votre utilisation actuelle du tas à l'aide de la demande de VM.native_memory commande dans l'utilitaire jcmd.

Si la mesure du tas n'est pas une option, utilisez-la -Xmx64m comme valeur de départ pour limiter la taille du tas à 64 Mo. Vous pouvez ensuite diminuer progressivement la taille maximale du tas à partir de là. Pour une allocation de mémoire minimale, -Xmx32m utilisez-la comme valeur de départ pour limiter la taille du tas à 32 Mo.

Vous pouvez augmenter ou diminuer la -Xmx valeur en fonction de vos besoins réels ; toutefois, nous vous recommandons vivement de ne pas définir la taille maximale du segment de mémoire en dessous de 16 Mo. La taille de JVM tas nécessaire peut également varier au fil du temps en fonction des composants du plug-in déployés sur le périphérique principal. Si la taille maximale du tas est trop faible pour votre environnement, le logiciel AWS IoT Greengrass Core peut rencontrer des erreurs inattendues en raison d'une mémoire insuffisante. Si les performances sont plus lentes ou si vous rencontrez des erreurs en raison d'une mémoire insuffisante, revenez à un paramètre dont le fonctionnement a été vérifié. Par exemple, si la taille normale de votre tas engagé est41428KB, utilisez-le -Xmx40m pour limiter légèrement l'utilisation du tas.

-Xint

Indique au compilateur () de JVM ne pas utiliser le compilateur just-in-time (JIT). Au lieu de cela, il JVM s'exécute en mode interprété uniquement. Ce mode est plus lent (potentiellement 20 fois plus lent pour les déploiements sur des systèmes bas de gamme) que l'exécution de code JIT compilé ; toutefois, le code compilé n'utilise aucun espace en mémoire.

Pour plus d'informations sur la création de mises à jour de fusion de configuration, consultezMettre à jour les configurations des composants.

Configurer l'utilisateur qui exécute les composants

Le logiciel AWS IoT Greengrass Core peut exécuter des processus de composants en tant qu'utilisateur du système et en tant que groupe différent de celui qui exécute le logiciel. Cela augmente la sécurité, car vous pouvez exécuter le logiciel AWS IoT Greengrass principal en tant que root ou en tant qu'utilisateur administrateur, sans accorder ces autorisations aux composants qui s'exécutent sur le périphérique principal.

Le tableau suivant indique les types de composants que le logiciel AWS IoT Greengrass Core peut exécuter en tant qu'utilisateur que vous spécifiez. Pour de plus amples informations, veuillez consulter Types de composants.

Type de composant Configuration de l'utilisateur du composant

Noyau

Non

Plugin

Non

Générique

Oui

Lambda (non conteneurisé)

Oui

Lambda (conteneurisé)

Oui

Vous devez créer l'utilisateur du composant avant de pouvoir le spécifier dans une configuration de déploiement. Sur les appareils Windows, vous devez également enregistrer le nom d'utilisateur et le mot de passe de l'utilisateur dans l'instance du gestionnaire d'informations d'identification du LocalSystem compte. Pour de plus amples informations, veuillez consulter Configuration d'un utilisateur de composant sur les appareils Windows.

Lorsque vous configurez l'utilisateur du composant sur un appareil basé sur Linux, vous pouvez éventuellement spécifier un groupe. Vous spécifiez l'utilisateur et le groupe séparés par deux points (:) au format suivant : user:group Si vous ne spécifiez aucun groupe, le logiciel AWS IoT Greengrass Core utilise par défaut le groupe principal de l'utilisateur. Vous pouvez utiliser le nom ou l'ID pour identifier l'utilisateur et le groupe.

Sur les appareils basés sur Linux, vous pouvez également exécuter des composants en tant qu'utilisateur du système qui n'existe pas, également appelé utilisateur inconnu, pour renforcer la sécurité. Un processus Linux peut signaler tout autre processus exécuté par le même utilisateur. Un utilisateur inconnu n'exécute aucun autre processus. Vous pouvez donc exécuter des composants en tant qu'utilisateur inconnu pour empêcher les composants de signaler d'autres composants sur le périphérique principal. Pour exécuter des composants en tant qu'utilisateur inconnu, spécifiez un ID utilisateur qui n'existe pas sur le périphérique principal. Vous pouvez également spécifier un ID de groupe qui n'existe pas pour fonctionner en tant que groupe inconnu.

Vous pouvez configurer l'utilisateur pour chaque composant et pour chaque périphérique principal.

  • Configuration pour un composant

    Vous pouvez configurer chaque composant pour qu'il s'exécute avec un utilisateur spécifique à ce composant. Lorsque vous créez un déploiement, vous pouvez spécifier l'utilisateur pour chaque composant dans la runWith configuration de ce composant. Le logiciel AWS IoT Greengrass Core exécute les composants en tant qu'utilisateur spécifié si vous les configurez. Sinon, il exécute par défaut les composants en tant qu'utilisateur par défaut que vous configurez pour le périphérique principal. Pour plus d'informations sur la spécification de l'utilisateur du composant dans la configuration de déploiement, consultez le paramètre runWithde configuration dansCréer des déploiements.

  • Configuration de l'utilisateur par défaut pour un appareil principal

    Vous pouvez configurer un utilisateur par défaut que le logiciel AWS IoT Greengrass Core utilise pour exécuter les composants. Lorsque le logiciel AWS IoT Greengrass Core exécute un composant, il vérifie si vous avez spécifié un utilisateur pour ce composant et l'utilise pour exécuter le composant. Si le composant ne spécifie aucun utilisateur, le logiciel AWS IoT Greengrass Core exécute le composant en tant qu'utilisateur par défaut que vous avez configuré pour le périphérique principal. Pour de plus amples informations, veuillez consulter Configuration de l'utilisateur du composant par défaut.

Note

Sur les appareils Windows, vous devez spécifier au moins un utilisateur par défaut pour exécuter les composants.

Sur les appareils basés sur Linux, les considérations suivantes s'appliquent si vous ne configurez pas un utilisateur pour exécuter des composants :

  • Si vous exécutez le logiciel AWS IoT Greengrass Core en tant qu'utilisateur root, le logiciel n'exécutera aucun composant. Vous devez spécifier un utilisateur par défaut pour exécuter les composants si vous exécutez en tant que root.

  • Si vous exécutez le logiciel AWS IoT Greengrass Core en tant qu'utilisateur non root, le logiciel exécute les composants sous le nom de cet utilisateur.

Configuration d'un utilisateur de composant sur les appareils Windows

Pour configurer un utilisateur de composants sur un appareil Windows
  1. Créez l'utilisateur du composant dans le LocalSystem compte de l'appareil.

    net user /add component-user password
  2. Utilisez l' PsExec utilitaire Microsoft pour stocker le nom d'utilisateur et le mot de passe de l'utilisateur du composant dans l'instance Credential Manager du LocalSystem compte.

    psexec -s cmd /c cmdkey /generic:component-user /user:component-user /pass:password
    Note

    Sur les appareils Windows, le LocalSystem compte exécute le noyau Greengrass et vous devez utiliser PsExec l'utilitaire pour stocker les informations utilisateur du composant dans LocalSystem le compte. L'application Credential Manager stocke ces informations dans le compte Windows de l'utilisateur actuellement connecté, plutôt que dans le LocalSystem compte.

Configuration de l'utilisateur du composant par défaut

Vous pouvez utiliser un déploiement pour configurer l'utilisateur par défaut sur un appareil principal. Dans ce déploiement, vous mettez à jour la configuration des composants du noyau.

Note

Vous pouvez également définir l'utilisateur par défaut lorsque vous installez le logiciel AWS IoT Greengrass Core avec l'--component-default-useroption. Pour de plus amples informations, veuillez consulter Installer le logiciel AWS IoT Greengrass Core.

Créez un déploiement qui spécifie la mise à jour de configuration suivante pour le aws.greengrass.Nucleus composant.

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

L'utilisateur que vous spécifiez doit exister, et le nom d'utilisateur et le mot de passe de cet utilisateur doivent être stockés dans l'instance du gestionnaire d'informations d'identification du LocalSystem compte sur votre appareil Windows. Pour de plus amples informations, veuillez consulter Configuration d'un utilisateur de composant sur les appareils Windows.

L'exemple suivant définit un déploiement pour un appareil basé sur Linux configuré en tant qu'utilisateur par défaut et ggc_user ggc_group en tant que groupe par défaut. La mise à jour de merge configuration nécessite un JSON objet sérialisé.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"posixUser\":\"ggc_user:ggc_group\"}}" } } } }

Configuration des limites de ressources système pour les composants

Note

Cette fonctionnalité est disponible pour les versions 2.4.0 et ultérieures du composant Greengrass nucleus. AWS IoT Greengrass ne prend actuellement pas en charge cette fonctionnalité sur les appareils Windows principaux.

Vous pouvez configurer la quantité CPU et l'RAMutilisation maximales que les processus de chaque composant peuvent utiliser sur le périphérique principal.

Le tableau suivant indique les types de composants compatibles avec les limites de ressources du système. Pour de plus amples informations, veuillez consulter Types de composants.

Type de composant Configurer les limites des ressources du système

Noyau

Non

Plugin

Non

Générique

Oui

Lambda (non conteneurisé)

Oui

Lambda (conteneurisé)

Non

Important

Les limites de ressources système ne sont pas prises en charge lorsque vous exécutez le logiciel AWS IoT Greengrass Core dans un conteneur Docker.

Vous pouvez configurer les limites de ressources système pour chaque composant et pour chaque périphérique principal.

  • Configuration pour un composant

    Vous pouvez configurer chaque composant avec des limites de ressources système spécifiques à ce composant. Lorsque vous créez un déploiement, vous pouvez spécifier les limites de ressources système pour chaque composant du déploiement. Si le composant prend en charge les limites de ressources du système, le logiciel AWS IoT Greengrass principal applique ces limites aux processus du composant. Si vous ne spécifiez aucune limite de ressources système pour un composant, le logiciel AWS IoT Greengrass Core utilise les valeurs par défaut que vous avez configurées pour le périphérique principal. Pour de plus amples informations, veuillez consulter Créer des déploiements.

  • Configuration des valeurs par défaut pour un périphérique principal

    Vous pouvez configurer les limites de ressources système par défaut que le logiciel AWS IoT Greengrass Core applique aux composants compatibles avec ces limites. Lorsque le logiciel AWS IoT Greengrass Core exécute un composant, il applique les limites de ressources système que vous spécifiez pour ce composant. Si ce composant ne spécifie pas de limites de ressources système, le logiciel AWS IoT Greengrass Core applique les limites de ressources système par défaut que vous configurez pour le périphérique principal. Si vous ne spécifiez pas de limites de ressources système par défaut, le logiciel AWS IoT Greengrass Core n'applique aucune limite de ressources système par défaut. Pour de plus amples informations, veuillez consulter Configuration des limites de ressources système par défaut.

Configuration des limites de ressources système par défaut

Vous pouvez déployer le composant Greengrass nucleus pour configurer les limites de ressources système par défaut pour un périphérique principal. Pour configurer les limites de ressources système par défaut, créez un déploiement qui spécifie la mise à jour de configuration suivante pour le aws.greengrass.Nucleus composant.

{ "runWithDefault": { "systemResourceLimits": { "cpu": cpuTimeLimit, "memory": memoryLimitInKb } } }

L'exemple suivant définit un déploiement qui configure la limite de CPU temps à2, ce qui équivaut à 50 % d'utilisation sur un appareil à 4 CPU cœurs. Cet exemple configure également l'utilisation de la mémoire à 100 Mo.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"systemResourceLimits\":\"cpus\":2,\"memory\":102400}}}" } } } }

Connexion au port 443 ou via un proxy réseau

AWS IoT Greengrass les périphériques principaux communiquent avec eux AWS IoT Core en utilisant le protocole MQTT de messagerie avec authentification TLS du client. Par convention, MQTT over TLS utilise le port 8883. Toutefois, par mesure de sécurité, les environnements restrictifs peuvent limiter le trafic entrant et sortant à un petit nombre de TCP ports. Par exemple, un pare-feu d'entreprise peut ouvrir le port 443 pour le HTTPS trafic, mais fermer d'autres ports utilisés pour des protocoles moins courants, tels que le port 8883 pour le MQTT trafic. D'autres environnements restrictifs peuvent exiger que tout le trafic passe par un proxy avant de se connecter à Internet.

Note

Les appareils principaux de Greengrass qui exécutent le composant Greengrass nucleus v2.0.3 et versions antérieures utilisent le port 8443 pour se connecter au point de terminaison du plan de données. AWS IoT Greengrass Ces appareils doivent être en mesure de se connecter à ce point de terminaison sur le port 8443. Pour de plus amples informations, veuillez consulter Autoriser le trafic des appareils via un proxy ou un pare-feu.

Pour activer la communication dans ces scénarios, AWS IoT Greengrass propose les options de configuration suivantes :

  • MQTTcommunication via le port 443. Si votre réseau autorise les connexions au port 443, vous pouvez configurer le périphérique principal de Greengrass pour utiliser le port 443 pour le MQTT trafic au lieu du port par défaut 8883. Il peut s'agir d'une connexion directe au port 443 ou d'une connexion via un serveur réseau proxy. Contrairement à la configuration par défaut, qui utilise l'authentification client basée sur des certificats, MQTT le port 443 utilise le rôle de service de périphérique pour l'authentification.

    Pour de plus amples informations, veuillez consulter Configuration MQTT via le port 443.

  • HTTPScommunication via le port 443. Le logiciel AWS IoT Greengrass Core envoie le HTTPS trafic via le port 8443 par défaut, mais vous pouvez le configurer pour utiliser le port 443. AWS IoT Greengrass utilise l'TLSextension Application Layer Protocol Network (ALPN) pour activer cette connexion. Comme dans le cas de la configuration par défaut, HTTPS le port 443 utilise l'authentification client basée sur des certificats.

    Important

    Pour utiliser ALPN et activer HTTPS la communication via le port 443, votre périphérique principal doit exécuter Java 8 update 252 ou version ultérieure. Toutes les mises à jour de Java version 9 et ultérieures sont également prises en chargeALPN.

    Pour de plus amples informations, veuillez consulter Configuration HTTPS via le port 443.

  • Connexion via un proxy réseau. Vous pouvez configurer un serveur proxy réseau pour qu'il serve d'intermédiaire pour la connexion au périphérique principal de Greengrass. AWS IoT Greengrass prend en charge l'authentification de base pour HTTP et les HTTPS proxys.

    Les appareils Greengrass Core doivent exécuter Greengrass nucleus v2.5.0 ou version ultérieure pour utiliser des proxys. HTTPS

    Le logiciel AWS IoT Greengrass Core transmet la configuration du proxy aux composants via les variables ALL_PROXYHTTP_PROXY,HTTPS_PROXY, et d'NO_PROXYenvironnement. Les composants doivent utiliser ces paramètres pour se connecter via le proxy. Les composants utilisent des bibliothèques communes (telles que boto3URL, c et le requests package python) qui utilisent généralement ces variables d'environnement par défaut pour établir des connexions. Si un composant spécifie également ces variables d'environnement, AWS IoT Greengrass il ne les remplace pas.

    Pour de plus amples informations, veuillez consulter Configuration d'un proxy réseau.

Configuration MQTT via le port 443

Vous pouvez configurer MQTT via le port 443 sur des périphériques principaux existants ou lorsque vous installez le logiciel AWS IoT Greengrass Core sur un nouveau périphérique principal.

Configuration MQTT via le port 443 sur les périphériques principaux existants

Vous pouvez utiliser un déploiement pour configurer MQTT via le port 443 sur un périphérique central ou un groupe de périphériques principaux. Dans ce déploiement, vous mettez à jour la configuration des composants du noyau. Le noyau redémarre lorsque vous mettez à jour sa mqtt configuration.

Pour configurer MQTT via le port 443, créez un déploiement qui spécifie la mise à jour de configuration suivante pour le aws.greengrass.Nucleus composant.

{ "mqtt": { "port": 443 } }

L'exemple suivant définit un déploiement configuré MQTT via le port 443. La mise à jour de merge configuration nécessite un JSON objet sérialisé.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"mqtt\":{\"port\":443}}" } } } }

Configuration MQTT via le port 443 lors de l'installation

Vous pouvez configurer MQTT via le port 443 lorsque vous installez le logiciel AWS IoT Greengrass Core sur un périphérique principal. Utilisez l'argument du programme d'--init-configinstallation pour configurer MQTT via le port 443. Vous pouvez spécifier cet argument lors de l'installation à l'aide du provisionnement manuel, du provisionnement du parc ou du provisionnement personnalisé.

Configuration HTTPS via le port 443

Cette fonctionnalité nécessite la Noyau de Greengrass version 2.0.4 ou ultérieure.

Vous pouvez configurer HTTPS via le port 443 sur des périphériques principaux existants ou lorsque vous installez le logiciel AWS IoT Greengrass Core sur un nouveau périphérique principal.

Configuration HTTPS via le port 443 sur les périphériques principaux existants

Vous pouvez utiliser un déploiement pour configurer HTTPS via le port 443 sur un périphérique central ou un groupe de périphériques principaux. Dans ce déploiement, vous mettez à jour la configuration des composants du noyau.

Pour configurer HTTPS via le port 443, créez un déploiement qui spécifie la mise à jour de configuration suivante pour le aws.greengrass.Nucleus composant.

{ "greengrassDataPlanePort": 443 }

L'exemple suivant définit un déploiement configuré HTTPS via le port 443. La mise à jour de merge configuration nécessite un JSON objet sérialisé.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"greengrassDataPlanePort\":443}" } } } }

Configuration HTTPS via le port 443 lors de l'installation

Vous pouvez configurer HTTPS via le port 443 lorsque vous installez le logiciel AWS IoT Greengrass Core sur un périphérique principal. Utilisez l'argument du programme d'--init-configinstallation pour configurer HTTPS via le port 443. Vous pouvez spécifier cet argument lors de l'installation à l'aide du provisionnement manuel, du provisionnement du parc ou du provisionnement personnalisé.

Configuration d'un proxy réseau

Suivez la procédure décrite dans cette section pour configurer les appareils principaux de Greengrass afin qu'ils se connectent à Internet via un proxy HTTP ou un proxy HTTPS réseau. Pour plus d'informations sur les points de terminaison et les ports utilisés par les appareils principaux, consultezAutoriser le trafic des appareils via un proxy ou un pare-feu.

Important

Si votre appareil principal exécute une version du noyau Greengrass antérieure à la version 2.4.0, le rôle de votre appareil doit autoriser les autorisations suivantes pour utiliser un proxy réseau :

  • iot:Connect

  • iot:Publish

  • iot:Receive

  • iot:Subscribe

Cela est nécessaire car l'appareil utilise les AWS informations d'identification du service d'échange de jetons pour authentifier les MQTT connexions à AWS IoT. L'appareil reçoit et installe des déploiements depuis le AWS Cloud, de sorte que votre appareil ne fonctionnera pas si vous ne définissez pas ces autorisations sur son rôle. MQTT Les appareils utilisent généralement des certificats X.509 pour authentifier MQTT les connexions, mais ils ne peuvent pas le faire pour s'authentifier lorsqu'ils utilisent un proxy.

Pour plus d'informations sur la façon de configurer le rôle de l'appareil, consultezAutoriser les appareils principaux à interagir avec les AWS services.

Configuration d'un proxy réseau sur les appareils principaux existants

Vous pouvez utiliser un déploiement pour configurer un proxy réseau sur un périphérique central unique ou sur un groupe de périphériques principaux. Dans ce déploiement, vous mettez à jour la configuration des composants du noyau. Le noyau redémarre lorsque vous mettez à jour sa networkProxy configuration.

Pour configurer un proxy réseau, créez un déploiement pour le aws.greengrass.Nucleus composant qui fusionne la mise à jour de configuration suivante. Cette mise à jour de configuration contient l'networkProxy objet.

{ "networkProxy": { "noProxyAddresses": "http://192.168.0.1,www.example.com", "proxy": { "url": "https://my-proxy-server:1100" } } }

L'exemple suivant définit un déploiement qui configure un proxy réseau. La mise à jour de merge configuration nécessite un JSON objet sérialisé.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"networkProxy\":{\"noProxyAddresses\":\"http://192.168.0.1,www.example.com\",\"proxy\":{\"url\":\"https://my-proxy-server:1100\",\"username\":\"Mary_Major\",\"password\":\"pass@word1357\"}}}" } } } }

Configuration d'un proxy réseau lors de l'installation

Vous pouvez configurer un proxy réseau lorsque vous installez le logiciel AWS IoT Greengrass Core sur un périphérique principal. Utilisez l'argument du programme d'--init-configinstallation pour configurer le proxy réseau. Vous pouvez spécifier cet argument lors de l'installation à l'aide du provisionnement manuel, du provisionnement du parc ou du provisionnement personnalisé.

Permettre au périphérique principal de faire confiance à un HTTPS proxy

Lorsque vous configurez un périphérique principal pour utiliser un HTTPS proxy, vous devez ajouter la chaîne de certificats du serveur proxy à celle du périphérique principal pour lui permettre de faire confiance au HTTPS proxy. Dans le cas contraire, le périphérique principal risque de rencontrer des erreurs lorsqu'il tente d'acheminer le trafic via le proxy. Ajoutez le certificat CA du serveur proxy au fichier de certificat CA racine Amazon de l'appareil principal.

Pour permettre au périphérique principal de faire confiance au HTTPS proxy
  1. Recherchez le fichier de certificat Amazon Root CA sur l'appareil principal.

    • Si vous avez installé le logiciel AWS IoT Greengrass Core avec provisionnement automatique, le fichier de certificat racine Amazon CA existe à l'/greengrass/v2/rootCA.pemadresse.

    • Si vous avez installé le logiciel AWS IoT Greengrass Core avec un provisionnement manuel ou par flotte, le fichier de certificat racine de l'autorité de certification Amazon peut se trouver à /greengrass/v2/AmazonRootCA1.pem l'adresse.

    Si le certificat CA racine d'Amazon n'existe pas à ces emplacements, enregistrez l'system.rootCaPathétablissement /greengrass/v2/config/effectiveConfig.yaml pour trouver son emplacement.

  2. Ajoutez le contenu du fichier de certificat CA du serveur proxy au fichier de certificat CA racine d'Amazon.

    L'exemple suivant montre un certificat CA de serveur proxy ajouté au fichier de certificat CA racine d'Amazon.

    -----BEGIN CERTIFICATE----- MIIEFTCCAv2gAwIQWgIVAMHSAzWG/5YVRYtRQOxXUTEpHuEmApzGCSqGSIb3DQEK \nCwUAhuL9MQswCQwJVUzEPMAVUzEYMBYGA1UECgwP1hem9uLmNvbSBJbmMuMRww ... content of proxy CA certificate ... +vHIRlt0e5JAm5\noTIZGoFbK82A0/nO7f/t5PSIDAim9V3Gc3pSXxCCAQoFYnui GaPUlGk1gCE84a0X\n7Rp/lND/PuMZ/s8YjlkY2NmYmNjMCAXDTE5MTEyN2cM216 gJMIADggEPADf2/m45hzEXAMPLE= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDQTCCAimgF6AwIBAgITBmyfz/5mjAo54vB4ikPmljZKyjANJmApzyMZFo6qBg ADA5MQswCQYDVQQGEwJVUzEPMA0tMVT8QtPHRh8jrdkGA1UEChMGDV3QQDExBBKW ... content of root CA certificate ... o/ufQJQWUCyziar1hem9uMRkwFwYVPSHCb2XV4cdFyQzR1KldZwgJcIQ6XUDgHaa 5MsI+yMRQ+hDaXJiobldXgjUka642M4UwtBV8oK2xJNDd2ZhwLnoQdeXeGADKkpy rqXRfKoQnoZsG4q5WTP46EXAMPLE -----END CERTIFICATE-----

L' networkProxy objet

Utilisez l'objet networkProxy pour spécifier les informations sur le proxy réseau. Cet objet contient les informations suivantes :

noProxyAddresses

(Facultatif) Liste séparée par des virgules d'adresses IP ou de noms d'hôtes exemptés du proxy.

proxy

Le proxy auquel se connecter. Cet objet contient les informations suivantes :

url

Le URL du serveur proxy au formatscheme://userinfo@host:port.

  • scheme— Le schéma, qui doit être http ouhttps.

    Important

    Les appareils Greengrass Core doivent exécuter Greengrass nucleus v2.5.0 ou version ultérieure pour utiliser des proxys. HTTPS

    Si vous configurez un HTTPS proxy, vous devez ajouter le certificat CA du serveur proxy au certificat CA racine Amazon de l'appareil principal. Pour de plus amples informations, veuillez consulter Permettre au périphérique principal de faire confiance à un HTTPS proxy.

  • userinfo— (Facultatif) Les informations relatives au nom d'utilisateur et au mot de passe. Si vous spécifiez ces informations dans leurl, le périphérique principal de Greengrass ignore les username champs et. password

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

  • port— (Facultatif) Le numéro de port. Si vous ne spécifiez pas le port, le périphérique principal de Greengrass utilise les valeurs par défaut suivantes :

    • http— 80

    • https— 443

username

(Facultatif) Le nom d'utilisateur qui authentifie le serveur proxy.

password

(Facultatif) Le mot de passe qui authentifie le serveur proxy.

Utiliser un certificat d'appareil signé par une autorité de certification privée

Si vous utilisez une autorité de certification privée (CA) personnalisée, vous devez définir le noyau greengrassDataPlaneEndpoint de Greengrass sur. iotdata Vous pouvez définir cette option lors du déploiement ou de l'installation à l'aide de l'argument --init-config installer.

Vous pouvez personnaliser le point de terminaison du plan de données Greengrass auquel l'appareil se connecte. Vous pouvez définir cette option de configuration iotdata pour définir le point de terminaison du plan de données Greengrass sur le même point de terminaison que le point de terminaison de données IoT, que vous pouvez spécifier avec le. iotDataEndpoint

Configuration des MQTT délais d'expiration et des paramètres de cache

Dans l' AWS IoT Greengrass environnement, les composants peuvent être utilisés MQTT pour communiquer avec AWS IoT Core. Le logiciel AWS IoT Greengrass Core gère les MQTT messages pour les composants. Lorsque le périphérique principal perd la connexion au AWS Cloud, le logiciel met en cache les MQTT messages pour réessayer ultérieurement lorsque la connexion sera rétablie. Vous pouvez configurer des paramètres tels que les délais d'expiration des messages et la taille du cache. Pour plus d'informations, consultez les paramètres de mqtt.spooler configuration mqtt et du composant Greengrass nucleus.

AWS IoT Core impose des quotas de service à son courtier de MQTT messages. Ces quotas peuvent s'appliquer aux messages que vous envoyez entre des appareils principaux et AWS IoT Core. Pour plus d'informations, consultez la section sur les quotas de service du courtier de AWS IoT Core messages dans le Références générales AWS.