

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.

# Uso CodeArtifact con paquetes genéricos
<a name="using-generic"></a>

En estos temas se muestra cómo consumir y publicar paquetes genéricos mediante AWS CodeArtifact.

**Topics**
+ [Información general de los paquetes genéricos](generic-packages-overview.md)
+ [Comandos compatibles con paquetes genéricos](generic-packages-supported-commands.md)
+ [Publicar y consumir paquetes genéricos](publishing-using-generic-packages.md)

# Información general de los paquetes genéricos
<a name="generic-packages-overview"></a>

Con el formato de `generic` paquete, puede cargar cualquier tipo de archivo para crear un paquete en un CodeArtifact repositorio. Los paquetes genéricos no están asociados a ningún lenguaje de programación, tipo de archivo o ecosistema de administración de paquetes específico. Esto puede resultar útil para almacenar y controlar versiones de artefactos de compilación arbitrarios, como instaladores de aplicaciones, modelos de machine learning, archivos de configuración y otros.

Un paquete genérico consta de un nombre de paquete, un espacio de nombres, una versión y uno o más activos (o archivos). Los paquetes genéricos pueden existir junto con paquetes de otros formatos en un único CodeArtifact repositorio.

Puede usar el SDK AWS CLI o el SDK para trabajar con paquetes genéricos. Para obtener una lista completa de AWS CLI los comandos que funcionan con paquetes genéricos, consulte[Comandos compatibles con paquetes genéricos](generic-packages-supported-commands.md).

## Restricciones de paquetes genéricos
<a name="generic-packages-constraints"></a>
+ Nunca se obtienen de los repositorios originales. Solo se pueden obtener del repositorio en el que se publicaron.
+ No pueden declarar las dependencias que se devolverán [ListPackageVersionDependencies](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_ListPackageVersionDependencies.html)o se mostrarán en el Consola de administración de AWS .
+ Pueden almacenar archivos README y LICENSE, pero no son interpretados por ellos. CodeArtifact La información de estos archivos no se devuelve [GetPackageVersionReadme](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_GetPackageVersionReadme.html)ni [DescribePackageVersion](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_DescribePackageVersion.html)aparece en el Consola de administración de AWS.
+ Al igual que en todos los paquetes CodeArtifact, hay límites en cuanto al tamaño de los activos y al número de activos por paquete. Para obtener más información sobre los límites y las cuotas CodeArtifact, consulte[Cuotas en AWS CodeArtifact](service-limits.md).
+ Los nombres de los activos que contienen deben seguir estas reglas:
  + Los nombres de los activos pueden usar letras y números Unicode. En concreto, se permiten estas categorías de caracteres Unicode: letra minúscula (`Ll`), letra modificadora (`Lm`), otra letra (`Lo`), letra de caso del título (`Lt`), letra mayúscula (`Lu`), letra número (`Nl`) y número decimal (`Nd`).
  + Se permiten los siguientes caracteres especiales: `~!@^&()-_+[]{};,.`.
  + Los activos no pueden llamarse `.` ni `..`.
  + Los espacios son el único carácter de espacio en blanco permitido. Los nombres de los activos no pueden comenzar ni terminar con un carácter de espacio ni incluir espacios consecutivos.

# Comandos compatibles con paquetes genéricos
<a name="generic-packages-supported-commands"></a>

Puede usar el SDK AWS CLI o el SDK para trabajar con paquetes genéricos. Los siguientes CodeArtifact comandos funcionan con paquetes genéricos:
+ [copy-package-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/copy-package-versions.html) (consulte la [Copiar paquetes entre repositorios](copy-package.md))
+ [delete-package](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/delete-package.html) (consulte [Eliminación de un paquete (AWS CLI)](delete-package.md#delete-package-CLI))
+ [delete-package-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/delete-package-versions.html) (consulte la [Eliminar una versión de un paquete (AWS CLI)](delete-package.md#delete-package-version-CLI))
+ [describe-package](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/describe-package.html) 
+ [describe-package-version](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/describe-package-version.html) (consulte la [Ver y actualizar los detalles y las dependencias de la versión del paquete](describe-package-version.md))
+ [dispose-package-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/dispose-package-versions.html) (consulte la [Eliminación de las versiones de los paquetes](update-package-version-status.md#dispose-package-versions))
+ [get-package-version-asset](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/get-package-version-asset.html) (consulte la [Descargar recursos de la versión del paquete](download-assets.md))
+ [list-package-version-assets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/list-package-version-assets.html) (consulte la [Enumerar los activos de la versión del paquete](list-assets.md))
+ [list-package-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/list-package-versions.html) (consulte la [Listar las versiones de los paquetes](list-packages-versions.md))
+ [list-packages](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/list-packages.html) (consulte [Mostrar nombres de paquetes](list-packages.md))
+ [publish-package-version](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/publish-package-version.html) (consulte la [Publicar un paquete genérico](publishing-using-generic-packages.md#publishing-generic-packages))
+ [put-package-origin-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/put-package-origin-configuration.html) (consulte la [Edición de los controles de origen de los paquetes](package-origin-controls.md))
**nota**  
Puede usar la configuración de los controles de origen `publish` para permitir o bloquear la publicación de un nombre de paquete genérico en un repositorio. Sin embargo, la configuración `upstream` no se aplica a los paquetes genéricos porque no se pueden recuperar de un repositorio principal.
+ [update-package-versions-status](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/update-package-versions-status.html) (consulte la [Actualizar el estado de la versión del paquete](update-package-version-status.md#updating-pv-status))

# Publicar y consumir paquetes genéricos
<a name="publishing-using-generic-packages"></a>

Para publicar una versión genérica de un paquete y sus activos relacionados, utilice el comando `publish-package-version`. Puede enumerar los activos de un paquete genérico mediante el comando `list-package-version-asset` y descargarlos mediante`get-package-version-asset`. El siguiente tema contiene step-by-step instrucciones para publicar paquetes genéricos o descargar activos de paquetes genéricos mediante estos comandos.

## Publicar un paquete genérico
<a name="publishing-generic-packages"></a>

Un paquete genérico consta de un nombre de paquete, un espacio de nombres, una versión y uno o más activos (o archivos). En este tema se muestra cómo publicar un paquete denominado `my-package`, con el espacio de nombres `my-ns`, la versión `1.0.0` y que contenga un activo denominado `asset.tar.gz`.

**Requisitos previos**:
+ Configure y configure el AWS Command Line Interface con CodeArtifact (consulte[Configuración con AWS CodeArtifact](get-set-up-for-codeartifact.md))
+ Disponer de un CodeArtifact dominio y un repositorio (consulte[Primeros pasos con AWS CLI](getting-started-cli.md))

**Para publicar un paquete genérico**

1. Utilice el siguiente comando para generar el SHA256 hash de cada archivo que desee cargar en una versión de paquete y coloque el valor en una variable de entorno. Este valor se utiliza como comprobación de integridad para comprobar que el contenido del archivo no ha cambiado después de su envío original. 

------
#### [ Linux ]

   ```
   export ASSET_SHA256=$(sha256sum asset.tar.gz | awk '{print $1;}')
   ```

------
#### [ macOS ]

   ```
   export ASSET_SHA256=$(shasum -a 256 asset.tar.gz | awk '{print $1;}')
   ```

------
#### [ Windows ]

   ```
   for /f "tokens=*" %G IN ('certUtil -hashfile asset.tar.gz SHA256 ^| findstr /v "hash"') DO SET "ASSET_SHA256=%G"
   ```

------

1. Llame a `publish-package-version` para cargar el activo y crear una nueva versión del paquete.
**nota**  
 Si su paquete contiene más de un activo, puede llamar a `publish-package-version` una vez para cargar cada uno de ellos. Incluya el argumento `--unfinished` de cada llamada a `publish-package-version`, excepto cuando suba el último activo. Si se omite `--unfinished`, se establecerá el estado de la versión del paquete en `Published` y evitará que se carguen recursos adicionales en él.  
 Como alternativa, incluya `--unfinished` para cada llamada a `publish-package-version` y, a continuación, establezca el estado de la versión del paquete en `Published` con el comando `update-package-versions-status`.

------
#### [ Linux/macOS ]

   ```
   aws codeartifact publish-package-version --domain my_domain --repository my_repo \
         --format generic --namespace my-ns --package my-package --package-version 1.0.0 \
         --asset-content asset.tar.gz --asset-name asset.tar.gz \
         --asset-sha256 $ASSET_SHA256
   ```

------
#### [ Windows ]

   ```
   aws codeartifact publish-package-version --domain my_domain --repository my_repo ^
         --format generic --namespace my-ns --package my-package --package-version 1.0.0 ^
         --asset-content asset.tar.gz --asset-name asset.tar.gz ^  
         --asset-sha256 %ASSET_SHA256%
   ```

------

   El ejemplo siguiente muestra el código resultante.

   ```
   {
       "format": "generic",
       "namespace": "my-ns",
       "package": "my-package",
       "version": "1.0.0",
       "versionRevision": "REVISION-SAMPLE-1-C7F4S5E9B772FC",
       "status": "Published",
       "asset": {
           "name": "asset.tar.gz",
           "size": 11,
           "hashes": {
               "MD5": "41bba98d5b9219c43089eEXAMPLE-MD5",
               "SHA-1": "69b215c25dd4cda1d997a786ec6EXAMPLE-SHA-1",
               "SHA-256": "43f24850b7b7b7d79c5fa652418518fbdf427e602b1edabe6EXAMPLE-SHA-256",
               "SHA-512": "3947382ac2c180ee3f2aba4f8788241527c8db9dfe9f4b039abe9fc560aaf5a1fced7bd1e80a0dca9ce320d95f0864e0dec3ac4f2f7b2b2cbEXAMPLE-SHA-512"
           }
       }
   }
   ```

## Listar los activos de los paquetes genéricos
<a name="listing-generic-package-assets"></a>

Para enumerar los activos contenidos en un paquete genérico, utilice el comando `list-package-version-assets`. Para obtener más información, consulte [Enumerar los activos de la versión del paquete](list-assets.md).

El siguiente ejemplo muestra los activos de la versión `1.0.0` del paquete `my-package`.

**Para enumerar los activos de la versión del paquete**
+ Llame a `list-package-version-assets` para enumerar los activos contenidos en un paquete genérico.

------
#### [ Linux/macOS ]

  ```
  aws codeartifact list-package-version-assets --domain my_domain \
    --repository my_repo --format generic --namespace my-ns \
    --package my-package --package-version 1.0.0
  ```

------
#### [ Windows ]

  ```
  aws codeartifact list-package-version-assets --domain my_domain ^
    --repository my_repo --format generic --namespace my-ns ^
    --package my-package --package-version 1.0.0
  ```

------

  El ejemplo siguiente muestra el código resultante.

  ```
  {
      "assets": [
          {
              "name": "asset.tar.gz",
              "size": 11,
              "hashes": {
                  "MD5": "41bba98d5b9219c43089eEXAMPLE-MD5",
                  "SHA-1": "69b215c25dd4cda1d997a786ec6EXAMPLE-SHA-1",
                  "SHA-256": "43f24850b7b7b7d79c5fa652418518fbdf427e602b1edabe6EXAMPLE-SHA-256",
                  "SHA-512": "3947382ac2c180ee3f2aba4f8788241527c8db9dfe9f4b039abe9fc560aaf5a1fced7bd1e80a0dca9ce320d95f0864e0dec3ac4f2f7b2b2cbEXAMPLE-SHA-512"
              }
          }
      ],
      "package": "my-package",
      "format": "generic",
      "namespace": "my-ns",
      "version": "1.0.0",
      "versionRevision": "REVISION-SAMPLE-1-C7F4S5E9B772FC"
  }
  ```

## Descargar los activos de los paquetes genéricos
<a name="downloading-generic-package-assets"></a>

Para descargar los activos de un paquete genérico, utilice el comando `get-package-version-asset`. Para obtener más información, consulte [Descargar recursos de la versión del paquete](download-assets.md).

El siguiente ejemplo descarga el activo `asset.tar.gz` de la versión `1.0.0` del paquete `my-package` al directorio de trabajo actual, en un archivo también denominado `asset.tar.gz`.

**Para descargar los activos de la versión del paquete**
+ Llame a `get-package-version-asset` para descargar los activos de un paquete genérico.

------
#### [ Linux/macOS ]

  ```
  aws codeartifact get-package-version-asset --domain my_domain \
    --repository my_repo --format generic --namespace my-ns --package my-package \
    --package-version 1.0.0 --asset asset.tar.gz \ 
    asset.tar.gz
  ```

------
#### [ Windows ]

  ```
  aws codeartifact get-package-version-asset --domain my_domain ^
    --repository my_repo --format generic --namespace my-ns --package my-package ^
    --package-version 1.0.0 --asset asset.tar.gz ^
    asset.tar.gz
  ```

------

  El ejemplo siguiente muestra el código resultante.

  ```
  {
      "assetName": "asset.tar.gz",
      "packageVersion": "1.0.0",
      "packageVersionRevision": "REVISION-SAMPLE-1-C7F4S5E9B772FC"
  }
  ```