Importer une fonction Lambda en tant que composant (console) - 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.

Importer une fonction Lambda en tant que composant (console)

Lorsque vous utilisez la AWS IoT Greengrassconsole pour créer un composant de fonction Lambda, vous importez une AWS Lambda fonction existante, puis vous la configurez pour créer un composant qui s'exécute sur votre appareil Greengrass.

Avant de commencer, passez en revue les conditions requises pour exécuter les fonctions Lambda sur les appareils Greengrass.

Étape 1 : Choisissez une fonction Lambda à importer

  1. Dans le menu de navigation de la AWS IoT Greengrassconsole, sélectionnez Composants.

  2. Sur la page Composants, choisissez Créer un composant.

  3. Sur la page Créer un composant, sous Informations sur le composant, choisissez Importer la fonction Lambda.

  4. Dans Fonction Lambda, recherchez et choisissez la fonction Lambda que vous souhaitez importer.

    AWS IoT Greengrasscrée le composant avec le nom de la fonction Lambda.

  5. Dans la version de la fonction Lambda, choisissez la version à importer. Vous ne pouvez pas choisir des alias Lambda comme. $LATEST

    AWS IoT Greengrasscrée le composant avec la version de la fonction Lambda en tant que version sémantique valide. Par exemple, si la version de votre fonction équivaut à 3, la version du composant devient 3.0.0.

Étape 2 : Configuration des paramètres de la fonction Lambda

Sur la page Créer un composant, sous Configuration de la fonction Lambda, configurez les paramètres suivants à utiliser pour exécuter la fonction Lambda.

  1. (Facultatif) Ajoutez la liste des sources d'événements auxquelles la fonction Lambda est abonnée pour les messages professionnels. Vous pouvez spécifier des sources d'événements pour abonner cette fonction aux messages de publication/d'abonnement locaux et aux messages AWS IoT Core MQTT. La fonction Lambda est appelée lorsqu'elle reçoit un message d'une source d'événement.

    Note

    Pour abonner cette fonction à des messages provenant d'autres fonctions ou composants Lambda, déployez l'ancien composant routeur d'abonnement lorsque vous déployez ce composant de fonction Lambda. Lorsque vous déployez l'ancien composant routeur d'abonnement, spécifiez les abonnements utilisés par la fonction Lambda.

    Sous Sources d'événements, procédez comme suit pour ajouter une source d'événement :

    1. Pour chaque source d'événement que vous ajoutez, spécifiez les options suivantes :

      • Sujet : sujet auquel s'abonner pour recevoir des messages.

      • Type : type de source d'événement. Sélectionnez parmi les options suivantes :

        • Publication/abonnement locaux — Abonnez-vous aux messages de publication/d'abonnement locaux.

          Si vous utilisez Greengrass nucleus v2.6.0 ou version ultérieure et Lambda Manager v2.2.5 ou version ultérieure, vous pouvez utiliser des caractères génériques de sujet MQTT (+et#) dans le sujet lorsque vous spécifiez ce type.

        • AWS IoT CoreMQTT — Abonnez-vous aux messages AWS IoT Core MQTT.

          Vous pouvez utiliser des caractères génériques de rubrique MQTT (+et#) dans la rubrique lorsque vous spécifiez ce type.

    2. Pour ajouter une autre source d'événement, choisissez Ajouter une source d'événement et répétez l'étape précédente. Pour supprimer une source d'événement, choisissez Supprimer à côté de la source d'événement que vous souhaitez supprimer.

  2. Pour Timeout (secondes), entrez la durée maximale en secondes pendant laquelle une fonction Lambda non épinglée peut s'exécuter avant son expiration. Le durée par défaut est de 3 secondes.

  3. Pour Épinglé, indiquez si le composant de la fonction Lambda est épinglé. La valeur par défaut est True.

    • Une fonction Lambda épinglée (ou à longue durée de vie) démarre au démarrage et continue de s'AWS IoT Greengrassexécuter dans son propre conteneur.

    • Une fonction Lambda non épinglée (ou à la demande) démarre uniquement lorsqu'elle reçoit un élément de travail et s'arrête une fois qu'elle est restée inactive pendant une durée d'inactivité maximale spécifiée. Si la fonction comporte plusieurs éléments de travail, le logiciel AWS IoT Greengrass Core crée plusieurs instances de la fonction.

  4. (Facultatif) Sous Paramètres supplémentaires, définissez les paramètres de la fonction Lambda suivants.

    • Délai d'expiration du statut (secondes) : intervalle en secondes pendant lequel le composant de fonction Lambda envoie des mises à jour de statut au composant Lambda Manager. Ce paramètre s'applique uniquement aux fonctions épinglées. Le durée par défaut est 60 secondes.

    • Taille maximale de la file d'attente : taille maximale de la file de messages pour le composant de la fonction Lambda. Le logiciel AWS IoT Greengrass Core stocke les messages dans une file d'attente FIFO (premier entré, premier sorti) jusqu'à ce qu'il puisse exécuter la fonction Lambda pour consommer chaque message. La valeur par défaut est de 1 000 messages.

    • Nombre maximum d'instances : nombre maximal d'instances qu'une fonction Lambda non épinglée peut exécuter simultanément. La valeur par défaut est de 100 instances.

    • Durée d'inactivité maximale (secondes) : durée maximale en secondes pendant laquelle une fonction Lambda non épinglée peut être inactive avant que le logiciel AWS IoT Greengrass Core n'arrête son processus. Le durée par défaut est 60 secondes.

    • Type de codage : type de charge utile pris en charge par la fonction Lambda. Sélectionnez parmi les options suivantes :

      • JSON

      • Binaire

      La valeur par défaut est JSON.

  5. (Facultatif) Spécifiez la liste des arguments de ligne de commande à transmettre à la fonction Lambda lors de son exécution.

    1. Sous Paramètres supplémentaires, Arguments de traitement, choisissez Ajouter un argument.

    2. Pour chaque argument que vous ajoutez, entrez l'argument que vous souhaitez transmettre à la fonction.

    3. Pour supprimer un argument, choisissez Supprimer à côté de l'argument que vous souhaitez supprimer.

  6. (Facultatif) Spécifiez les variables d'environnement disponibles pour la fonction Lambda lors de son exécution. Les variables d'environnement vous permettent de stocker et de mettre à jour les paramètres de configuration sans avoir à modifier le code de fonction.

    1. Sous Paramètres supplémentaires, Variables d'environnement, choisissez Ajouter une variable d'environnement.

    2. Pour chaque variable d'environnement que vous ajoutez, spécifiez les options suivantes :

      • Clé : nom de la variable.

      • Valeur — La valeur par défaut de cette variable.

    3. Pour supprimer une variable d'environnement, choisissez Supprimer à côté de la variable d'environnement que vous souhaitez supprimer.

Étape 3 : (Facultatif) Spécifiez les plateformes prises en charge pour la fonction Lambda

Tous les appareils principaux possèdent des attributs relatifs au système d'exploitation et à l'architecture. Lorsque vous déployez le composant de fonction Lambda, le logiciel AWS IoT Greengrass principal compare les valeurs de plate-forme que vous spécifiez avec les attributs de plate-forme du périphérique principal afin de déterminer si la fonction Lambda est prise en charge sur ce périphérique.

Note

Vous pouvez également spécifier des attributs de plate-forme personnalisés lorsque vous déployez le composant Greengrass nucleus sur un appareil principal. Pour plus d'informations, consultez le paramètre Platform overrides du composant Greengrass nucleus.

Sous Configuration de la fonction Lambda, Paramètres supplémentaires, Plateformes, procédez comme suit pour spécifier les plates-formes prises en charge par cette fonction Lambda.

  1. Pour chaque plateforme, spécifiez les options suivantes :

    • Système d'exploitation : nom du système d'exploitation de la plate-forme. À l'heure actuelle, la seule valeur prise en charge est linux.

    • Architecture : architecture du processeur de la plate-forme. Les valeurs prises en charge sont :

      • amd64

      • arm

      • aarch64

      • x86

  2. Pour ajouter une autre plateforme, choisissez Ajouter une plateforme et répétez l'étape précédente. Pour supprimer une plate-forme prise en charge, choisissez Supprimer à côté de la plate-forme que vous souhaitez supprimer.

Étape 4 : (Facultatif) Spécifiez les dépendances des composants pour la fonction Lambda

Les dépendances des composants identifient les composants supplémentaires AWS fournis ou les composants personnalisés utilisés par votre fonction. Lorsque vous déployez le composant de fonction Lambda, le déploiement inclut ces dépendances pour l'exécution de votre fonction.

Important

Pour importer une fonction Lambda que vous avez créée pour être exécutée sur la version AWS IoT Greengrass 1, vous devez définir les dépendances des composants individuels pour les fonctionnalités utilisées par votre fonction, telles que les secrets, les ombres locales et le gestionnaire de flux. Définissez ces composants comme des dépendances fixes afin que le composant de votre fonction Lambda redémarre si la dépendance change d'état. Pour plus d’informations, consultez Importer les fonctions Lambda de la V1.

Sous Configuration de la fonction Lambda, Paramètres supplémentaires, Dépendances des composants, procédez comme suit pour spécifier les dépendances des composants pour votre fonction Lambda.

  1. Choisissez Ajouter une dépendance.

  2. Pour chaque dépendance de composant que vous ajoutez, spécifiez les options suivantes :

    • Nom du composant : nom du composant. Par exemple, entrez aws.greengrass.StreamManager pour inclure le composant du gestionnaire de flux.

    • Exigence de version — La contrainte de version sémantique de style npm qui identifie les versions compatibles de cette dépendance de composant. Vous pouvez spécifier une version unique ou une série de versions. Par exemple, entrez ^1.0.0 pour spécifier que cette fonction Lambda dépend de n'importe quelle version de la première version majeure du composant du gestionnaire de flux. Pour plus d'informations sur les contraintes de version sémantiques, consultez le calculateur npm semver.

    • Type : type de dépendance. Sélectionnez parmi les options suivantes :

      • Difficile — Le composant de la fonction Lambda redémarre si la dépendance change d'état. Il s'agit de la sélection par défaut.

      • Soft — Le composant de la fonction Lambda ne redémarre pas si la dépendance change d'état.

  3. Pour supprimer une dépendance de composant, choisissez Supprimer à côté de la dépendance de composant

Étape 5 : (Facultatif) Exécuter la fonction Lambda dans un conteneur

Par défaut, les fonctions Lambda s'exécutent dans un environnement d'exécution isolé au sein du logiciel AWS IoT Greengrass Core. Vous pouvez également choisir d'exécuter la fonction Lambda en tant que processus sans aucune isolation (c'est-à-dire en mode sans conteneur).

Dans Configuration du processus Linux, pour le mode isolation, choisissez l'une des options suivantes pour sélectionner la conteneurisation de votre fonction Lambda :

  • Conteneur Greengrass — La fonction Lambda s'exécute dans un conteneur. Il s'agit de la sélection par défaut.

  • Pas de conteneur : la fonction Lambda s'exécute comme un processus sans aucune isolation.

Si vous exécutez la fonction Lambda dans un conteneur, procédez comme suit pour configurer la configuration du processus pour la fonction Lambda.

  1. Configurez la quantité de mémoire et les ressources système, telles que les volumes et les périphériques, à mettre à la disposition du conteneur.

    Sous Paramètres du conteneur, procédez comme suit.

    1. Pour Taille de la mémoire, entrez la taille de mémoire que vous souhaitez allouer au conteneur. Vous pouvez spécifier la taille de la mémoire en Mo ou en kB.

    2. Pour le dossier sys en lecture seule, indiquez si le conteneur peut ou non lire les informations du dossier du /sys périphérique. La valeur par défaut est False.

  2. (Facultatif) Configurez les volumes locaux auxquels la fonction Lambda conteneurisée peut accéder. Lorsque vous définissez un volume, le logiciel AWS IoT Greengrass Core monte les fichiers source sur la destination à l'intérieur du conteneur.

    1. Sous Volumes, choisissez Ajouter un volume.

    2. Pour chaque volume que vous ajoutez, spécifiez les options suivantes :

      • Volume physique : chemin d'accès au dossier source sur le périphérique principal.

      • Volume logique : chemin d'accès au dossier de destination dans le conteneur.

      • Autorisation — (Facultatif) L'autorisation d'accéder au dossier source depuis le conteneur. Sélectionnez parmi les options suivantes :

        • Lecture seule — La fonction Lambda dispose d'un accès en lecture seule au dossier source. Il s'agit de la sélection par défaut.

        • Lecture-écriture — La fonction Lambda dispose d'un accès en lecture/écriture au dossier source.

      • Ajouter le propriétaire du groupe — (Facultatif) Indique s'il faut ou non ajouter le groupe système qui exécute le composant de fonction Lambda en tant que propriétaire du dossier source. La valeur par défaut est False.

    3. Pour supprimer un volume, choisissez Supprimer à côté du volume que vous souhaitez supprimer.

  3. (Facultatif) Configurez les périphériques du système local auxquels la fonction Lambda conteneurisée peut accéder.

    1. Sous Appareils, choisissez Ajouter un appareil.

    2. Pour chaque appareil que vous ajoutez, définissez les options suivantes :

      • Chemin de montage : chemin d'accès au périphérique système sur le périphérique principal.

      • Autorisation — (Facultatif) L'autorisation d'accéder au périphérique système depuis le conteneur. Sélectionnez parmi les options suivantes :

        • Lecture seule — La fonction Lambda dispose d'un accès en lecture seule au périphérique système. Il s'agit de la sélection par défaut.

        • Lecture-écriture — La fonction Lambda dispose d'un accès en lecture/écriture au dossier source.

      • Ajouter le propriétaire du groupe — (Facultatif) Indique s'il faut ou non ajouter le groupe système qui exécute le composant de fonction Lambda en tant que propriétaire du périphérique système. La valeur par défaut est False.

Étape 6 : Création du composant de fonction Lambda

Après avoir configuré les paramètres de votre composant de fonction Lambda, choisissez Create pour terminer la création du nouveau composant.

Pour exécuter la fonction Lambda sur votre appareil principal, vous pouvez ensuite déployer le nouveau composant sur vos appareils principaux. Pour plus d'informations, consultez Déployer AWS IoT Greengrass des composants sur des appareils.