

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Connect un CodeArtifact repository a un repository pubblico
<a name="external-connection"></a>

[Puoi aggiungere una connessione esterna tra un repository e un CodeArtifact repository pubblico esterno come [https://npmjs.com](https://npmjs.com)o il repository Maven Central.](https://repo.maven.apache.org/maven2/) Quindi, quando richiedi un pacchetto dal CodeArtifact repository che non è già presente nel repository, il pacchetto può essere recuperato dalla connessione esterna. In questo modo è possibile utilizzare le dipendenze open source utilizzate dall'applicazione.

Nel CodeArtifact, il modo previsto di utilizzare le connessioni esterne consiste nell'avere un repository per dominio con una connessione esterna a un determinato archivio pubblico. Ad esempio, se desideri connetterti a npmjs.com, configura un repository nel tuo dominio con una connessione esterna a npmjs.com e configura tutti gli altri repository con una connessione upstream. In questo modo, tutti i repository possono utilizzare i pacchetti che sono già stati recuperati da npmjs.com, anziché recuperarli e archiviarli nuovamente.

**Topics**
+ [Connect a un repository esterno (console)](#adding-an-external-connection-console)
+ [Connect a un repository esterno (CLI)](#adding-an-external-connection)
+ [Archivi di connessioni esterne supportati](#supported-public-repositories)
+ [Rimuovere una connessione esterna (CLI)](#removing-an-external-connection)

## Connect a un repository esterno (console)
<a name="adding-an-external-connection-console"></a>

Quando si utilizza la console per aggiungere una connessione a un repository esterno, si verifica quanto segue:

1. Un `-store` repository per il repository esterno verrà creato nel tuo CodeArtifact dominio se non ne esiste già uno. Questi `-store` repository si comportano come repository intermedi tra il tuo repository e il repository esterno e consentono di connetterti a più di un repository esterno.

1. Il `-store` repository appropriato viene aggiunto come repository a monte del repository.

L'elenco seguente contiene ogni `-store` repository presente CodeArtifact e il rispettivo repository esterno a cui si connettono.

1. `cargo-store`è collegato a crates.io.

1. `clojars-store`è collegato a Clojars Repository.

1. `commonsware-store`è connesso ad Android Repository. CommonsWare 

1. `google-android-store`è connesso a Google Android.

1. `gradle-plugins-store`è collegato ai plugin Gradle.

1. `maven-central-store`è collegato a Maven Central Repository.

1. `npm-store`è collegato a npmjs.com.

1. `nuget-store`è collegato a nuget.org.

1. `pypi-store`è collegato alla Python Packaging Authority.

1. `rubygems-store`è connesso RubyGems a.org.

**Per connettersi a un repository esterno (console)**

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

1.  Nel riquadro di navigazione, scegli **Domini**, quindi scegli il nome di dominio che contiene il tuo repository. 

1.  Scegli il nome del tuo repository.

1.  Scegli **Modifica**.

1. Nei **repository upstream, scegli Associa repository** **upstream e aggiungi il repository** appropriato collegato come `-store` repository upstream.

1.  **Scegli Aggiorna repository.**

Dopo che il `-store` repository è stato aggiunto come repository upstream, i gestori di pacchetti collegati al repository possono recuperare i pacchetti dal CodeArtifact rispettivo repository esterno.

## Connect a un repository esterno (CLI)
<a name="adding-an-external-connection"></a>

È possibile utilizzare il AWS CLI per connettere il CodeArtifact repository a un repository esterno aggiungendo una connessione esterna direttamente al repository. Ciò consentirà agli utenti connessi al CodeArtifact repository, o a uno qualsiasi dei suoi repository a valle, di recuperare i pacchetti dal repository esterno configurato. Ogni CodeArtifact repository può avere solo una connessione esterna.

Si consiglia di avere un repository per dominio con una connessione esterna a un determinato repository pubblico. Per connettere altri repository all'archivio pubblico, aggiungi il repository con la connessione esterna come upstream. Se tu o qualcun altro nel tuo dominio avete già configurato connessioni esterne nella console, è probabile che il dominio disponga già di un `-store` repository con una connessione esterna all'archivio pubblico a cui desideri connetterti. Per ulteriori informazioni sugli `-store` archivi e sulla connessione con la console, consulta. [Connect a un repository esterno (console)](#adding-an-external-connection-console)

**Per aggiungere una connessione esterna a un CodeArtifact repository (CLI)**
+ Utilizzare `associate-external-connection` per aggiungere una connessione esterna. L'esempio seguente collega un repository al registro pubblico npm, npmjs.com. Per un elenco dei repository esterni supportati, vedere. [Archivi di connessioni esterne supportati](#supported-public-repositories)

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

  Output di esempio:

  ```
  {
      "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"
              }
          ]
      }
  }
  ```

Dopo aver aggiunto una connessione esterna, consulta [Richiesta di pacchetti da connessioni esterne](external-connection-requesting-packages.md) per informazioni sulla richiesta di pacchetti da un repository esterno con una connessione esterna.

## Archivi di connessioni esterne supportati
<a name="supported-public-repositories"></a>

 CodeArtifact supporta una connessione esterna ai seguenti archivi pubblici. Per utilizzare la CodeArtifact CLI per specificare una connessione esterna, utilizzate il valore nella colonna **Nome** per il `--external-connection` parametro quando eseguite il `associate-external-connection` comando. 


| Repository type (Tipo di repository) | Description | Nome | 
| --- | --- | --- | 
| Maven | Repository Clojars | public:maven-clojars | 
| Maven | CommonsWare Archivio Android | public:maven-commonsware | 
| Maven | Archivio Google Android | public:maven-googleandroid | 
| Maven | Archivio di plugin Gradle | public:maven-gradleplugins | 
| Maven | Maven Central | public:maven-central | 
| npm | registro pubblico npm | public:npmjs | 
| NuGet | NuGet Galleria | public:nuget-org | 
| Python | Indice dei pacchetti Python | public:pypi | 
| Ruby | RubyGems.org | public:ruby-gems-org | 
| Rust | Crates.io | public:crates-io | 

## Rimuovere una connessione esterna (CLI)
<a name="removing-an-external-connection"></a>

Per rimuovere una connessione esterna che è stata aggiunta utilizzando il `associate-external-connection` comando in AWS CLI, utilizzare`disassociate-external-connection`.

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

Output di esempio:

```
{
    "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": []
    }
}
```