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.
Étape 5 : Créez votre composant dans le AWS IoT Greengrass service
Lorsque vous avez terminé de développer un composant sur votre appareil principal, vous pouvez le télécharger vers le AWS IoT Greengrass
service dans le AWS Cloud. Vous pouvez également créer le composant directement dans la AWS IoT Greengrass console
-
Téléchargez les artefacts des composants dans un compartiment S3.
-
Ajoutez l'Amazon Simple Storage Service (Amazon S3) de chaque artefact à la URI recette du composant.
-
Créez un composant à AWS IoT Greengrass partir de la recette du composant.
Dans cette section, vous devez effectuer ces étapes sur votre appareil principal Greengrass pour télécharger votre composant Hello World sur le AWS IoT Greengrass service.
-
Utilisez un compartiment S3 dans votre AWS compte pour héberger les artefacts des AWS IoT Greengrass composants. Lorsque vous déployez le composant sur un périphérique principal, celui-ci télécharge les artefacts du composant depuis le compartiment.
Vous pouvez utiliser un compartiment S3 existant ou en créer un nouveau.
-
Dans la console Amazon S3
, sous Buckets, choisissez Create bucket. -
Pour Nom du compartiment, entrez un nom de compartiment unique. Par exemple, vous pouvez utiliser
greengrass-component-artifacts-
. Remplacezregion
-123456789012
123456789012
avec votre identifiant de AWS compte etregion
avec celui Région AWS que vous utilisez pour ce didacticiel. -
Pour AWS la région, sélectionnez la AWS région que vous utilisez pour ce didacticiel.
-
Choisissez Créer un compartiment.
-
Sous Buckets, choisissez le bucket que vous avez créé, téléchargez le
hello_world.py
script dans leartifacts/com.example.HelloWorld/1.0.0
dossier du bucket. Pour plus d'informations sur le téléchargement d'objets vers des compartiments S3, consultez la section Chargement d'objets dans le guide de l'utilisateur d'Amazon Simple Storage Service. -
Copiez le S3 URI de l'
hello_world.py
objet dans le compartiment S3. Cela URI devrait ressembler à l'exemple suivant. Remplacez amzn-s3-demo-bucket par le nom du compartiment S3.s3://amzn-s3-demo-bucket/artifacts/com.example.HelloWorld/1.0.0/hello_world.py
-
-
Autorisez le périphérique principal à accéder aux artefacts des composants dans le compartiment S3.
Chaque appareil principal a un IAMrôle central qui lui permet d'interagir avec le AWS cloud AWS IoT et d'envoyer des journaux vers celui-ci. Ce rôle de périphérique n'autorise pas l'accès aux compartiments S3 par défaut. Vous devez donc créer et associer une politique permettant au périphérique principal de récupérer les artefacts des composants du compartiment S3.
Si le rôle de votre appareil autorise déjà l'accès au compartiment S3, vous pouvez ignorer cette étape. Sinon, créez une IAM politique autorisant l'accès et associez-la au rôle, comme suit :
-
Dans le menu de navigation de la IAMconsole
, choisissez Politiques, puis choisissez Créer une politique. -
JSONDans l'onglet, remplacez le contenu de l'espace réservé par la politique suivante. Remplacez amzn-s3-demo-bucket par le nom du compartiment S3 contenant les artefacts des composants à télécharger par le périphérique principal.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
-
Choisissez Suivant.
-
Dans la section Détails de la politique, pour Nom, entrez
MyGreengrassV2ComponentArtifactPolicy
. -
Choisissez Create Policy (Créer une politique).
-
Dans le menu de navigation de la IAMconsole
, choisissez Rôle, puis choisissez le nom du rôle pour le périphérique principal. Vous avez spécifié ce nom de rôle lors de l'installation du logiciel AWS IoT Greengrass Core. Si vous n'avez pas spécifié de nom, le nom par défaut est GreengrassV2TokenExchangeRole
. -
Sous Autorisations, choisissez Ajouter des autorisations, puis choisissez Joindre des politiques.
-
Sur la page Ajouter des autorisations, cochez la case à côté de la
MyGreengrassV2ComponentArtifactPolicy
politique que vous avez créée, puis choisissez Ajouter des autorisations.
-
-
Utilisez la recette du composant pour créer un composant dans la AWS IoT Greengrass console
. -
Dans le menu de navigation de la AWS IoT Greengrass console
, choisissez Composants, puis sélectionnez Créer un composant. -
Sous Informations sur le composant, sélectionnez Entrer la recette en tant que JSON. La recette de remplacement doit ressembler à l'exemple suivant.
{ "RecipeFormatVersion": "2020-01-25", "ComponentName": "com.example.HelloWorld", "ComponentVersion": "1.0.0", "ComponentDescription": "My first AWS IoT Greengrass component.", "ComponentPublisher": "Amazon", "ComponentConfiguration": { "DefaultConfiguration": { "Message": "world" } }, "Manifests": [ { "Platform": { "os": "linux" }, "Lifecycle": { "run": "python3 -u {artifacts:path}/hello_world.py \"{configuration:/Message}\"" }, "Artifacts": [ { "URI": "s3://amzn-s3-demo-bucket/artifacts/com.example.HelloWorld/1.0.0/hello_world.py" } ] }, { "Platform": { "os": "windows" }, "Lifecycle": { "run": "py -3 -u {artifacts:path}/hello_world.py \"{configuration:/Message}\"" }, "Artifacts": [ { "URI": "s3://amzn-s3-demo-bucket/artifacts/com.example.HelloWorld/1.0.0/hello_world.py" } ] } ] }
-
Remplacez l'espace réservé URI dans chaque
Artifacts
section par le S3 URI de votrehello_world.py
objet. -
Choisissez Créer un composant.
-
Sur le com.example. HelloWorldpage du composant, vérifiez que l'état du composant est déployable.
-
Pour télécharger votre composant Hello World
-
Utilisez un compartiment S3 dans votre compartiment Compte AWS pour héberger les artefacts des AWS IoT Greengrass composants. Lorsque vous déployez le composant sur un périphérique principal, celui-ci télécharge les artefacts du composant depuis le compartiment.
Vous pouvez utiliser un compartiment S3 existant ou exécuter la commande suivante pour créer un compartiment. Cette commande crée un compartiment avec votre Compte AWS identifiant et Région AWS pour former un nom de compartiment unique. Remplacez
123456789012
avec votre Compte AWS identifiant etregion
avec celui Région AWS que vous utilisez pour ce didacticiel.aws s3 mb s3://greengrass-component-artifacts-
123456789012
-region
La commande affiche les informations suivantes si la demande aboutit.
make_bucket: greengrass-component-artifacts-
123456789012
-region
-
Autorisez le périphérique principal à accéder aux artefacts des composants dans le compartiment S3.
Chaque appareil principal a un IAMrôle central qui lui permet AWS IoT d'interagir avec le AWS Cloud. Ce rôle de périphérique n'autorise pas l'accès aux compartiments S3 par défaut. Vous devez donc créer et associer une politique permettant au périphérique principal de récupérer les artefacts des composants du compartiment S3.
Si le rôle du périphérique principal autorise déjà l'accès au compartiment S3, vous pouvez ignorer cette étape. Sinon, créez une IAM politique autorisant l'accès et associez-la au rôle, comme suit :
-
Créez un fichier appelé
component-artifact-policy.json
et copiez ce qui suit JSON dans le fichier. Cette politique permet d'accéder à tous les fichiers d'un compartiment S3. Remplacez amzn-s3-demo-bucket par le nom du compartiment S3.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
-
Exécutez la commande suivante pour créer la politique à partir du document de stratégie dans
component-artifact-policy.json
.Copiez la politique Amazon Resource Name (ARN) à partir des métadonnées de la politique dans la sortie. Vous l'ARNutiliserez pour associer cette politique au rôle principal de l'appareil à l'étape suivante.
-
Exécutez la commande suivante pour associer la politique au rôle principal de l'appareil. Remplacez
GreengrassV2TokenExchangeRole
avec le nom du rôle du périphérique principal. Vous avez spécifié ce nom de rôle lors de l'installation du logiciel AWS IoT Greengrass Core. Remplacez la politique ARN par celle ARN de l'étape précédente.Si la commande n'a aucune sortie, elle a réussi. Le périphérique principal peut désormais accéder aux artefacts que vous téléchargez dans ce compartiment S3.
-
-
Téléchargez l'artefact du script Python Hello World dans le compartiment S3.
Exécutez la commande suivante pour télécharger le script sur le même chemin dans le compartiment où le script existe sur votre AWS IoT Greengrass cœur. Remplacez amzn-s3-demo-bucket par le nom du compartiment S3.
La commande affiche une ligne qui commence par
upload:
si la demande aboutit. -
Ajoutez l'Amazon S3 de l'artefact URI à la recette du composant.
L'Amazon S3 URI est composé du nom du compartiment et du chemin d'accès à l'objet artefact contenu dans le compartiment. L'Amazon S3 de votre artefact de script URI est URI celui sur lequel vous avez chargé l'artefact à l'étape précédente. Cela URI devrait ressembler à l'exemple suivant. Remplacez amzn-s3-demo-bucket par le nom du compartiment S3.
s3://amzn-s3-demo-bucket/artifacts/com.example.HelloWorld/1.0.0/hello_world.py
Pour ajouter l'artefact à la recette, ajoutez une liste
Artifacts
contenant une structure avec Amazon S3URI. -
Créez une ressource de composant à AWS IoT Greengrass partir de la recette. Exécutez la commande suivante pour créer le composant à partir de la recette, que vous fournissez sous forme de fichier binaire.
La réponse ressemble à l'exemple suivant si la demande aboutit.
{ "arn": "arn:aws:greengrass:
region
:123456789012
:components:com.example.HelloWorld:versions:1.0.0", "componentName": "com.example.HelloWorld", "componentVersion": "1.0.0", "creationTimestamp": "Mon Nov 30 09:04:05 UTC 2020", "status": { "componentState": "REQUESTED", "message": "NONE", "errors": {} } }Copiez le
arn
depuis la sortie pour vérifier l'état du composant à l'étape suivante.Note
Vous pouvez également voir votre composant Hello World dans la AWS IoT Greengrass console
sur la page Composants. -
Vérifiez que le composant est créé et qu'il est prêt à être déployé. Lorsque vous créez un composant, son état est
REQUESTED
. AWS IoT Greengrass Vérifie ensuite que le composant est déployable. Vous pouvez exécuter la commande suivante pour connaître l'état du composant et vérifier que celui-ci est déployable. Remplacez learn
par celui ARN de l'étape précédente.aws greengrassv2 describe-component --arn "arn:aws:greengrass:
region
:123456789012
:components:com.example.HelloWorld:versions:1.0.0"Si le composant est validé, la réponse indique que l'état du composant est
DEPLOYABLE
.{ "arn": "arn:aws:greengrass:
region
:123456789012
:components:com.example.HelloWorld:versions:1.0.0", "componentName": "com.example.HelloWorld", "componentVersion": "1.0.0", "creationTimestamp": "2020-11-30T18:04:05.823Z", "publisher": "Amazon", "description": "My first Greengrass component.", "status": { "componentState": "DEPLOYABLE", "message": "NONE", "errors": {} }, "platforms": [ { "os": "linux", "architecture": "all" } ] }
Votre composant Hello World est désormais disponible en AWS IoT Greengrass. Vous pouvez le redéployer sur cet appareil principal de Greengrass ou sur d'autres appareils principaux.