

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Conectar um CodeArtifact repositório a um repositório público
<a name="external-connection"></a>

Você pode adicionar uma conexão externa entre um CodeArtifact repositório e um repositório público externo, como [https://npmjs.com](https://npmjs.com)o repositório [Maven Central](https://repo.maven.apache.org/maven2/). Então, quando você solicita um pacote do CodeArtifact repositório que ainda não está presente no repositório, o pacote pode ser obtido na conexão externa. Isso possibilitará o consumo de dependências de código aberto utilizadas pelo seu aplicativo.

Em CodeArtifact, a forma pretendida de usar conexões externas é ter um repositório por domínio com uma conexão externa com um determinado repositório público. Por exemplo, se você quiser se conectar a npmjs.com, configure um repositório em seu domínio com uma conexão externa com npmjs.com e configure todos os outros repositórios com um upstream para ele. Dessa forma, todos os repositórios serão capazes de usar os pacotes que já foram obtidos de npmjs.com, em vez de buscá-los e armazená-los novamente.

**Topics**
+ [Conectar-se a um repositório externo (console)](#adding-an-external-connection-console)
+ [Conectar-se a um repositório externo (CLI)](#adding-an-external-connection)
+ [Repositórios de conexão externa compatíveis](#supported-public-repositories)
+ [Remover uma conexão externa (CLI)](#removing-an-external-connection)

## Conectar-se a um repositório externo (console)
<a name="adding-an-external-connection-console"></a>

Quando você usa o console para adicionar uma conexão a um repositório externo, o seguinte ocorrerá:

1. Um `-store` repositório para o repositório externo será criado em seu CodeArtifact domínio, caso ainda não exista um. Esses repositórios `-store` se comportam como repositórios intermediários entre o seu repositório e o externo e permitem que você se conecte a mais de um repositório externo.

1. O repositório `-store` adequado é adicionado como um upstream ao seu repositório.

A lista a seguir contém cada `-store` repositório CodeArtifact e o respectivo repositório externo ao qual eles se conectam.

1. `cargo-store` está conectado a crates.io.

1. `clojars-store` está conectado ao repositório Clojars.

1. `commonsware-store`está conectado ao Repositório CommonsWare Android.

1. `google-android-store` está conectado ao Google Android.

1. `gradle-plugins-store` está conectado aos plug-ins do Gradle.

1. `maven-central-store` está conectado ao repositório Maven Central.

1. `npm-store` está conectado a npmjs.com.

1. `nuget-store` está conectado a nuget.org.

1. `pypi-store` está conectado ao Python Packaging Authority.

1. `rubygems-store`está conectado a RubyGems .org.

**Para se conectar a um repositório externo (console)**

1. Abra o AWS CodeArtifact console em [https://console.aws.amazon.com/codesuite/codeartifact/home](https://console.aws.amazon.com/codesuite/codeartifact/home).

1.  No painel de navegação, selecione **Domínios** e selecione o nome de domínio que contém o repositório. 

1.  Escolha o nome para o seu repositório.

1.  Escolha **Editar**.

1. Em **Repositórios upstream**, escolha **Associar repositório upstream** e adicione o repositório `-store` correto conectado como upstream.

1.  Escolha **Atualizar repositório**.

Depois que o `-store` repositório é adicionado como um repositório upstream, os gerenciadores de pacotes conectados ao seu CodeArtifact repositório podem buscar pacotes do respectivo repositório externo.

## Conectar-se a um repositório externo (CLI)
<a name="adding-an-external-connection"></a>

Você pode usar o AWS CLI para conectar seu CodeArtifact repositório a um repositório externo adicionando uma conexão externa diretamente ao repositório. Isso permitirá que os usuários conectados ao CodeArtifact repositório, ou a qualquer um de seus repositórios downstream, busquem pacotes do repositório externo configurado. Cada CodeArtifact repositório só pode ter uma conexão externa.

É recomendável ter um repositório por domínio, com uma conexão externa com um determinado repositório público. Para conectar outros repositórios ao repositório público, basta adicionar o repositório com a conexão externa como um upstream a eles. Se você ou outra pessoa em seu domínio já tiver configurado conexões externas no console, seu domínio provavelmente já terá um repositório `-store` com uma conexão externa com o repositório público ao qual você deseja se conectar. Para obter mais informações sobre repositórios `-store` e conexão com o console, consulte [Conectar-se a um repositório externo (console)](#adding-an-external-connection-console).

**Para adicionar uma conexão externa a um CodeArtifact repositório (CLI)**
+ Use `associate-external-connection` para adicionar uma conexão externa. O exemplo a seguir mostra a conexão de um repositório ao registro npm público, npmjs.com. Para ver uma lista dos repositórios externos, consulte [Repositórios de conexão externa compatíveis](#supported-public-repositories).

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

  Resultado do exemplo:

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

Depois de adicionar uma conexão externa, consulte [Solicitar pacotes de conexões externas](external-connection-requesting-packages.md) para obter informações sobre como solicitar pacotes de um repositório externo com uma conexão externa.

## Repositórios de conexão externa compatíveis
<a name="supported-public-repositories"></a>

 CodeArtifact suporta uma conexão externa com os seguintes repositórios públicos. Para usar a CodeArtifact CLI para especificar uma conexão externa, use o valor na coluna **Nome** do `--external-connection` parâmetro ao executar o `associate-external-connection` comando. 


| Tipo de repositório | Description | Nome | 
| --- | --- | --- | 
| Maven | Repositório do Clojars | public:maven-clojars | 
| Maven | CommonsWare Repositório Android | public:maven-commonsware | 
| Maven | Repositório do Google Android | public:maven-googleandroid | 
| Maven | Repositório de plug-ins do Gradle | public:maven-gradleplugins | 
| Maven | Maven Central | public:maven-central | 
| npm | Registro npm público | public:npmjs | 
| NuGet | NuGet Galeria | public:nuget-org | 
| Python | Python Package Index | public:pypi | 
| Ruby | RubyGems.org | public:ruby-gems-org | 
| Rust | Crates.io | public:crates-io | 

## Remover uma conexão externa (CLI)
<a name="removing-an-external-connection"></a>

Para remover uma conexão externa que foi adicionada usando o `associate-external-connection` comando no AWS CLI, use`disassociate-external-connection`.

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

Resultado do exemplo:

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