

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.

# Introducción a CodeArtifact
<a name="getting-started"></a>

 En este tutorial de Introducción, use CodeArtifact para crear lo siguiente: 
+  Un dominio llamado `my-domain`. 
+  Un repositorio llamado `my-repo` así está contenido en `my-domain`. 
+  Un repositorio llamado `npm-store` así está contenido en `my-domain`. La `npm-store` tiene una conexión externa al repositorio público de npm. Esta conexión se utiliza para introducir un paquete npm en el repositorio `my-repo`. 

 Antes de comenzar este tutorial, se recomienda revisar CodeArtifact [AWS CodeArtifact conceptos](codeartifact-concepts.md). 

**nota**  
 Este tutorial requiere que cree recursos que podrían dar lugar a cargos en su cuenta de AWS. Para obtener más información, consulte [Precios de CodeArtifact](https://aws.amazon.com/codeartifact/pricing/). 

**Topics**
+ [Requisitos previos](#getting-started-prerequisites)
+ [Primeros pasos con la consola](getting-started-console.md)
+ [Primeros pasos con AWS CLI](getting-started-cli.md)

## Requisitos previos
<a name="getting-started-prerequisites"></a>

Puede completar esta tarea mediante la Consola de administración de AWS o la AWS Command Line Interface (AWS CLI). Para seguir el tutorial, primero debe completar los siguientes requisitos previos: 
+  Realice los pasos que se indican en [Configuración con AWS CodeArtifact](get-set-up-for-codeartifact.md). 
+  Instale la CLI de npm. Para obtener más información, consulte [Descarga e instalación de Node.js y npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) en la documentación de npm. 

# Primeros pasos con la consola
<a name="getting-started-console"></a>

 Siga estos pasos para comenzar a utilizar CodeArtifact en Consola de administración de AWS. Esta guía usa el administrador de paquetes `npm`. Si está utilizando un administrador de paquetes diferente, deberá modificar algunos de los siguientes pasos.

1. Inicie sesión en la Consola de administración de AWS y abra la consola AWS CodeArtifact en [https://console.aws.amazon.com/codesuite/codeartifact/start](https://console.aws.amazon.com/codesuite/codeartifact/start). Para obtener más información, consulte [Configuración con AWS CodeArtifact](get-set-up-for-codeartifact.md).

1.  Elija **Create repository**. 

1.  En **Nombre del repositorio**, introduzca **my-repo**. 

1.  (Opcional) En **Descripción del repositorio**, introduzca una descripción opcional para su repositorio. 

1. En los **repositorios públicos ascendentes**, seleccione **npm-store** para crear un repositorio conectado a **npmjs** que esté situado aguas arriba de su repositorio `my-repo`. 

   CodeArtifact le asigna el nombre `npm-store` a este repositorio. Todos los paquetes disponibles en el repositorio `npm-store` ascendente también están disponibles en su repositorio descendente, `my-repo`. 

1.  Elija **Siguiente**. 

1.  En la **cuenta de AWS**, seleccione **Esta cuenta de AWS**.

1.  En **Nombre de dominio**, introduzca **my-domain**. 

1.  Expanda **Configuración adicional**. 

1.  Debe usar una AWS KMS key (clave KMS) para cifrar todos los activos de su dominio. Puede usar una clave Clave administrada de AWS o una clave KMS que administre: 
   +  Elija la **clave administrada de AWS** si quiere usar la Clave administrada de AWS predeterminada. 
   +  Elija la **clave administrada por el cliente** si quiere usar una clave de KMS que administre. Para usar una clave de KMS que administre, en ARN de **clave administrada por el cliente**, busque y elija la clave de KMS. 

    Para obtener más información, consulte [Clave administrada de AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) y las [claves administradas por el cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) en la *Guía para desarrolladores de AWS Key Management Service*. 

1.  Elija **Siguiente**. 

1.  En **Revisar y crear**, revise lo que CodeArtifact está creando para usted. 
   +  **El flujo de paquetes** muestra cómo `my-domain`, `my-repo` y `npm-store` están relacionados. 
   +  **Paso 1: Crear un repositorio** muestra detalles sobre `my-repo` y `npm-store`. 
   +  **Paso 2: El dominio seleccionado** muestra detalles sobre `my-domain`. 

    Cuando haya terminado, elija **Crear repositorio**. 

1.  En la página **my-repo**, seleccione **Ver instrucciones de conexión** y, a continuación, seleccione **npm.** 

1.  Use la AWS CLI para ejecutar el comando `login` que se muestra en **Configure su cliente npm con este comando AWS CLI CodeArtifact**.

   ```
   aws codeartifact login --tool npm --repository my-repo --domain my-domain --domain-owner 111122223333
   ```

   Debería recibir un resultado que confirme que su inicio de sesión se realizó correctamente.

   ```
   Successfully configured npm to use AWS CodeArtifact repository https://my-domain-111122223333.d.codeartifact.us-east-2.amazonaws.com/npm/my-repo/
   Login expires in 12 hours at 2020-10-08 02:45:33-04:00
   ```

   Si recibe el error `Could not connect to the endpoint URL`, asegúrese de que su AWS CLI está configurada y de que el **nombre de región predeterminado** es la misma región en la que creó el repositorio (consulte [Configuración de la interfaz de línea de comandos de AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)).

   Para obtener más información, consulte [Configure y use npm con CodeArtifact](npm-auth.md)

1.  Utilice la CLI de npm para instalar un paquete npm. Por ejemplo, para instalar el popular `lodash` del paquete npm, utilice el siguiente comando. 

   ```
   npm install lodash
   ```

1.  Vuelva a la consola de CodeArtifact. Si su repositorio **my-repo** está abierto, actualice la página. De lo contrario, en el panel de navegación, seleccione **Repositorios** y, a continuación, elija **my-repo.** 

    En **Paquetes**, debería ver la biblioteca o paquete npm que ha instalado. Puede elegir el nombre del paquete para ver su versión y estado. Puede elegir su última versión para ver los detalles del paquete, como las dependencias, los activos y más. 
**nota**  
 Es posible que haya un retraso entre la instalación del paquete y el momento en que se introduce en el repositorio. 

1.  Para evitar cargos AWS adicionales, elimine los recursos utilizados en este tutorial: 
**nota**  
No puede eliminar un dominio que contenga repositorios, por lo que debe eliminar `my-repo` y `npm-store` antes de eliminar `my-domain`.

   1.  En el panel de navegación, elija **Repositorios**. 

   1.  Elija **npm-store**, elija **Eliminar** y, a continuación, siga los pasos para eliminar el repositorio. 

   1.  Elija **my-repo**, elija **Eliminar** y, a continuación, siga los pasos para eliminar el repositorio. 

   1.  En el panel de navegación, seleccione **Dominios**. 

   1.  Elija **mydomain**, seleccione **Eliminar** y, a continuación, siga los pasos para eliminar el dominio. 

# Primeros pasos con AWS CLI
<a name="getting-started-cli"></a>

 Siga estos pasos para comenzar a utilizar CodeArtifact usando la AWS Command Line Interface (AWS CLI). Para obtener más información, consulte [Instale o actualice y, a continuación, configure el AWS CLI](get-set-up-install-cli.md). Esta guía usa el administrador de paquetes `npm`. Si está utilizando un administrador de paquetes diferente, deberá modificar algunos de los siguientes pasos.

1.  Utilice la AWS CLI para ejecutar el comando **create-domain**. 

   ```
   aws codeartifact create-domain --domain my-domain
   ```

    Los datos con formato JSON aparecen en la salida con detalles sobre tu nuevo dominio. 

   ```
   {
       "domain": {
           "name": "my-domain",
           "owner": "111122223333",
           "arn": "arn:aws:codeartifact:us-west-2:111122223333:domain/my-domain",
           "status": "Active",
           "createdTime": "2020-10-07T15:36:35.194000-04:00",
           "encryptionKey": "arn:aws:kms:us-west-2:111122223333:key/your-kms-key",
           "repositoryCount": 0,
           "assetSizeBytes": 0
       }
   }
   ```

   Si recibe el error `Could not connect to the endpoint URL`, asegúrese de que su AWS CLI está configurada y de que el **nombre de región predeterminado** es la misma región en la que creó el repositorio (consulte [Configuración de la interfaz de línea de comandos de AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)).

1.  Utilice el comando **create-repository** para crear un repositorio en su dominio.

   ```
   aws codeartifact create-repository --domain my-domain --domain-owner 111122223333 --repository my-repo
   ```

    Los datos con formato JSON aparecen en la salida con detalles sobre el nuevo repositorio. 

   ```
   {
       "repository": {
           "name": "my-repo",
           "administratorAccount": "111122223333",
           "domainName": "my-domain",
           "domainOwner": "111122223333",
           "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my-domain/my-repo",
           "upstreams": [],
           "externalConnections": []
       }
   }
   ```

1. Usa el comando **create-repository** para crear un repositorio ascendente para su repositorio `my-repo`.

   ```
   aws codeartifact create-repository --domain my-domain --domain-owner 111122223333 --repository npm-store
   ```

    Los datos con formato JSON aparecen en la salida con detalles sobre el nuevo repositorio.

   ```
   {
       "repository": {
           "name": "npm-store",
           "administratorAccount": "111122223333",
           "domainName": "my-domain",
           "domainOwner": "111122223333",
           "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my-domain/npm-store",
           "upstreams": [],
           "externalConnections": []
       }
   }
   ```

1.  Use el comando **associate-external-connection** para añadir a su repositorio una conexión externa al repositorio público npm a su repositorio `npm-store`. 

   ```
   aws codeartifact associate-external-connection --domain my-domain --domain-owner 111122223333 --repository npm-store --external-connection "public:npmjs"
   ```

    Los datos con formato JSON aparecen en la salida con detalles sobre el repositorio y su nueva conexión externa.

   ```
   {
       "repository": {
           "name": "npm-store",
           "administratorAccount": "111122223333",
           "domainName": "my-domain",
           "domainOwner": "111122223333",
           "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my-domain/npm-store",
           "upstreams": [],
           "externalConnections": [
               {
                   "externalConnectionName": "public:npmjs",
                   "packageFormat": "npm",
                   "status": "AVAILABLE"
               }
           ]
       }
   }
   ```

    Para obtener más información, consulte [Conectar un CodeArtifact repositorio a un repositorio público](external-connection.md). 

1.  Utilice el comando **update-repository** para asociar el repositorio `npm-store` como repositorio ascendente al repositorio `my-repo`. 

   ```
   aws codeartifact update-repository --repository my-repo --domain my-domain --domain-owner 111122223333 --upstreams repositoryName=npm-store
   ```

    Los datos con formato JSON aparecen en la salida con detalles sobre el repositorio actualizado, incluido su nuevo repositorio ascendente.

   ```
   {
       "repository": {
           "name": "my-repo",
           "administratorAccount": "111122223333",
           "domainName": "my-domain",
           "domainOwner": "111122223333",
           "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my-domain/my-repo",
           "upstreams": [
               {
                   "repositoryName": "npm-store"
               }
           ],
           "externalConnections": []
       }
   }
   ```

    Para obtener más información, consulte [Añadir o eliminar repositorios ascendentes (AWS CLI)](repo-upstream-add.md#repo-upstream-add-cli). 

1. Use el comando **login** para configurar su administrador de paquetes npm con su repositorio `my-repo`. 

   ```
   aws codeartifact login --tool npm --repository my-repo --domain my-domain --domain-owner 111122223333
   ```

   Debería recibir un resultado que confirme que su inicio de sesión se realizó correctamente.

   ```
   Successfully configured npm to use AWS CodeArtifact repository https://my-domain-111122223333.d.codeartifact.us-east-2.amazonaws.com/npm/my-repo/
   Login expires in 12 hours at 2020-10-08 02:45:33-04:00
   ```

    Para obtener más información, consulte [Configure y use npm con CodeArtifact](npm-auth.md). 

1.  Utilice la CLI de npm para instalar un paquete npm. Por ejemplo, para instalar el popular `lodash` del paquete npm, utilice el siguiente comando. 

   ```
   npm install lodash
   ```

1.  Use el comando **list-packages** para ver el paquete que acaba de instalar en su repositorio `my-repo`. 
**nota**  
Puede haber un retraso entre el momento en que se completa el comando de instalación `npm install` y el momento en que el paquete está visible en el repositorio. Para obtener más información sobre la latencia típica al recuperar paquetes de repositorios públicos, consulte [Latencia de conexión externa](external-connection-requesting-packages.md#external-connection-latency). 

   ```
   aws codeartifact list-packages --domain my-domain --repository my-repo
   ```

    Los datos con formato JSON aparecen en la salida con el formato y el nombre del paquete que ha instalado. 

   ```
   {
       "packages": [
           {
               "format": "npm",
               "package": "lodash"
           }
       ]
   }
   ```

   Ahora tiene tres recursos de CodeArtifact: 
   +  El dominio `my-domain`. 
   +  El repositorio `my-repo` que se encuentra en `my-domain`. Este repositorio tiene un paquete npm disponible. 
   +  El repositorio `npm-store` que se encuentra en `my-domain`. Este repositorio tiene una conexión externa al repositorio público de npm y está asociado como un repositorio ascendente con el repositorio `my-repo`. 

1. Para evitar cargos AWS adicionales, elimine los recursos utilizados en este tutorial: 
**nota**  
 No puede eliminar un dominio que contenga repositorios, por lo que debe eliminar `my-repo` y `npm-store` antes de eliminar `my-domain`. 

   1.  Utilice el comando **delete-repository** para eliminar el repositorio `npm-store`. 

      ```
      aws codeartifact delete-repository --domain my-domain --domain-owner 111122223333 --repository my-repo
      ```

       Los datos con formato JSON aparecen en la salida con detalles sobre el repositorio eliminado. 

      ```
      {
          "repository": {
              "name": "my-repo",
              "administratorAccount": "111122223333",
              "domainName": "my-domain",
              "domainOwner": "111122223333",
              "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my-domain/my-repo",
              "upstreams": [
                  {
                      "repositoryName": "npm-store"
                  }
              ],
              "externalConnections": []
          }
      }
      ```

   1.  Utilice el comando **delete-repository** para eliminar el repositorio `npm-store`. 

      ```
      aws codeartifact delete-repository --domain my-domain --domain-owner 111122223333 --repository npm-store
      ```

       Los datos con formato JSON aparecen en la salida con detalles sobre el repositorio eliminado.

      ```
      {
          "repository": {
              "name": "npm-store",
              "administratorAccount": "111122223333",
              "domainName": "my-domain",
              "domainOwner": "111122223333",
              "arn": "arn:aws:codeartifact:us-west-2:111122223333:repository/my-domain/npm-store",
              "upstreams": [],
              "externalConnections": [
                  {
                      "externalConnectionName": "public:npmjs",
                      "packageFormat": "npm",
                      "status": "AVAILABLE"
                  }
              ]
          }
      }
      ```

   1. Utilice el comando **delete-domain** para eliminar el repositorio `my-domain`. 

      ```
      aws codeartifact delete-domain --domain my-domain --domain-owner 111122223333
      ```

       Los datos con formato JSON aparecen en la salida con detalles sobre el dominio eliminado.

      ```
      {
          "domain": {
              "name": "my-domain",
              "owner": "111122223333",
              "arn": "arn:aws:codeartifact:us-west-2:111122223333:domain/my-domain",
              "status": "Deleted",
              "createdTime": "2020-10-07T15:36:35.194000-04:00",
              "encryptionKey": "arn:aws:kms:us-west-2:111122223333:key/your-kms-key",
              "repositoryCount": 0,
              "assetSizeBytes": 0
          }
      }
      ```