

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.

# Utilisation CodeArtifact avec des packages génériques
<a name="using-generic"></a>

Ces rubriques vous montrent comment utiliser et publier des packages génériques à l'aide de AWS CodeArtifact.

**Topics**
+ [Vue d'ensemble des packages génériques](generic-packages-overview.md)
+ [Commandes prises en charge pour les packages génériques](generic-packages-supported-commands.md)
+ [Publication et consommation de packages génériques](publishing-using-generic-packages.md)

# Vue d'ensemble des packages génériques
<a name="generic-packages-overview"></a>

Grâce au format de `generic` package, vous pouvez télécharger n'importe quel type de fichier pour créer un package dans un CodeArtifact référentiel. Les packages génériques ne sont associés à aucun langage de programmation, type de fichier ou écosystème de gestion de packages spécifique. Cela peut être utile pour stocker et versionner des artefacts de build arbitraires, tels que des installateurs d'applications, des modèles d'apprentissage automatique, des fichiers de configuration, etc.

Un package générique comprend un nom de package, un espace de noms, une version et un ou plusieurs actifs (ou fichiers). Les packages génériques peuvent coexister avec des packages d'autres formats dans un CodeArtifact référentiel unique.

Vous pouvez utiliser le SDK AWS CLI ou le SDK pour travailler avec des packages génériques. Pour obtenir la liste complète des AWS CLI commandes qui fonctionnent avec les packages génériques, consultez[Commandes prises en charge pour les packages génériques](generic-packages-supported-commands.md).

## Contraintes de package génériques
<a name="generic-packages-constraints"></a>
+ Ils ne sont jamais extraits des référentiels en amont. Ils ne peuvent être obtenus qu'à partir du référentiel dans lequel ils ont été publiés.
+ Ils ne peuvent pas déclarer les dépendances à renvoyer [ListPackageVersionDependencies](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_ListPackageVersionDependencies.html)ou à afficher dans le AWS Management Console .
+ Ils peuvent stocker des fichiers README et LICENSE, mais ils ne sont pas interprétés par CodeArtifact. Les informations contenues dans ces fichiers ne sont pas renvoyées par [GetPackageVersionReadme](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_GetPackageVersionReadme.html)ou [DescribePackageVersion](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_DescribePackageVersion.html), et n'apparaissent pas dans le AWS Management Console.
+ Comme pour tous les packages CodeArtifact inclus, la taille des actifs et le nombre d'actifs par package sont limités. Pour plus d'informations sur les limites et les quotas dans CodeArtifact, voir[Quotas dans AWS CodeArtifact](service-limits.md).
+ Les noms des actifs qu'ils contiennent doivent respecter les règles suivantes :
  + Les noms d'actifs peuvent utiliser des lettres et des chiffres Unicode. Plus précisément, les catégories de caractères Unicode suivantes sont autorisées : lettre minuscule (`Ll`), lettre modificatrice (`Lm`), autre lettre (`Lo`), lettre majuscule (), lettre majuscule (`Lt`), numéro de lettre (`Lu`) et nombre `Nl` décimal (). `Nd`
  + Les caractères spéciaux suivants sont acceptés : `~!@^&()-_+[]{};,.`
  + Les actifs ne peuvent pas être nommés `.` ou `..`
  + Les espaces sont les seuls espaces autorisés. Les noms de ressources ne peuvent pas commencer ou se terminer par un espace, ni inclure des espaces consécutifs.

# Commandes prises en charge pour les packages génériques
<a name="generic-packages-supported-commands"></a>

Vous pouvez utiliser le SDK AWS CLI ou le SDK pour travailler avec des packages génériques. Les CodeArtifact commandes suivantes fonctionnent avec les packages génériques :
+ [copy-package-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/copy-package-versions.html)(voir[Copier des packages entre des référentiels](copy-package.md))
+ [delete-package (voir](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/delete-package.html)) [Suppression d'un package (AWS CLI)](delete-package.md#delete-package-CLI)
+ [delete-package-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/delete-package-versions.html)(voir[Supprimer une version de package (AWS CLI)](delete-package.md#delete-package-version-CLI))
+ [décrivez le package](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/describe-package.html) 
+ [describe-package-version](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/describe-package-version.html)(voir[Afficher et mettre à jour les détails et les dépendances des versions du package](describe-package-version.md))
+ [dispose-package-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/dispose-package-versions.html)(voir[Élimination des versions du package](update-package-version-status.md#dispose-package-versions))
+ [get-package-version-asset](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/get-package-version-asset.html)(voir[Télécharger les ressources de la version du package](download-assets.md))
+ [list-package-version-assets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/list-package-version-assets.html)(voir[Répertorier les actifs de la version](list-assets.md))
+ [list-package-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/list-package-versions.html)(voir[Lister les versions des packages](list-packages-versions.md))
+ [list-packages (voir](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/list-packages.html)) [Lister les noms de packages](list-packages.md)
+ [publish-package-version](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/publish-package-version.html)(voir[Publication d'un package générique](publishing-using-generic-packages.md#publishing-generic-packages))
+ [put-package-origin-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/put-package-origin-configuration.html)(voir[Modification des contrôles d'origine des packages](package-origin-controls.md))
**Note**  
Vous pouvez utiliser le paramètre de contrôle `publish` d'origine pour autoriser ou bloquer la publication d'un nom de package générique dans un référentiel. Toutefois, le `upstream` paramètre ne s'applique pas aux packages génériques car ils ne peuvent pas être extraits d'un référentiel en amont.
+ [update-package-versions-status](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/update-package-versions-status.html)(voir[Mettre à jour le statut de version du package](update-package-version-status.md#updating-pv-status))

# Publication et consommation de packages génériques
<a name="publishing-using-generic-packages"></a>

Pour publier une version de package générique et ses ressources associées, utilisez la `publish-package-version` commande. Vous pouvez répertorier les actifs d'un package générique à l'aide de la `list-package-version-asset` commande et les télécharger à l'aide de`get-package-version-asset`. La rubrique suivante contient des step-by-step instructions pour publier des packages génériques ou télécharger des actifs de packages génériques à l'aide de ces commandes.

## Publication d'un package générique
<a name="publishing-generic-packages"></a>

Un package générique comprend un nom de package, un espace de noms, une version et un ou plusieurs actifs (ou fichiers). Cette rubrique explique comment publier un package nommé`my-package`, avec l'espace de noms`my-ns`, la version `1.0.0` et contenant une ressource nommée`asset.tar.gz`.

**Prérequis :**
+ Configurez et configurez le AWS Command Line Interface avec CodeArtifact (voir[Configuration avec AWS CodeArtifact](get-set-up-for-codeartifact.md))
+ Disposer d'un CodeArtifact domaine et d'un référentiel (voir[Commencer à utiliser le AWS CLI](getting-started-cli.md))

**Pour publier un package générique**

1. Utilisez la commande suivante pour générer le SHA256 hachage de chaque fichier que vous souhaitez télécharger dans une version de package et placez la valeur dans une variable d'environnement. Cette valeur est utilisée comme contrôle d'intégrité pour vérifier que le contenu du fichier n'a pas changé après son envoi initial. 

------
#### [ Linux ]

   ```
   export ASSET_SHA256=$(sha256sum asset.tar.gz | awk '{print $1;}')
   ```

------
#### [ macOS ]

   ```
   export ASSET_SHA256=$(shasum -a 256 asset.tar.gz | awk '{print $1;}')
   ```

------
#### [ Windows ]

   ```
   for /f "tokens=*" %G IN ('certUtil -hashfile asset.tar.gz SHA256 ^| findstr /v "hash"') DO SET "ASSET_SHA256=%G"
   ```

------

1. Appelez `publish-package-version` pour télécharger la ressource et créer une nouvelle version du package.
**Note**  
 Si votre package contient plusieurs ressources, vous pouvez appeler `publish-package-version` une fois pour chaque ressource à télécharger. Incluez l'`--unfinished`argument pour chaque appel à`publish-package-version`, sauf lors du téléchargement de la ressource finale. L'omission `--unfinished` définira le statut de la version du package sur `Published` et empêchera le téléchargement de ressources supplémentaires vers celui-ci.  
 Vous pouvez également inclure `--unfinished` pour chaque appel à`publish-package-version`, puis définir le statut de la version du package à `Published` l'aide de la `update-package-versions-status` commande.

------
#### [ Linux/macOS ]

   ```
   aws codeartifact publish-package-version --domain my_domain --repository my_repo \
         --format generic --namespace my-ns --package my-package --package-version 1.0.0 \
         --asset-content asset.tar.gz --asset-name asset.tar.gz \
         --asset-sha256 $ASSET_SHA256
   ```

------
#### [ Windows ]

   ```
   aws codeartifact publish-package-version --domain my_domain --repository my_repo ^
         --format generic --namespace my-ns --package my-package --package-version 1.0.0 ^
         --asset-content asset.tar.gz --asset-name asset.tar.gz ^  
         --asset-sha256 %ASSET_SHA256%
   ```

------

   Le résultat est présenté ci-dessous :

   ```
   {
       "format": "generic",
       "namespace": "my-ns",
       "package": "my-package",
       "version": "1.0.0",
       "versionRevision": "REVISION-SAMPLE-1-C7F4S5E9B772FC",
       "status": "Published",
       "asset": {
           "name": "asset.tar.gz",
           "size": 11,
           "hashes": {
               "MD5": "41bba98d5b9219c43089eEXAMPLE-MD5",
               "SHA-1": "69b215c25dd4cda1d997a786ec6EXAMPLE-SHA-1",
               "SHA-256": "43f24850b7b7b7d79c5fa652418518fbdf427e602b1edabe6EXAMPLE-SHA-256",
               "SHA-512": "3947382ac2c180ee3f2aba4f8788241527c8db9dfe9f4b039abe9fc560aaf5a1fced7bd1e80a0dca9ce320d95f0864e0dec3ac4f2f7b2b2cbEXAMPLE-SHA-512"
           }
       }
   }
   ```

## Répertorier les actifs des packages génériques
<a name="listing-generic-package-assets"></a>

Pour répertorier les actifs contenus dans un package générique, utilisez la `list-package-version-assets` commande. Pour de plus amples informations, veuillez consulter [Répertorier les actifs de la version](list-assets.md).

L'exemple suivant répertorie les actifs de la version `1.0.0` du package`my-package`.

**Pour répertorier les actifs des versions du package**
+ Appelez `list-package-version-assets` pour répertorier les actifs contenus dans un package générique.

------
#### [ Linux/macOS ]

  ```
  aws codeartifact list-package-version-assets --domain my_domain \
    --repository my_repo --format generic --namespace my-ns \
    --package my-package --package-version 1.0.0
  ```

------
#### [ Windows ]

  ```
  aws codeartifact list-package-version-assets --domain my_domain ^
    --repository my_repo --format generic --namespace my-ns ^
    --package my-package --package-version 1.0.0
  ```

------

  Le résultat est présenté ci-dessous :

  ```
  {
      "assets": [
          {
              "name": "asset.tar.gz",
              "size": 11,
              "hashes": {
                  "MD5": "41bba98d5b9219c43089eEXAMPLE-MD5",
                  "SHA-1": "69b215c25dd4cda1d997a786ec6EXAMPLE-SHA-1",
                  "SHA-256": "43f24850b7b7b7d79c5fa652418518fbdf427e602b1edabe6EXAMPLE-SHA-256",
                  "SHA-512": "3947382ac2c180ee3f2aba4f8788241527c8db9dfe9f4b039abe9fc560aaf5a1fced7bd1e80a0dca9ce320d95f0864e0dec3ac4f2f7b2b2cbEXAMPLE-SHA-512"
              }
          }
      ],
      "package": "my-package",
      "format": "generic",
      "namespace": "my-ns",
      "version": "1.0.0",
      "versionRevision": "REVISION-SAMPLE-1-C7F4S5E9B772FC"
  }
  ```

## Téléchargement des actifs de packages génériques
<a name="downloading-generic-package-assets"></a>

Pour télécharger les ressources à partir d'un package générique, utilisez la `get-package-version-asset` commande. Pour de plus amples informations, veuillez consulter [Télécharger les ressources de la version du package](download-assets.md).

L'exemple suivant télécharge la ressource `asset.tar.gz` depuis la version `1.0.0` du package `my-package` vers le répertoire de travail actuel dans un fichier également nommé`asset.tar.gz`.

**Pour télécharger les ressources relatives à la version du package**
+ Appelez `get-package-version-asset` pour télécharger des ressources à partir d'un package générique.

------
#### [ Linux/macOS ]

  ```
  aws codeartifact get-package-version-asset --domain my_domain \
    --repository my_repo --format generic --namespace my-ns --package my-package \
    --package-version 1.0.0 --asset asset.tar.gz \ 
    asset.tar.gz
  ```

------
#### [ Windows ]

  ```
  aws codeartifact get-package-version-asset --domain my_domain ^
    --repository my_repo --format generic --namespace my-ns --package my-package ^
    --package-version 1.0.0 --asset asset.tar.gz ^
    asset.tar.gz
  ```

------

  Le résultat est présenté ci-dessous :

  ```
  {
      "assetName": "asset.tar.gz",
      "packageVersion": "1.0.0",
      "packageVersionRevision": "REVISION-SAMPLE-1-C7F4S5E9B772FC"
  }
  ```