

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á.

# Usando CodeArtifact com pacotes genéricos
<a name="using-generic"></a>

Esses tópicos mostram como consumir e publicar para pacotes genéricos usando AWS CodeArtifact.

**Topics**
+ [Visão geral dos pacotes genéricos](generic-packages-overview.md)
+ [Comandos compatíveis com pacotes genéricos](generic-packages-supported-commands.md)
+ [Publicando e consumindo pacotes genéricos](publishing-using-generic-packages.md)

# Visão geral dos pacotes genéricos
<a name="generic-packages-overview"></a>

Usando o formato de `generic` pacote, você pode carregar qualquer tipo de arquivo para criar um pacote em um CodeArtifact repositório. Os pacotes genéricos não estão associados a nenhuma linguagem de programação específica, tipo de arquivo ou ecossistema de gerenciamento de pacotes. Isso pode ser útil para armazenar e controlar versões de artefatos de compilação arbitrários, como instaladores de aplicativos, modelos de machine learning, arquivos de configuração e outros.

Um pacote genérico consiste em um nome de pacote, namespace, versão e um ou mais ativos (ou arquivos). Pacotes genéricos podem existir junto com pacotes de outros formatos em um único CodeArtifact repositório.

Você pode usar o AWS CLI ou SDK para trabalhar com pacotes genéricos. Para obter uma lista completa dos AWS CLI comandos que funcionam com pacotes genéricos, consulte[Comandos compatíveis com pacotes genéricos](generic-packages-supported-commands.md).

## Restrições de pacotes genéricos
<a name="generic-packages-constraints"></a>
+ Eles nunca são obtidos de repositórios upstream. Eles só podem ser obtidos no repositório no qual foram publicados.
+ Eles não podem declarar dependências a serem retornadas [ListPackageVersionDependencies](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_ListPackageVersionDependencies.html)ou exibidas no. Console de gerenciamento da AWS 
+ Eles podem armazenar arquivos README e LICENSE, mas não são interpretados por. CodeArtifact As informações nesses arquivos não são retornadas de [GetPackageVersionReadme](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_GetPackageVersionReadme.html)ou [DescribePackageVersion](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_DescribePackageVersion.html), e não aparecem no Console de gerenciamento da AWS.
+ Como em todos os pacotes CodeArtifact, há limites para o tamanho do ativo e o número de ativos por pacote. Para obter mais informações sobre limites e cotas em CodeArtifact, consulte[Cotas em AWS CodeArtifact](service-limits.md).
+ Os nomes dos ativos que eles contêm devem seguir estas regras:
  + Os nomes dos ativos podem usar letras e números Unicode. Especificamente, são permitidas estas categorias de caracteres Unicode: letra minúscula (`Ll`), letra modificadora (`Lm`), outra letra (`Lo`), letra do título (`Lt`), letra maiúscula (`Lu`), número da letra (`Nl`) e número decimal (`Nd`).
  + Os seguintes caracteres especiais são permitidos: `~!@^&()-_+[]{};,.`
  + Os ativos não podem ser chamados `.` ou `..`
  + Espaços são o único caractere de espaço em branco permitido. Os nomes de ativos não podem começar ou terminar com um caractere de espaço ou incluir espaços consecutivos.

# Comandos compatíveis com pacotes genéricos
<a name="generic-packages-supported-commands"></a>

Você pode usar o AWS CLI ou SDK para trabalhar com pacotes genéricos. Os CodeArtifact comandos a seguir funcionam com pacotes genéricos:
+ [copy-package-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/copy-package-versions.html) (consulte [Copiar pacotes entre repositórios](copy-package.md))
+ [delete-package](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/delete-package.html) (consulte [Excluir um pacote (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 [Excluir uma versão de pacote (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 [Exiba e atualize os detalhes e dependências da versão do pacote](describe-package-version.md))
+ [dispose-package-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/dispose-package-versions.html) (consulte [Descartar as versões do pacote](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 [Baixe ativos da versão do pacote](download-assets.md))
+ [list-package-version-assets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/list-package-version-assets.html) (consulte [Listar ativos da versão do pacote](list-assets.md))
+ [list-package-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/list-package-versions.html) (consulte [Listar versões de pacotes](list-packages-versions.md))
+ [list-packages](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/list-packages.html) (consulte [Listar nomes de pacotes](list-packages.md))
+ [publish-package-version](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/publish-package-version.html) (consulte [Publicando um pacote 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 [Editar controles de origem do pacote](package-origin-controls.md))
**nota**  
Você pode usar a configuração de controle de origem `publish` para permitir ou bloquear a publicação de um nome de pacote genérico em um repositório. No entanto, a configuração `upstream` não se aplica a pacotes genéricos porque eles não podem ser obtidos em um repositório upstream.
+ [update-package-versions-status](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/codeartifact/update-package-versions-status.html) (consulte [Atualizar o status da versão do pacote](update-package-version-status.md#updating-pv-status))

# Publicando e consumindo pacotes genéricos
<a name="publishing-using-generic-packages"></a>

Para publicar uma versão genérica do pacote e seus ativos relacionados, use o comando `publish-package-version`. Você pode listar os ativos de um pacote genérico usando o comando `list-package-version-asset` e baixá-los usando `get-package-version-asset`. O tópico a seguir contém step-by-step instruções para publicar pacotes genéricos ou baixar ativos de pacotes genéricos usando esses comandos.

## Publicando um pacote genérico
<a name="publishing-generic-packages"></a>

Um pacote genérico consiste em um nome de pacote, namespace, versão e um ou mais ativos (ou arquivos). Este tópico demonstra como publicar um pacote chamado `my-package`, com o namespace `my-ns`, a versão `1.0.0` e contendo um ativo chamado `asset.tar.gz`.

**Pré-requisitos:**
+ Configure e configure o AWS Command Line Interface com CodeArtifact (consulte[Configurando com AWS CodeArtifact](get-set-up-for-codeartifact.md))
+ Tenha um CodeArtifact domínio e um repositório (consulte[Conceitos básicos do uso da AWS CLI](getting-started-cli.md))

**Para publicar um pacote genérico**

1. Use o comando a seguir para gerar o SHA256 hash para cada arquivo que você deseja carregar em uma versão do pacote e coloque o valor em uma variável de ambiente. Esse valor é usado como uma verificação de integridade para conferir se o conteúdo do arquivo não foi alterado após o envio 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. Chame `publish-package-version` para carregar o pacote e criar uma nova versão dele.
**nota**  
 Se seu pacote contiver mais de um ativo, você poderá chamar `publish-package-version` uma vez para que cada ativo seja carregado. Inclua o argumento `--unfinished` para cada chamada de `publish-package-version`, exceto ao fazer o carregamento do ativo final. Omitir `--unfinished` definirá o status da versão do pacote como `Published` e impedirá que ativos adicionais sejam enviados para ele.  
 Como alternativa, inclua `--unfinished` para cada chamada de `publish-package-version` e, em seguida, defina o status da versão do pacote como `Published` usando o 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%
   ```

------

   A seguir, é mostrada a saída.

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

## Listando ativos de pacotes genéricos
<a name="listing-generic-package-assets"></a>

Para listar os ativos contidos em um pacote genérico, use o comando `list-package-version-assets`. Para obter mais informações, consulte [Listar ativos da versão do pacote](list-assets.md).

O exemplo a seguir lista os ativos da versão `1.0.0` do pacote `my-package`.

**Para listar ativos da versão do pacote**
+ Chame `list-package-version-assets` para listar os ativos contidos em um pacote 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
  ```

------

  A seguir, é mostrada a saída.

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

## Baixando ativos de pacotes genéricos
<a name="downloading-generic-package-assets"></a>

Para baixar os ativos de um pacote genérico, use o comando `get-package-version-asset`. Para obter mais informações, consulte [Baixe ativos da versão do pacote](download-assets.md).

O exemplo a seguir baixa o ativo `asset.tar.gz` da versão `1.0.0` do pacote `my-package` para o diretório de trabalho atual em um arquivo também chamado `asset.tar.gz`.

**Para baixar ativos da versão do pacote**
+ Chame `get-package-version-asset` para baixar ativos de um pacote 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
  ```

------

  A seguir, é mostrada a saída.

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