

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Úselo CodeArtifact con la CLI de nuget o dotnet
<a name="nuget-cli"></a>

Puede usar herramientas de CLI como `nuget` y `dotnet` para publicar y consumir paquetes desde CodeArtifact. Este documento proporciona información sobre la configuración de las herramientas CLI y su uso para publicar o consumir paquetes.

**Topics**
+ [Configurar la CLI de nuget o dotnet](#nuget-configure-cli)
+ [Consume paquetes NuGet de CodeArtifact](#nuget-consume-cli)
+ [Publica NuGet paquetes en CodeArtifact](#nuget-publish-cli)
+ [CodeArtifact NuGet Referencia del proveedor de credenciales](#nuget-cred-provider-reference)
+ [CodeArtifact NuGet Versiones del proveedor de credenciales](#nuget-cred-provider-history)

## Configurar la CLI de nuget o dotnet
<a name="nuget-configure-cli"></a>

Puede configurar la CLI de nuget o dotnet con el proveedor de CodeArtifact NuGet credenciales, con o manualmente AWS CLI. Se recomienda encarecidamente NuGet realizar la configuración con el proveedor de credenciales para simplificar la configuración y continuar con la autenticación.

### Método 1: configure con el proveedor de CodeArtifact NuGet credenciales
<a name="nuget-configure-cli-cred-provider"></a>

El proveedor de CodeArtifact NuGet credenciales simplifica la autenticación y la configuración con herramientas CodeArtifact NuGet CLI. CodeArtifact los tokens de autenticación son válidos durante un máximo de 12 horas. Para evitar tener que actualizar manualmente el token mientras se usa la CLI nuget o dotnet, el proveedor de credenciales busca periódicamente un nuevo token antes de que caduque el token actual. 

**importante**  
Para usar el proveedor de credenciales, asegúrese de borrar del `nuget.config` archivo todas AWS CodeArtifact las credenciales existentes que se hayan agregado manualmente o ejecutándolas `aws codeartifact login` para configurarlas NuGet previamente.

**Instale y configure el proveedor de CodeArtifact NuGet credenciales**

------
#### [ dotnet ]

1. Descargue la versión más reciente de [AWS. CodeArtifact. NuGet. CredentialProvider herramienta de NuGet .org](https://www.nuget.org/packages/AWS.CodeArtifact.NuGet.CredentialProvider) con el siguiente `dotnet` comando.

   ```
   dotnet tool install -g AWS.CodeArtifact.NuGet.CredentialProvider
   ```

1. Use el `codeartifact-creds install` comando para copiar el proveedor de credenciales a la carpeta de NuGet complementos.

   ```
   dotnet codeartifact-creds install
   ```

1. (Opcional): establece el AWS perfil que quieres usar con el proveedor de credenciales. Si no se establece, el proveedor de credenciales utilizará el perfil predeterminado. Para obtener más información sobre AWS CLI los perfiles, consulte [Perfiles con nombre](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html).

   ```
   dotnet codeartifact-creds configure set profile profile_name
   ```

------
#### [ nuget ]

Realice los siguientes pasos para usar la NuGet CLI para instalar el proveedor de CodeArtifact NuGet credenciales desde un bucket de Amazon S3 y configurarlo. El proveedor de credenciales utilizará el AWS CLI perfil predeterminado. Para obtener más información sobre los perfiles, consulte Perfiles con [nombre](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html).

1. Descargue la última versión del [proveedor de CodeArtifact NuGet credenciales (codeartifact-nuget-credentialprovider.zip)](https://a.co/dbGqKq7) desde un bucket de Amazon S3.

   Para ver y descargar versiones anteriores, consulte [CodeArtifact NuGet Versiones del proveedor de credenciales](#nuget-cred-provider-history).

1. Descomprima el archivo.

1. Copia el **AWS. CodeArtifact. NuGetCredentialProvider**carpeta desde la carpeta **netfx** `%user_profile%/.nuget/plugins/netfx/` a Windows, Linux o `~/.nuget/plugins/netfx` macOS.

1. Copia el **AWS. CodeArtifact. NuGetCredentialProvider**carpeta desde la carpeta **netcore** `%user_profile%/.nuget/plugins/netcore/` a Windows, Linux o `~/.nuget/plugins/netcore` macOS.

------

Después de crear un repositorio y configurar el proveedor de credenciales, puede usar las herramientas de la CLI `nuget` o `dotnet` para instalar y publicar paquetes. Para obtener más información, consulte [Consume paquetes NuGet de CodeArtifact](#nuget-consume-cli) y [Publica NuGet paquetes en CodeArtifact](#nuget-publish-cli).

### Método 2: configurar nuget o dotnet con el comando login
<a name="nuget-configure-login"></a>

El `codeartifact login` comando del AWS CLI añade un punto final del repositorio y un token de autorización a tu archivo de NuGet configuración, lo que permite que nuget o dotnet se conecten a tu CodeArtifact repositorio. Esto modificará la NuGet configuración a nivel de usuario, que se encuentra en `%appdata%\NuGet\NuGet.Config` Windows `~/.config/NuGet/NuGet.Config` o `~/.nuget/NuGet/NuGet.Config` Mac/Linux. [Para obtener más información sobre NuGet las configuraciones, consulte Configuraciones comunes. NuGet ](https://docs.microsoft.com/en-us/nuget/consume-packages/configuring-nuget-behavior) 

**Configurar nuget o dotnet con el comando `login`**

1. Configure sus AWS credenciales para usarlas con AWS CLI, tal y como se describe en[Introducción a CodeArtifact](getting-started.md).

1. Asegúrese de que la herramienta NuGet CLI (`nuget`o`dotnet`) se haya instalado y configurado correctamente. Para obtener instrucciones, consulte la documentación de [nuget](https://docs.microsoft.com/en-us/nuget/reference/nuget-exe-cli-reference) o [dotnet](https://docs.microsoft.com/en-us/dotnet/core/install/).

1. Use el CodeArtifact `login` comando para obtener las credenciales para usarlas con NuGet.
**nota**  
Si va a acceder a un repositorio de un dominio de su propiedad, no tiene que incluir `--domain-owner`. Para obtener más información, consulte [Dominios entre cuentas](domain-overview.md#domain-overview-cross-account).

------
#### [ dotnet ]

**importante**  
**Usuarios de Linux y macOS:** dado que el cifrado no es compatible con plataformas que no son de Windows, las credenciales recuperadas se almacenarán como texto sin formato en el archivo de configuración.

   ```
   aws codeartifact login --tool dotnet --domain my_domain --domain-owner 111122223333 --repository my_repo
   ```

------
#### [ nuget ]

   ```
   aws codeartifact login --tool nuget --domain my_domain --domain-owner 111122223333 --repository my_repo
   ```

------

El comando de inicio de sesión hará lo siguiente:
+ Obtenga un token de autorización CodeArtifact utilizando sus credenciales. AWS 
+ Actualice su NuGet configuración a nivel de usuario con una nueva entrada para la fuente NuGet del paquete. Se `domain_name/repo_name` llamará a la fuente que apunta al punto final de su CodeArtifact repositorio.

El período de autorización predeterminado después de una llamada `login` es de 12 horas y `login` debe invocarse para actualizar periódicamente el token. Para obtener más información sobre el token de autorización creado con el comando `login`, consulte [Tokens creados con el comando `login`](tokens-authentication.md#auth-token-login).

Después de crear un repositorio y configurar la autenticación, puede utilizar los clientes CLI `nuget`, `dotnet` o `msbuild` para instalar y publicar paquetes. Para obtener más información, consulte [Consume paquetes NuGet de CodeArtifact](#nuget-consume-cli) y [Publica NuGet paquetes en CodeArtifact](#nuget-publish-cli).

### Método 3: configurar nuget o dotnet sin el comando login
<a name="nuget-configure-without-login"></a>

Para la configuración manual, debe añadir un punto final del repositorio y un token de autorización al archivo de NuGet configuración para permitir que nuget o dotnet se conecten a su CodeArtifact repositorio. 

**Configura manualmente nuget o dotnet para que se conecten a tu repositorio. CodeArtifact **

1. Determine el punto final de su CodeArtifact repositorio mediante el `get-repository-endpoint` AWS CLI comando.

   ```
   aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format nuget
   ```

   Ejemplo de código de salida:

   ```
   {
      "repositoryEndpoint": "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/"
   }
   ```

1. Obtén un token de autorización para conectarte a tu repositorio desde tu administrador de paquetes mediante el `get-authorization-token` AWS CLI comando.

   ```
   aws codeartifact get-authorization-token --domain my_domain
   ```

   Ejemplo de código de salida:

   ```
   {
      "authorizationToken": "eyJ2I...viOw",
      "expiration": 1601616533.0
   }
   ```

1. Crea la URL completa del punto de conexión del repositorio agregando `/v3/index.json` a la URL devuelta por `get-repository-endpoint` en el paso 3.

1. Configure nuget o dotnet para usar el punto de conexión del repositorio del paso 1 y el token de autorización del paso 2.
**nota**  
`/v3/index.json`Para que nuget o dotnet se conecten correctamente a un CodeArtifact repositorio, la URL de origen debe terminar en.

------
#### [ dotnet ]

   **Usuarios de Linux y macOS:** dado que el cifrado no se admite en plataformas que no sean Windows, debe añadir la marca `--store-password-in-clear-text` al siguiente comando. Tenga en cuenta que esto almacenará la contraseña como texto sin formato en el archivo de configuración.

   ```
   dotnet nuget add source https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json --name packageSourceName --password eyJ2I...viOw --username aws
   ```

**nota**  
Para actualizar una fuente existente, utilice el comando `dotnet nuget update source`.

------
#### [ nuget ]

   ```
   nuget sources add -name domain_name/repo_name -Source https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json -password eyJ2I...viOw -username aws
   ```

------

   Ejemplo de código de salida:

   ```
   Package source with Name: domain_name/repo_name added successfully.
   ```
**nota**  
Si quiere utilizar un punto de conexión de pila doble, use el punto de conexión `codeartifact.region.on.aws`.

## Consume paquetes NuGet de CodeArtifact
<a name="nuget-consume-cli"></a>

Una vez que lo haya [configurado NuGet CodeArtifact](https://docs.aws.amazon.com//codeartifact/latest/ug/nuget-cli.html), podrá consumir NuGet los paquetes que estén almacenados en su CodeArtifact repositorio o en uno de sus repositorios ascendentes.

Para consumir una versión de paquete de un CodeArtifact repositorio o de uno de sus repositorios ascendentes con `nuget` o`dotnet`, ejecute el siguiente comando sustituyéndola por *packageName* el nombre del paquete que desee consumir y *packageSourceName* por el nombre de origen del CodeArtifact repositorio en el archivo de configuración. NuGet Si usó el `login` comando para configurar la NuGet configuración, el nombre de la fuente es. *domain\$1name/repo\$1name*

**nota**  
Cuando se solicita un paquete, el NuGet cliente almacena en caché las versiones de ese paquete que existen. Debido a este comportamiento, es posible que se produzca un error en la instalación de un paquete que se solicitó anteriormente antes de que la versión deseada estuviera disponible. Para evitar este error e instalar correctamente un paquete existente, puede borrar la NuGet memoria caché antes de realizar la instalación con `nuget locals all --clear` o `dotnet nuget locals all --clear` bien evitar el uso de la memoria caché durante `restore` los comandos `install` y proporcionando la `-NoCache` opción for `nuget` o la `--no-cache` opción for`dotnet`.

------
#### [ dotnet ]

```
dotnet add package packageName --source packageSourceName
```

------
#### [ nuget ]

```
nuget install packageName -Source packageSourceName
```

------

**Para instalar una versión específica de un paquete**

------
#### [ dotnet ]

```
dotnet add package packageName --version 1.0.0 --source packageSourceName
```

------
#### [ nuget ]

```
nuget install packageName -Version 1.0.0 -Source packageSourceName
```

------

Consulte [Administrar paquetes mediante la CLI nuget.exe](https://docs.microsoft.com/en-us/nuget/consume-packages/install-use-packages-nuget-cli) o [Instalar y administrar paquetes mediante la CLI dotnet](https://docs.microsoft.com/en-us/nuget/consume-packages/install-use-packages-dotnet-cli) en la *documentación de Microsoft* para obtener más información.

### Consume NuGet paquetes de NuGet .org
<a name="nuget-consume-nuget-gallery"></a>

Puede consumir NuGet paquetes de [NuGet.org](https://www.nuget.org/) a través de un CodeArtifact repositorio configurando el repositorio con una conexión externa a **NuGet.org**. Los paquetes consumidos desde **NuGet.org** se ingieren y almacenan en tu CodeArtifact repositorio. Para obtener más información acerca de la adición de conexiones externas, consulte [Conectar un CodeArtifact repositorio a un repositorio público](external-connection.md).

## Publica NuGet paquetes en CodeArtifact
<a name="nuget-publish-cli"></a>

Una vez que lo haya [configurado NuGet CodeArtifact](https://docs.aws.amazon.com//codeartifact/latest/ug/nuget-cli.html), puede usar `nuget` o publicar las versiones de `dotnet` los paquetes en los repositorios. CodeArtifact 

Para enviar una versión de paquete a un CodeArtifact repositorio, ejecute el siguiente comando con la ruta completa del `.nupkg` archivo y el nombre de la fuente del CodeArtifact repositorio en el archivo de NuGet configuración. Si usó el `login` comando para configurar la NuGet configuración, el nombre de la fuente es`domain_name/repo_name`.

**nota**  
Puede crear un NuGet paquete si no tiene uno para publicar. Para obtener más información, consulte el [flujo de trabajo de creación de paquetes](https://docs.microsoft.com/en-us/nuget/create-packages/overview-and-workflow) en la *documentación de Microsoft*.

------
#### [ dotnet ]

```
dotnet nuget push path/to/nupkg/SamplePackage.1.0.0.nupkg --source packageSourceName
```

------
#### [ nuget ]

```
nuget push path/to/nupkg/SamplePackage.1.0.0.nupkg -Source packageSourceName
```

------

## CodeArtifact NuGet Referencia del proveedor de credenciales
<a name="nuget-cred-provider-reference"></a>

El proveedor de CodeArtifact NuGet credenciales facilita la configuración y la autenticación NuGet en sus repositorios. CodeArtifact 

### CodeArtifact NuGet Comandos del proveedor de credenciales
<a name="nuget-cred-provider-reference-commands"></a>

En esta sección se incluye la lista de comandos del proveedor de CodeArtifact NuGet credenciales. Estos comandos deben tener el prefijo `dotnet codeartifact-creds` como en el siguiente ejemplo.

```
dotnet codeartifact-creds command
```
+ `configure set profile profile`: configura el proveedor de credenciales para que utilice el perfil proporcionado. AWS 
+ `configure unset profile`: elimina el perfil configurado si está establecido.
+ `install`: copia el proveedor de credenciales en la carpeta `plugins`.
+ `install --profile profile`: copia el proveedor de credenciales en la `plugins` carpeta y lo configura para que utilice el perfil proporcionado. AWS 
+ `uninstall`: desinstala el proveedor de credenciales. Esto no elimina los cambios en el archivo de configuración.
+ `uninstall --delete-configuration`: desinstala el proveedor de credenciales y elimina todos los cambios en el archivo de configuración.

### CodeArtifact NuGet Registros del proveedor de credenciales
<a name="nuget-cred-provider-reference-logs"></a>

Para habilitar el registro para el proveedor de CodeArtifact NuGet credenciales, debe configurar el archivo de registro en su entorno. Los registros del proveedor de credenciales contienen información de depuración útil, como:
+ El AWS perfil utilizado para realizar las conexiones
+ Cualquier error de autenticación
+ Si el punto final proporcionado no es una CodeArtifact URL

**Configure el archivo de registro del proveedor de CodeArtifact NuGet credenciales**

```
export AWS_CODEARTIFACT_NUGET_LOGFILE=/path/to/file
```

Una vez configurado el archivo de registro, cualquier comando `codeartifact-creds` añadirá su salida de registro al contenido de ese archivo.

## CodeArtifact NuGet Versiones del proveedor de credenciales
<a name="nuget-cred-provider-history"></a>

La siguiente tabla contiene información sobre el historial de versiones y enlaces de descarga del proveedor de CodeArtifact NuGet credenciales.


| Versión | Cambios | Fecha de publicación | Enlace de descarga (S3) | 
| --- | --- | --- | --- | 
|  1.0.2 (más reciente)  |  Dependencias actualizadas  |  26/06/2024  |  [Descargar v1.0.2](https://d12ov9682v6hj.cloudfront.net/codeartifact-nuget-credentialprovider-v1.0.2.zip)  | 
|  1.0.1  |  Se agregó soporte para los perfiles net5, net6 y SSO  |  05/03/2022  |  [Descargar v1.0.1](https://a.co/cAIkhV1)  | 
|  1.0.0  |  Versión inicial de CodeArtifact NuGet Credential Provider  |  20 de noviembre de 2020  |  [Descargar v1.0.0](https://a.co/8b2cENb)  | 