Création de sous-déploiements - 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.

Création de sous-déploiements

Note

La fonctionnalité de sous-déploiement est disponible sur Greengrass nucleus version 2.9.0 et versions ultérieures. Il n'est pas possible de déployer une configuration dans un sous-déploiement comportant des versions antérieures des composants du noyau Greengrass.

Un sous-déploiement est un déploiement qui cible un plus petit sous-ensemble d'appareils au sein d'un déploiement parent. Vous pouvez utiliser des sous-déploiements pour déployer une configuration sur un plus petit sous-ensemble d'appareils. Vous pouvez également créer des sous-déploiements pour réessayer un déploiement parent infructueux lorsqu'un ou plusieurs appareils de ce déploiement parent échouent. Grâce à cette fonctionnalité, vous pouvez sélectionner les appareils qui ont échoué lors de ce déploiement parent et créer un sous-déploiement pour tester les configurations jusqu'à ce que le sous-déploiement soit réussi. Une fois le sous-déploiement réussi, vous pouvez redéployer cette configuration vers le déploiement parent.

Suivez les étapes décrites dans cette section pour créer un sous-déploiement et vérifier son statut. Pour plus d'informations sur la création de déploiements, consultez la section Créer des déploiements.

Pour créer un sous-déploiement () AWS CLI
  1. Exécutez la commande suivante pour récupérer les derniers déploiements d'un groupe d'objets. Remplacez l'ARN de la commande par l'ARN du groupe d'objets à interroger. Configurez LATEST_ONLY sur --history-filter pour voir le dernier déploiement de ce groupe d'objets.

    aws greengrassv2 list-deployments --target-arn arn:aws:iot:region:account-id:thinggroup/thingGroupName --history-filter LATEST_ONLY
  2. Copiez le contenu deploymentId de la réponse à la list-deployments commande à utiliser à l'étape suivante.

  3. Exécutez la commande suivante pour récupérer l'état d'un déploiement. Remplacez deploymentId par l'ID du déploiement à interroger.

    aws greengrassv2 get-deployment --deployment-id deploymentId
  4. Copiez le contenu iotJobId de la réponse à la get-deployment commande à utiliser à l'étape suivante.

  5. Exécutez la commande suivante pour récupérer la liste des exécutions de tâches pour la tâche spécifiée. Remplacez JobID par celui iotJobId de l'étape précédente. Remplacez le statut par le statut pour lequel vous souhaitez filtrer. Vous pouvez filtrer les résultats avec les statuts suivants :

    • QUEUED

    • IN_PROGRESS

    • SUCCEEDED

    • FAILED

    • TIMED_OUT

    • REJECTED

    • REMOVED

    • CANCELED

    aws iot list-job-executions-for-job --job-id jobID --status status
  6. Créez un nouveau AWS IoT groupe d'objets ou utilisez un groupe d'objets existant pour votre sous-déploiement. Ajoutez ensuite un AWS IoT objet à ce groupe d'objets. Vous utilisez des groupes d'objets pour gérer des flottes d'appareils principaux de Greengrass. Lorsque vous déployez des composants logiciels sur vos appareils, vous pouvez cibler des appareils individuels ou des groupes d'appareils. Vous pouvez ajouter un appareil à un groupe d'objets avec un déploiement Greengrass actif. Une fois ajoutés, vous pouvez déployer les composants logiciels de ce groupe d'objets sur cet appareil.

    Pour créer un nouveau groupe d'objets et y ajouter vos appareils, procédez comme suit :

    1. Créez un groupe AWS IoT d'objets. Remplacez MyGreengrassCoreGrouppar le nom du nouveau groupe d'objets. Vous ne pouvez pas utiliser de deux-points (:) dans le nom d'un groupe d'objets.

      Note

      Si un groupe d'objets pour un sous-déploiement est utilisé avec un autreparentTargetArn, il ne peut pas être réutilisé avec un autre parc parent. Si un groupe d'objets a déjà été utilisé pour créer un sous-déploiement pour une autre flotte, l'API renvoie une erreur.

      aws iot create-thing-group --thing-group-name MyGreengrassCoreGroup

      Si la demande aboutit, la réponse ressemble à l'exemple suivant :

      { "thingGroupName": "MyGreengrassCoreGroup", "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup", "thingGroupId": "4df721e1-ff9f-4f97-92dd-02db4e3f03aa" }
    2. Ajoutez un noyau Greengrass provisionné à votre groupe d'objets. Exécutez la commande suivante avec les paramètres suivants :

      • MyGreengrassCoreRemplacez-le par le nom de votre noyau Greengrass provisionné.

      • MyGreengrassCoreGroupRemplacez-le par le nom de votre groupe d'objets.

      aws iot add-thing-to-thing-group --thing-name MyGreengrassCore --thing-group-name MyGreengrassCoreGroup

      La commande n'a aucune sortie si la demande aboutit.

  7. Créez un fichier appelédeployment.json, puis copiez l'objet JSON suivant dans le fichier. Remplacez TargetArn par l'ARN du groupe d'objets à cibler pour AWS IoT le sous-déploiement. Une cible de sous-déploiement ne peut être qu'un groupe d'objets. Les ARN des groupes d'objets ont le format suivant :

    • Groupe d'objetsarn:aws:iot:region:account-id:thinggroup/thingGroupName

    { "targetArn": "targetArn" }
  8. Exécutez à nouveau la commande suivante pour obtenir les détails du déploiement d'origine. Ces détails incluent les métadonnées, les composants et la configuration des tâches. Remplacez DeploymentID par l'ID de. Étape 1 Vous pouvez utiliser cette configuration de déploiement pour configurer votre sous-déploiement et apporter les modifications nécessaires.

    aws greengrassv2 get-deployment --deployment-id deploymentId

    La réponse contient les détails du déploiement. Copiez l'une des paires clé-valeur suivantes depuis la réponse de la get-deployment commande dans. deployment.json Vous pouvez modifier ces valeurs pour le sous-déploiement. Pour plus d'informations sur les détails de cette commande, consultez GetDeployment.

    • components— Les composants du déploiement. Pour désinstaller un composant, supprimez-le de cet objet.

    • deploymentName— Le nom du déploiement.

    • deploymentPolicies— Les politiques du déploiement.

    • iotJobConfiguration— La configuration des tâches du déploiement.

    • parentTargetArn— La cible du déploiement parent.

    • tags— Les tags du déploiement.

  9. Exécutez la commande suivante pour créer le sous-déploiement à partir dedeployment.json. Remplacez SubdeploymentName par le nom du sous-déploiement.

    aws greengrassv2 create-deployment --deployment-name subdeploymentName --cli-input-json file://deployment.json

    La réponse inclut un identifiant deploymentId ce sous-déploiement. Vous pouvez utiliser l'ID de déploiement pour vérifier l'état du déploiement. Pour plus d'informations, voir Vérifier l'état du déploiement.

  10. Si le sous-déploiement est réussi, vous pouvez utiliser sa configuration pour modifier le déploiement parent. Copiez celui deployment.json que vous avez utilisé à l'étape précédente. Remplacez targetArn le fichier JSON par l'ARN du déploiement parent et exécutez la commande suivante pour créer le déploiement parent à l'aide de cette nouvelle configuration.

    Note

    Si vous créez une nouvelle révision de déploiement du parc parent, elle remplace toutes les révisions et sous-déploiements de ce déploiement parent. Pour plus d'informations, consultez la section Réviser les déploiements.

    aws greengrassv2 create-deployment --cli-input-json file://deployment.json

    La réponse inclut un deploymentId identifiant ce déploiement. Vous pouvez utiliser l'ID de déploiement pour vérifier l'état du déploiement. Pour plus d'informations, consultez Vérification du statut du déploiement.