

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.

# Connect un CodeArtifact dépôt à un dépôt public
<a name="external-connection"></a>

Vous pouvez ajouter une connexion externe entre un CodeArtifact référentiel et un référentiel public externe tel que [https://npmjs.com](https://npmjs.com)le [référentiel Maven Central](https://repo.maven.apache.org/maven2/). Ensuite, lorsque vous demandez un package au CodeArtifact référentiel qui n'est pas déjà présent dans le référentiel, le package peut être récupéré à partir de la connexion externe. Cela permet de consommer les dépendances open source utilisées par votre application.

Dans CodeArtifact, la manière prévue d'utiliser les connexions externes est d'avoir un référentiel par domaine avec une connexion externe à un référentiel public donné. Par exemple, si vous souhaitez vous connecter à npmjs.com, configurez un référentiel de votre domaine avec une connexion externe à npmjs.com et configurez tous les autres référentiels avec une connexion amont. De cette façon, tous les référentiels peuvent utiliser les packages qui ont déjà été récupérés sur npmjs.com, plutôt que de les récupérer et de les stocker à nouveau.

**Topics**
+ [Connect à un référentiel externe (console)](#adding-an-external-connection-console)
+ [Se connecter à un référentiel externe (CLI)](#adding-an-external-connection)
+ [Référentiels de connexions externes pris en charge](#supported-public-repositories)
+ [Supprimer une connexion externe (CLI)](#removing-an-external-connection)

## Connect à un référentiel externe (console)
<a name="adding-an-external-connection-console"></a>

Lorsque vous utilisez la console pour ajouter une connexion à un référentiel externe, les événements suivants se produisent :

1. Un `-store` dépôt pour le dépôt externe sera créé dans votre CodeArtifact domaine s'il n'en existe pas déjà un. Ces `-store` référentiels se comportent comme des référentiels intermédiaires entre votre dépôt et le référentiel externe et vous permettent de vous connecter à plusieurs référentiels externes.

1. Le `-store` référentiel approprié est ajouté en amont à votre référentiel.

La liste suivante répertorie chaque `-store` référentiel CodeArtifact et le référentiel externe auquel ils se connectent.

1. `cargo-store`est connecté à crates.io.

1. `clojars-store`est connecté au dépôt Clojars.

1. `commonsware-store`est connecté au référentiel CommonsWare Android.

1. `google-android-store`est connecté à Google Android.

1. `gradle-plugins-store`est connecté aux plugins Gradle.

1. `maven-central-store`est connecté au référentiel central Maven.

1. `npm-store`est connecté à npmjs.com.

1. `nuget-store`est connecté à nuget.org.

1. `pypi-store`est connecté à la Python Packaging Authority.

1. `rubygems-store`est connecté à RubyGems .org.

**Pour se connecter à un référentiel externe (console)**

1. Ouvrez la AWS CodeArtifact console sur [https://console.aws.amazon.com/codesuite/codeartifact/home](https://console.aws.amazon.com/codesuite/codeartifact/home).

1.  Dans le volet de navigation, choisissez **Domains**, puis le nom de domaine qui contient votre référentiel. 

1.  Choisissez le nom de votre dépôt.

1.  Choisissez **Modifier**.

1. Dans **Référentiels en amont**, choisissez **Associer un référentiel en amont** et ajoutez le `-store` référentiel approprié connecté en tant que référentiel en amont.

1.  Choisissez **Mettre à jour le référentiel**.

Une fois le `-store` référentiel ajouté en tant que référentiel en amont, les gestionnaires de packages connectés à votre CodeArtifact référentiel peuvent récupérer les packages depuis le référentiel externe correspondant.

## Se connecter à un référentiel externe (CLI)
<a name="adding-an-external-connection"></a>

Vous pouvez utiliser le AWS CLI pour connecter votre CodeArtifact dépôt à un référentiel externe en ajoutant une connexion externe directement au référentiel. Cela permettra aux utilisateurs connectés au CodeArtifact référentiel, ou à l'un de ses référentiels en aval, de récupérer des packages depuis le référentiel externe configuré. Chaque CodeArtifact dépôt ne peut avoir qu'une seule connexion externe.

Il est recommandé d'avoir un dépôt par domaine avec une connexion externe à un dépôt public donné. Pour connecter d'autres référentiels au référentiel public, ajoutez le référentiel avec la connexion externe en amont. Si vous ou un autre membre de votre domaine avez déjà configuré des connexions externes dans la console, votre domaine possède probablement déjà un `-store` référentiel avec une connexion externe au référentiel public auquel vous souhaitez vous connecter. Pour plus d'informations sur `-store` les référentiels et la connexion à la console, consultez[Connect à un référentiel externe (console)](#adding-an-external-connection-console).

**Pour ajouter une connexion externe à un CodeArtifact référentiel (CLI)**
+ `associate-external-connection`À utiliser pour ajouter une connexion externe. L'exemple suivant connecte un référentiel au registre public npm, npmjs.com. Pour obtenir la liste des référentiels externes pris en charge, consultez[Référentiels de connexions externes pris en charge](#supported-public-repositories).

  ```
  aws codeartifact associate-external-connection --external-connection public:npmjs \
      --domain my_domain --domain-owner 111122223333 --repository my_repo
  ```

  Exemple de sortie :

  ```
  {
      "repository": {
          "name": my_repo
          "administratorAccount": "123456789012",
          "domainName": "my_domain",
          "domainOwner": "111122223333",
          "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my_domain/my_repo",
          "description": "A description of my_repo",
          "upstreams": [],
          "externalConnections": [
              {
                  "externalConnectionName": "public:npmjs",
                  "packageFormat": "npm",
                  "status": "AVAILABLE"
              }
          ]
      }
  }
  ```

Après avoir ajouté une connexion externe, consultez [Demande de packages à partir de connexions externes](external-connection-requesting-packages.md) pour plus d'informations sur la demande de packages depuis un référentiel externe avec une connexion externe.

## Référentiels de connexions externes pris en charge
<a name="supported-public-repositories"></a>

 CodeArtifact prend en charge une connexion externe aux référentiels publics suivants. Pour utiliser la CodeArtifact CLI afin de spécifier une connexion externe, utilisez la valeur du `--external-connection` paramètre dans la colonne **Nom** lorsque vous exécutez la `associate-external-connection` commande. 


| Type de référentiel | Description | Nom | 
| --- | --- | --- | 
| Maven | Référentiel Clojar | public:maven-clojars | 
| Maven | CommonsWare Référentiel Android | public:maven-commonsware | 
| Maven | Référentiel Google Android | public:maven-googleandroid | 
| Maven | Référentiel de plugins Gradle | public:maven-gradleplugins | 
| Maven | Maven Central | public:maven-central | 
| npm | registre public npm | public:npmjs | 
| NuGet | NuGet Galerie | public:nuget-org | 
| Python | Index des packages Python | public:pypi | 
| Ruby | RubyGems.org | public:ruby-gems-org | 
| Rust | Crates.io | public:crates-io | 

## Supprimer une connexion externe (CLI)
<a name="removing-an-external-connection"></a>

Pour supprimer une connexion externe ajoutée à l'aide de la `associate-external-connection` commande contenue dans le AWS CLI, utilisez`disassociate-external-connection`.

```
aws codeartifact disassociate-external-connection --external-connection public:npmjs \
    --domain my_domain --domain-owner 111122223333 --repository my_repo
```

Exemple de sortie :

```
{
    "repository": {
        "name": my_repo
        "administratorAccount": "123456789012",
        "domainName": "my_domain",
        "domainOwner": "111122223333",
        "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my_domain/my_repo",
        "description": "A description of my_repo",
        "upstreams": [],
        "externalConnections": []
    }
}
```