

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
<a name="create-subdeployments"></a>

**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](https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html).

**Pour créer un sous-déploiement ()AWS CLI**

1. <a name="create-subdeployments-step1"></a>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\$1ONLY** 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
   ```

1. Copiez le contenu `deploymentId` de la réponse à la **list-deployments** commande à utiliser à l'étape suivante.

1. 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
   ```

1. Copiez le contenu `iotJobId` de la réponse à la **get-deployment** commande à utiliser à l'étape suivante.

1. 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 *status* 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
   ```

1. 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 *MyGreengrassCoreGroup* par 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 autre`parentTargetArn`, 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"
      }
      ```

   1. Ajoutez un noyau Greengrass provisionné à votre groupe d'objets. Exécutez la commande suivante avec les paramètres suivants :
      + *MyGreengrassCore*Remplacez-le par le nom de votre noyau Greengrass provisionné.
      + *MyGreengrassCoreGroup*Remplacez-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.

1. Créez un fichier appelé`deployment.json`, puis copiez l'objet JSON suivant dans le fichier. *targetArn*Remplacez-le par l'ARN du AWS IoT groupe d'objets à cibler pour le sous-déploiement. Une cible de sous-déploiement ne peut être qu'un groupe d'objets. Les groupes ARNs d'objets ont le format suivant :
   + **Groupe d'objets** — `arn:aws:iot:region:account-id:thinggroup/thingGroupName`

   ```
   {
     "targetArn": "targetArn"
   }
   ```

1. 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'identifiant de[Step 1](#create-subdeployments-step1). 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](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_GetDeployment.html).
   + `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.

1. Exécutez la commande suivante pour créer le sous-déploiement à partir de`deployment.json`. *subdeploymentName*Remplacez-le par un nom pour le 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](https://docs.aws.amazon.com/greengrass/v2/developerguide/check-deployment-status.html#check-cloud-deployment-status).

1. 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.](https://docs.aws.amazon.com/greengrass/v2/developerguide/revise-deployments.html)

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

   <a name="check-new-deployment-status"></a>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 de plus amples informations, veuillez consulter [Vérifier l'état du déploiement](check-deployment-status.md#check-cloud-deployment-status).