

• Le AWS Systems Manager CloudWatch tableau de bord ne sera plus disponible après le 30 avril 2026. Les clients peuvent continuer à utiliser CloudWatch la console Amazon pour consulter, créer et gérer leurs CloudWatch tableaux de bord Amazon, comme ils le font aujourd'hui. Pour plus d'informations, consultez la [documentation Amazon CloudWatch Dashboard](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

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éer un package dans Distributor
<a name="distributor-working-with-packages-create"></a>

Pour créer un package, préparez vos logiciels ou ressources installables, un fichier ZIP par plateforme de système d'exploitation. Vous devez disposer d'au moins un fichier pour créer un package.

Différentes plateformes peuvent parfois utiliser le même fichier, mais tous les fichiers que vous attachez à votre package doivent être répertoriés dans la section `Files` du manifeste. Si vous créez un package en utilisant le flux de travail simple dans la console, le manifeste est généré pour vous. Le nombre maximum de fichiers que vous pouvez attacher à un seul document est de 20. La taille maximale d'un fichier est de 1 Go. Pour de plus amples informations sur les plateformes prises en charge, veuillez consulter [Architectures et plateformes de package prises en charge](distributor.md#what-is-a-package-platforms).

Lorsque vous créez un package, le système crée un nouveau [document SSM](documents.md). Ce document vous permet de déployer le package sur des nœuds gérés.

À des fins de démonstration uniquement, un exemple de package, [ExamplePackage.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/ExamplePackage.zip), est disponible en téléchargement sur notre site Web. Le package d'exemple inclut un manifeste JSON complet et trois fichiers .zip contenant les programmes d'installation pour PowerShell la version 7.0.0. Les scripts d'installation et de désinstallation ne contiennent pas de commandes valides. Même si vous devez zipper chacun des fichiers installables de logiciel et des scripts dans un fichier .zip pour créer un package dans le flux de travail **Advanced (Avancé)**, vous ne zippez pas les ressources installables dans le flux de travail **Simple**.

**Topics**
+ [Créer un package à l’aide du flux de travail simple](#distributor-working-with-packages-create-simple)
+ [Créer un package à l’aide du flux de travail avancé](#distributor-working-with-packages-create-adv)

## Créer un package à l’aide du flux de travail simple
<a name="distributor-working-with-packages-create-simple"></a>

Cette section décrit comment créer un package dans Distributor en choisissant le flux de travail de création de package **Simple** dans la console Distributor. Distributor est un outil d’ AWS Systems Manager. Pour créer un package, préparez vos ressources installables, un fichier par plateforme de système d'exploitation. Vous devez disposer d'au moins un fichier pour créer un package. Le processus de création de package **Simple** génère des scripts d'installation et de désinstallation, des hachages de fichier et un manifeste au format JSON pour vous. Le flux de travail **Simple** gère le processus de chargement et de zip de vos fichiers installables, ainsi que la création d'un nouveau package et du [document SSM](documents.md) associé. Pour de plus amples informations sur les plateformes prises en charge, veuillez consulter [Architectures et plateformes de package prises en charge](distributor.md#what-is-a-package-platforms).

Lorsque vous utilisez la méthode Simple pour créer un package, Distributor crée des scripts `install` et `uninstall`. Toutefois, lorsque vous créez un package pour une mise à jour sur place, vous devez fournir votre propre contenu de script `update` dans l'onglet **Update script (Script de mise à jour)**. Lorsque vous ajoutez des commandes d'entrée pour un script `update`, Distributor inclut ce script dans le package .zip qu'il crée, avec les scripts `uninstall` et `install`.

**Note**  
Utilisez l'option de mise à jour `In-place` pour ajouter des fichiers nouveaux ou mis à jour à une installation de package existante sans mettre l'application associée hors connexion.

**Pour créer un package à l’aide du flux de travail simple**

1. Ouvrez la AWS Systems Manager console à l'adresse [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Dans le panneau de navigation, sélectionnez **Distributor**.

1. Sur la page d'accueil de Distributor, sélectionnez **Create package (Créer un package)**, puis **Simple**.

1. Sur la page **Create package (Créer un package)**, entrez un nom pour votre package. Les noms de package peuvent contenir des lettres, des chiffres, des points, des tirets et des traits de soulignement. Le nom doit être suffisamment générique pour pouvoir s'appliquer à toutes les versions des pièces jointes du package, mais suffisamment spécifique pour identifier l'objectif du package.

1. (Facultatif) Pour **Version name (Nom de version)**, entrez un nom de version. Les noms de version peuvent comporter 512 caractères au maximum et ne peuvent pas contenir de caractères spéciaux.

1. Pour **Location (Emplacement)**, sélectionnez un compartiment en utilisant le nom et le préfixe du compartiment ou en utilisant son URL.

1. Dans **Upload software** (Charger un logiciel), sélectionnez **Add software** (Ajouter un logiciel), puis recherchez les fichiers de logiciels installables qui portent l'extension `.rpm`, `.msi` ou `.deb`. Si le nom de fichier contient des espaces, le téléchargement échoue. Vous pouvez charger plusieurs fichiers de logiciel en une seule action.

1. Pour **Target platform (Plateforme cible)**, vérifiez que la plateforme de système d'exploitation cible pour chaque fichier installable est correcte. Si le système d'exploitation indiqué n'est pas correct, sélectionnez le système d'exploitation approprié dans la liste déroulante.

   Dans le flux de travail de création de package **Simple**, comme vous chargez chaque fichier installable une seule fois, des étapes supplémentaires sont nécessaires pour demander à Distributor de cibler un seul fichier sur plusieurs systèmes d'exploitation. Par exemple, si vous chargez un fichier de logiciel installable nommé `Logtool_v1.1.1.rpm`, vous devez modifier certaines valeurs par défaut dans le flux de travail **Simple** pour cibler le même logiciel sur les versions prises à jour des systèmes d’exploitation Amazon Linux et Ubuntu Server. Lorsque vous ciblez plusieurs plateformes, effectuez l'une des opérations suivantes.
   + Utilisez plutôt le flux de travail **Advanced (Avancé)**, zippez chaque fichier installable en un fichier .zip avant de commencer et créez manuellement le manifeste afin qu'un fichier installable puisse cibler plusieurs plateformes ou versions de système d'exploitation. Pour de plus amples informations, veuillez consulter [Créer un package à l’aide du flux de travail avancé](#distributor-working-with-packages-create-adv).
   + Modifiez manuellement le fichier manifeste dans le flux de travail **Simple** pour que votre fichier .zip cible plusieurs plateformes ou versions de système d'exploitation. Pour plus d'informations sur la façon de procéder, consultez la fin de l'étape 4 dans [Étape 2 : Création du manifeste de package JSON](#packages-manifest).

1. Pour **Platform version (Version de plateforme)**, vérifiez que la version de plateforme de système d'exploitation est **\$1any**, une version majeure suivie d'un caractère générique (7.\$1), ou la version de système d'exploitation exacte spécifique à laquelle vous souhaitez que votre logiciel s'applique. Pour plus d'informations sur la spécification d'une version de plateforme de système d'exploitation, consultez l'étape 4 de [Étape 2 : Création du manifeste de package JSON](#packages-manifest).

1. Pour **Architecture**, sélectionnez l'architecture de processeur correcte pour chaque fichier installable dans la liste déroulante. Pour plus d'informations sur les architectures de processeur prises en charge, consultez [Architectures et plateformes de package prises en charge](distributor.md#what-is-a-package-platforms).

1. (Facultatif) Développez **Scripts** et vérifiez les scripts générés par Distributor pour votre logiciel installable.

1. (Facultatif) Pour fournir un script de mise à jour à utiliser avec les mises à jour sur place, développez **Scripts**, sélectionnez l'onglet **Update script (Script de mise à jour)** et entrez vos commandes de script de mise à jour.

   Systems Manager ne génère pas de scripts de mise à jour en votre nom.

1. Pour ajouter d'autres fichiers de logiciels installables, sélectionnez **Add software (Ajouter des logiciels)**. Sinon, accédez à l'étape suivante.

1. (Facultatif) Développez **Manifest (Manifeste)** et vérifiez le manifeste de package JSON généré par Distributor pour vos logiciels installables. Si vous avez modifié des informations relatives à vos logiciels depuis que vous avez commencé cette procédure, comme la version de plateforme ou la plateforme cible, sélectionnez **Generate manifest (Générer un manifeste)** pour afficher le manifeste de package mis à jour.

   Vous pouvez modifier le manifeste manuellement si vous souhaitez cibler un logiciel installable pour plusieurs systèmes d'exploitation, comme décrit à l'étape 8. Pour plus d'informations sur la modification du manifeste, consultez [Étape 2 : Création du manifeste de package JSON](#packages-manifest).

1. Sélectionnez **Create package (Créer un package)**.

Attendez que Distributor finisse de charger vos logiciels et de créer votre package. Distributor indique le statut de chargement pour chaque fichier installable. Selon le nombre et la taille des packages que vous ajoutez, cela peut prendre quelques minutes. Distributor vous redirige vers la page **Package details (Détails du package)** pour le nouveau package, mais vous pouvez choisir d'ouvrir cette page vous-même une fois les logiciels chargés. La page **Package details (Détails du package)** n'affiche pas toutes les informations sur votre package tant que Distributor n'a pas terminé le processus de création de ce package. Pour arrêter le processus de chargement et de création de package, sélectionnez **Cancel (Annuler)**.

Si Distributor ne peut pas charger les fichiers de logiciels installables, il affiche un message **Upload failed (Échec du chargement)**. Pour relancer le chargement, sélectionnez **Retry upload (Réessayer le chargement)**. Pour plus d'informations sur la façon de résoudre les échecs de création de package, consultez [Résolution des problèmes AWS Systems ManagerDistributor](distributor-troubleshooting.md).

## Créer un package à l’aide du flux de travail avancé
<a name="distributor-working-with-packages-create-adv"></a>

Dans cette section, découvrez comment les utilisateurs avancés peuvent créer un package dans Distributor après avoir chargé des ressources installables zippées avec des scripts d'installation et de désinstallation, ainsi qu'un fichier manifeste JSON dans un compartiment Amazon S3.

Pour créer un package, préparez vos fichiers .zip de ressources installables, un fichier .zip par plateforme de système d'exploitation. Vous devez disposer d'au moins un fichier .zip pour créer un package. Créez ensuite un manifeste JSON. Le manifeste inclut des pointeurs vers vos fichiers de code de package. Une fois que les fichiers de code requis ont été ajoutés à un dossier ou un répertoire et que le manifeste a été renseigné avec des valeurs correctes, chargez votre package dans un compartiment S3.

Un exemple de package, [ExamplePackage.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/ExamplePackage.zip), est disponible en téléchargement sur notre site Web. Cet exemple de package comprend un manifeste JSON complet et trois fichiers .zip.

**Topics**
+ [Étape 1 : Création des fichiers ZIP](#packages-zip)
+ [Étape 2 : Création du manifeste de package JSON](#packages-manifest)
+ [Étape 3 : Chargement du package et du manifeste dans un compartiment Amazon S3](#packages-upload-s3)
+ [Étape 4 : Ajout d'un package à Distributor](#distributor-working-with-packages-add)

### Étape 1 : Création des fichiers ZIP
<a name="packages-zip"></a>

Votre package doit reposer sur au moins un fichier .zip de logiciels ou de ressources installables. Un package inclut un fichier .zip par système d'exploitation que vous souhaitez prendre en charge, sauf si un fichier .zip peut être installé sur plusieurs systèmes d'exploitation. Par exemple, les versions prises en charge de Red Hat Enterprise Linux et les instances Amazon Linux peuvent généralement exécuter les mêmes fichiers exécutables .RPM. Par conséquent, vous n’avez besoin d’attacher qu’un seul fichier .zip à votre package pour pouvoir prendre en charge les deux systèmes d’exploitation.

**Fichiers requis**  
Les éléments suivants doivent obligatoirement être présents dans chaque fichier .zip :
+ Un **install** et un **uninstall** script. Windows Serverles nœuds gérés basés sur la PowerShell technologie nécessitent des scripts (scripts nommés `install.ps1` et`uninstall.ps1`). Les nœuds gérés basés sur Linux requièrent des scripts shell (scripts nommés `install.sh` et `uninstall.sh`). SSM Agent exécute les instructions des scripts **install** et **uninstall**.

  Par exemple, vos scripts d'installation peuvent exécuter un programme d'installation (par exemple, .rpm ou .msi), ils peuvent copier des fichiers ou définir des paramètres de configuration.
+ Un fichier exécutable, des packages de programme d'installation (.rpm, .deb, .msi, etc.), d'autres scripts ou fichiers de configuration.

**Fichiers facultatifs**  
L'élément suivant est facultatif dans chaque fichier .zip :
+ Un script **update**. Le fait de fournir un script de mise à jour permet d'utiliser l'option `In-place update` pour installer un package. Lorsque vous souhaitez ajouter des fichiers nouveaux ou mis à jour à une installation de package existante, l'`In-place update`option ne met pas l'application du package hors ligne pendant la mise à jour. Windows Serverles nœuds gérés basés sur la technologie nécessitent un PowerShell script (nom du script`update.ps1`). Les nœuds gérés basés sur Linux requièrent un script shell (script nommé `update.sh`). SSM Agent exécute les instructions du script **update**.

Pour de plus amples informations sur l'installation ou la mise à jour de packages, veuillez consulter [Installer ou mettre à jour des packages Distributor](distributor-working-with-packages-deploy.md).

Pour obtenir des exemples de fichiers .zip, y compris des exemples **install** et **uninstall** des scripts, téléchargez le package d'exemple, [ExamplePackage.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/ExamplePackage.zip).

### Étape 2 : Création du manifeste de package JSON
<a name="packages-manifest"></a>

Une fois que vous avez préparé et zippé vos fichiers installables, créez un manifeste JSON. Vous trouverez ci-après un modèle. Les parties du modèle de manifeste sont décrites dans la procédure présentée dans cette section. Vous pouvez utiliser un éditeur JSON pour créer ce manifeste dans un fichier distinct. Vous pouvez également créer le manifeste dans la AWS Systems Manager console lorsque vous créez un package.

```
{
  "schemaVersion": "2.0",
  "version": "your-version",
  "publisher": "optional-publisher-name",
  "packages": {
    "platform": {
      "platform-version": {
        "architecture": {
          "file": ".zip-file-name-1.zip"
        }
      }
    },
    "another-platform": {
      "platform-version": {
        "architecture": {
          "file": ".zip-file-name-2.zip"
        }
      }
    },
    "another-platform": {
      "platform-version": {
        "architecture": {
          "file": ".zip-file-name-3.zip"
        }
      }
    }
  },
  "files": {
    ".zip-file-name-1.zip": {
      "checksums": {
        "sha256": "checksum"
      }
    },
    ".zip-file-name-2.zip": {
      "checksums": {
        "sha256": "checksum"
      }
    }
  }
}
```

**Pour créer un manifeste de package JSON**

1. Ajoutez la version du schéma à votre manifeste. Dans cette édition, la version du schéma est toujours `2.0`.

   ```
   { "schemaVersion": "2.0",
   ```

1. Ajoutez une version de package définie par l'utilisateur à votre fichier manifeste. Il s'agit également de la valeur de **Version name (Nom de la version)** que vous spécifiez lorsque vous ajoutez votre package à Distributor. Cette version fait partie du document AWS Systems Manager créé par Distributor lorsque vous ajoutez votre package. Vous pouvez également fournir cette valeur sous forme d'entrée dans le document `AWS-ConfigureAWSPackage` pour installer une version du package autre que la plus récente. Une valeur `version` peut contenir des lettres, des chiffres, des traits de soulignement, des tirets et des points, et peut comporter un maximum de 128 caractères. Nous vous recommandons d'utiliser une version de package lisible par l'utilisateur afin qu'il soit plus facile pour vous et pour les autres administrateurs de spécifier les versions de packages exactes lorsque vous effectuez le déploiement. Voici un exemple.

   ```
   "version": "1.0.1",
   ```

1. (Facultatif) Ajoutez un nom d'éditeur. Voici un exemple.

   ```
   "publisher": "MyOrganization",
   ```

1. Ajoutez des packages. La section `"packages"` décrit les plateformes, versions et architectures prises en charge par les fichiers .zip dans votre package. Pour de plus amples informations, veuillez consulter [Architectures et plateformes de package prises en charge](distributor.md#what-is-a-package-platforms).

   Il *platform-version* peut s'agir de la valeur générique,`_any`. Utilisez-le pour indiquer qu'un fichier .zip prend en charge n'importe quelle version de la plateforme. Vous pouvez également spécifier une version majeure suivie d'un caractère générique pour que toutes les versions mineures soient prises en charge, par exemple 7.\$1. Si vous choisissez de spécifier une *platform-version* valeur pour une version de système d'exploitation spécifique, assurez-vous qu'elle correspond exactement à la version finale du système d'exploitation AMI que vous ciblez. Voici les ressources suggérées pour obtenir la valeur correcte du système d'exploitation.
   + Sur une nœud géré basé sur Windows Server, la version est disponible sous forme de données WMI (Windows Management Instrumentation). Vous pouvez exécuter la commande suivante à partir d'une invite de commande pour obtenir la version, puis analyser les résultats obtenus pour `version`.

     ```
     wmic OS get /format:list
     ```
   + Sur un nœud géré Linux, vous pouvez obtenir la version en commençant par rechercher la version du système d'exploitation (la commande suivante). Recherchez la valeur de `VERSION_ID`.

     ```
     cat /etc/os-release
     ```

     Si vous n'obtenez pas les résultats dont vous avez besoin, exécutez la commande suivante pour obtenir des informations de version LSB à partir du fichier `/etc/lsb-release` et recherchez la valeur de `DISTRIB_RELEASE`.

     ```
     lsb_release -a
     ```

     Si ces méthodes échouent, vous pouvez généralement trouver la version en fonction de la distribution. Par exemple, sur Debian Server, vous pouvez analyser le fichier `/etc/debian_version`, ou sur Red Hat Enterprise Linux, le fichier `/etc/redhat-release`.

     ```
     hostnamectl
     ```

   ```
   "packages": {
       "platform": {
         "platform-version": {
           "architecture": {
             "file": ".zip-file-name-1.zip"
           }
         }
       },
       "another-platform": {
         "platform-version": {
           "architecture": {
             "file": ".zip-file-name-2.zip"
           }
         }
       },
       "another-platform": {
         "platform-version": {
           "architecture": {
             "file": ".zip-file-name-3.zip"
           }
         }
       }
     }
   ```

   Voici un exemple. Dans cet exemple, la plateforme du système d'exploitation est `amazon`, la version prise en charge est `2016.09`, l'architecture est `x86_64` et le fichier .zip qui prend en charge cette plateforme est `test.zip`.

   ```
   {
       "amazon": {
           "2016.09": {
               "x86_64": {
                   "file": "test.zip"
               }
           }
       }
   },
   ```

   Vous pouvez ajouter la valeur générique `_any` pour indiquer que le package prend en charge toutes les versions de l'élément parent. Par exemple, pour indiquer que le package est pris en charge sur n'importe quelle version d'Amazon Linux, votre déclaration de package doit être similaire à ce qui suit. Vous pouvez utiliser le caractère générique `_any` aux niveaux de la version ou de l'architecture pour prendre en charge toutes les versions d'une plateforme ou toutes les architectures dans une version, ou encore toutes les versions et architectures d'une plateforme.

   ```
   {
       "amazon": {
           "_any": {
               "x86_64": {
                   "file": "test.zip"
               }
           }
       }
   },
   ```

   L'exemple suivant ajoute `_any` pour montrer que le premier package, `data1.zip`, est pris en charge pour toutes les architectures d'Amazon Linux 2016.09. Le deuxième package, `data2.zip`, est pris en charge pour toutes les versions d'Amazon Linux, mais uniquement pour les nœuds gérés dotés de l'architecture `x86_64`. Les versions `2023.8` et `_any` sont toutes deux des entrées situées sous `amazon`. Il y a une seule plateforme (Amazon Linux), mais différentes versions et architectures, et différents fichiers .zip associés pris en charge.

   ```
   {
       "amazon": {
           "2023.8": {
               "_any": {
                   "file": "data1.zip"
               }
           },
           "_any": {
               "x86_64": {
                   "file": "data2.zip"
               }
           }
       }
   }
   ```

   Vous pouvez faire référence à un fichier .zip plusieurs fois dans la section `"packages"` du manifeste, si le fichier .zip prend en charge plusieurs plateformes. Par exemple, si vous avez un fichier .zip prenant en charge à la fois les versions Red Hat Enterprise Linux 8.x et Amazon Linux, vous avez deux entrées dans la section `"packages"` pointant vers le même fichier .zip, comme illustré dans l’exemple suivant.

   ```
   {
       "amazon": {
           "2023.8.20250715 ": {
               "x86_64": {
                   "file": "test.zip"
               }
           }
       },
       "redhat": {
           "8.*": {
               "x86_64": {
                   "file": "test.zip"
               }
           }
       }
   },
   ```

1. Ajoutez la liste des fichiers .zip qui font partie de ce package à partir de l'étape 4. Chaque entrée de fichier requiert le nom de fichier et le total de contrôle de la valeur de hachage `sha256`. Les valeurs de total de contrôle dans le manifeste doivent correspondre à la valeur de hachage `sha256` dans les ressources zippées pour empêcher l'échec de l'installation des packages.

   Pour obtenir le total de contrôle exact de vos ressources installables, vous pouvez exécuter les commandes suivantes. Sous Linux, exécutez `shasum -a 256 file-name.zip` ou `openssl dgst -sha256 file-name.zip`. Sous Windows, exécutez l'`Get-FileHash -Path path-to-.zip-file`applet de commande dans. [PowerShell](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/get-filehash?view=powershell-6)

   La section `"files"` du manifeste inclut une référence à chacun des fichiers .zip de votre package.

   ```
   "files": {
           "test-agent-x86.deb.zip": {
               "checksums": {
                   "sha256": "EXAMPLE2706223c7616ca9fb28863a233b38e5a23a8c326bb4ae241dcEXAMPLE"
               }
           },
           "test-agent-x86_64.deb.zip": {
               "checksums": {
                   "sha256": "EXAMPLE572a745844618c491045f25ee6aae8a66307ea9bff0e9d1052EXAMPLE"
               }
           },
           "test-agent-x86_64.nano.zip": {
               "checksums": {
                   "sha256": "EXAMPLE63ccb86e830b63dfef46995af6b32b3c52ce72241b5e80c995EXAMPLE"
               }
           },
           "test-agent-rhel8-x86.nano.zip": {
               "checksums": {
                   "sha256": "EXAMPLE13df60aa3219bf117638167e5bae0a55467e947a363fff0a51EXAMPLE"
               }
           },
           "test-agent-x86.msi.zip": {
               "checksums": {
                   "sha256": "EXAMPLE12a4abb10315aa6b8a7384cc9b5ca8ad8e9ced8ef1bf0e5478EXAMPLE"
               }
           },
           "test-agent-x86_64.msi.zip": {
               "checksums": {
                   "sha256": "EXAMPLE63ccb86e830b63dfef46995af6b32b3c52ce72241b5e80c995EXAMPLE"
               }
           },
           "test-agent-rhel8-x86.rpm.zip": {
               "checksums": {
                   "sha256": "EXAMPLE13df60aa3219bf117638167e5bae0a55467e947a363fff0a51EXAMPLE"
               }
           }
       }
   ```

1. Une fois que vous avez ajouté vos informations de package, enregistrez et fermez le fichier manifeste.

Voici un exemple de fichier manifeste terminé. Dans cet exemple, vous avez un fichier .zip, `NewPackage_LINUX.zip`, qui prend en charge plusieurs plateformes, mais qui n'est référencé qu'une seule fois dans la section `"files"`.

```
{
    "schemaVersion": "2.0",
    "version": "1.7.1",
    "publisher": "Amazon Web Services",
    "packages": {
        "windows": {
            "_any": {
                "x86_64": {
                    "file": "NewPackage_WINDOWS.zip"
                }
            }
        },
        "amazon": {
            "_any": {
                "x86_64": {
                    "file": "NewPackage_LINUX.zip"
                }
            }
        },
        "ubuntu": {
            "_any": {
                "x86_64": {
                    "file": "NewPackage_LINUX.zip"
                }
            }
        }
    },
    "files": {
        "NewPackage_WINDOWS.zip": {
            "checksums": {
                "sha256": "EXAMPLEc2c706013cf8c68163459678f7f6daa9489cd3f91d52799331EXAMPLE"
            }
        },
        "NewPackage_LINUX.zip": {
            "checksums": {
                "sha256": "EXAMPLE2b8b9ed71e86f39f5946e837df0d38aacdd38955b4b18ffa6fEXAMPLE"
            }
        }
    }
}
```

#### Exemple de package
<a name="package-manifest-examples"></a>

Un exemple de package, [ExamplePackage.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/ExamplePackage.zip), est disponible en téléchargement sur notre site Web. Cet exemple de package comprend un manifeste JSON complet et trois fichiers .zip.

### Étape 3 : Chargement du package et du manifeste dans un compartiment Amazon S3
<a name="packages-upload-s3"></a>

Préparez votre package en copiant ou en déplaçant tous les fichiers .zip dans un dossier ou un répertoire. Un package valide nécessite le manifeste que vous avez créé à l'[Étape 2 : Création du manifeste de package JSON](#packages-manifest) et tous les fichiers .zip identifiés dans la liste de fichiers du manifeste.

**Pour charger le package et le manifeste dans Amazon S3**

1. Copiez ou déplacez dans un dossier ou un répertoire tous les fichiers d'archive .zip que vous avez spécifiés dans le manifeste. Ne zippez pas le dossier ou le répertoire dans lequel vous déplacez vos fichiers d'archive .zip et votre fichier manifeste.

1. Créez un compartiment ou sélectionnez un compartiment existant. Pour plus d'informations, veuillez consulter [Créer un compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html) dans le *Guide de mise en route Amazon Simple Storage Service*. Pour plus d'informations sur la façon d'exécuter une AWS CLI commande pour créer un bucket, consultez [https://docs.aws.amazon.com/cli/latest/reference/s3/mb.html](https://docs.aws.amazon.com/cli/latest/reference/s3/mb.html)la *référence des AWS CLI commandes*.

1. Téléchargez le dossier ou le répertoire dans le compartiment. Pour plus d'informations, veuillez consulter [Ajouter un objet à un compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/PuttingAnObjectInABucket.html) dans le *Guide de mise en route Amazon Simple Storage Service*. Si vous prévoyez de coller votre manifeste JSON dans la AWS Systems Manager console, ne le chargez pas. Pour plus d'informations sur la façon d'exécuter une AWS CLI commande pour télécharger des fichiers [https://docs.aws.amazon.com/cli/latest/reference/s3/mv.html](https://docs.aws.amazon.com/cli/latest/reference/s3/mv.html)dans un bucket, consultez la *référence des AWS CLI commandes*.

1. Sur la page d'accueil du compartiment, sélectionnez le dossier ou le répertoire que vous avez chargé. Si vous avez chargé vos fichiers dans un sous-dossier au sein d'un compartiment, veillez à noter le sous-dossier (également connu sous le nom de *préfixe*). Vous avez besoin du préfixe pour ajouter votre package dans Distributor.

### Étape 4 : Ajout d'un package à Distributor
<a name="distributor-working-with-packages-add"></a>

Vous pouvez utiliser la AWS Systems Manager console, les outils de ligne de AWS commande (AWS CLI et Outils AWS pour PowerShell) ou AWS SDKs ajouter un nouveau package àDistributor. Lorsque vous ajoutez un package, vous ajoutez un nouveau [document SSM](documents.md). Ce document vous permet de déployer le package sur des nœuds gérés.

**Topics**
+ [Ajouter un package à l’aide de la console](#create-pkg-console)
+ [Ajoutez un package à l'aide du AWS CLI](#create-pkg-cli)

#### Ajouter un package à l’aide de la console
<a name="create-pkg-console"></a>

Vous pouvez utiliser la AWS Systems Manager console pour créer un package. Vous devez avoir à votre disposition le nom du compartiment dans lequel vous avez chargé votre package dans [Étape 3 : Chargement du package et du manifeste dans un compartiment Amazon S3](#packages-upload-s3).

**Pour ajouter un package dans Distributor (console)**

1. Ouvrez la AWS Systems Manager console à l'adresse [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Dans le panneau de navigation, sélectionnez **Distributor**.

1. Sur la page d'accueil de Distributor, sélectionnez **Create package (Créer un package)**, puis **Advanced (Avancé)**.

1. Sur la page **Create package (Créer un package)**, entrez un nom pour votre package. Les noms de package peuvent contenir des lettres, des chiffres, des points, des tirets et des traits de soulignement. Le nom doit être suffisamment générique pour pouvoir s'appliquer à toutes les versions des pièces jointes du package, mais suffisamment spécifique pour identifier l'objectif du package.

1. Pour **Version name (Nom de la version)**, saisissez la valeur exacte de l'entrée `version` dans votre fichier manifeste.

1. Pour **S3 bucket name (Nom du compartiment S3)**, sélectionnez le nom du compartiment dans lequel vous avez chargé vos fichiers .zip et le manifeste dans [Étape 3 : Chargement du package et du manifeste dans un compartiment Amazon S3](#packages-upload-s3).

1. Dans **S3 key prefix (Préfixe de clé S3)**, entrez le sous-dossier du compartiment dans lequel vos fichiers .zip et le manifeste sont stockés.

1. Dans **Manifest (Manifeste)**, sélectionnez **Extract from package (Extraire depuis le package)** pour utiliser un manifeste que vous avez chargé dans le compartiment Amazon S3 avec vos fichiers .zip.

   (Facultatif) Si vous n'avez pas chargé votre manifeste JSON dans le compartiment S3 où vous avez stocké vos fichiers .zip, sélectionnez **New manifest (Nouveau manifeste)**. Vous pouvez créer ou coller l'intégralité du champ de manifeste dans l'éditeur JSON. Pour de plus amples informations sur la création du manifeste JSON, veuillez consulter [Étape 2 : Création du manifeste de package JSON](#packages-manifest).

1. Lorsque vous avez fini avec le fichier manifeste, sélectionnez **Create package (Créer un package)**.

1. Attendez que Distributor crée votre package à partir de vos fichiers .zip et de votre manifeste. Selon le nombre et la taille des packages que vous ajoutez, cela peut prendre quelques minutes. Distributor vous redirige vers la page **Package details (Détails du package)** pour le nouveau package, mais vous pouvez choisir d'ouvrir cette page vous-même une fois les logiciels chargés. La page **Package details (Détails du package)** n'affiche pas toutes les informations sur votre package tant que Distributor n'a pas terminé le processus de création de ce package. Pour arrêter le processus de chargement et de création de package, sélectionnez **Cancel (Annuler)**.

#### Ajoutez un package à l'aide du AWS CLI
<a name="create-pkg-cli"></a>

Vous pouvez utiliser le AWS CLI pour créer un package. Vous devez avoir à votre disposition l'URL du compartiment dans lequel vous avez chargé votre package à l'[Étape 3 : Chargement du package et du manifeste dans un compartiment Amazon S3](#packages-upload-s3).

**Pour ajouter un package à Amazon S3 à l'aide du AWS CLI**

1.  AWS CLI Pour créer un package, exécutez la commande suivante, en *package-name* remplaçant par le nom de votre package et *path-to-manifest-file* par le chemin du fichier manifeste JSON. amzn-s3-demo-bucket est l'URL du compartiment Amazon S3 dans lequel le package est stocké dans son intégralité. Lorsque vous exécutez la commande **create-document** dans Distributor, vous devez spécifier la valeur `Package` pour `--document-type`.

   Si vous n'avez pas ajouté votre fichier manifeste au compartiment Amazon S3, la valeur du paramètre `--content` est le chemin d'accès au fichier manifeste JSON.

   ```
   aws ssm create-document \
       --name "package-name" \
       --content file://path-to-manifest-file \
       --attachments Key="SourceUrl",Values="amzn-s3-demo-bucket" \
       --version-name version-value-from-manifest \
       --document-type Package
   ```

   Voici un exemple.

   ```
   aws ssm create-document \
       --name "ExamplePackage" \
       --content file://path-to-manifest-file \
       --attachments Key="SourceUrl",Values="https://s3.amazonaws.com/amzn-s3-demo-bucket/ExamplePackage" \
       --version-name 1.0.1 \
       --document-type Package
   ```

1. Vérifiez que votre package a été ajouté et affichez le manifeste du package en exécutant la commande suivante, en le *package-name* remplaçant par le nom de votre package. Pour obtenir une version spécifique du document (différente de la version d'un package), vous pouvez ajouter le paramètre `--document-version`.

   ```
   aws ssm get-document \
       --name "package-name"
   ```

Pour de plus amples informations sur les autres options que vous pouvez utiliser avec la commande **create-document**, veuillez consulter [https://docs.aws.amazon.com/cli/latest/reference/ssm/create-document.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/create-document.html) dans la section AWS Systems Manager de la *Référence de Command AWS CLI *. Pour de plus amples informations sur les autres options que vous pouvez utiliser avec la commande **get-document**, veuillez consulter [https://docs.aws.amazon.com/cli/latest/reference/ssm/get-document.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-document.html).