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á.
Conceitos do AWS CodeArtifact
Aqui estão alguns conceitos e termos que você deve conhecer ao usar CodeArtifact.
Tópicos
Ativo
Um ativo é um arquivo individual armazenado associado CodeArtifact a uma versão do pacote, como um .tgz
arquivo npm ou arquivos Maven POM e JAR.
Domínio
Os repositórios são agrupados em uma entidade de nível mais alto conhecida como domínio. Todos os ativos e metadados do pacote são armazenados no domínio, mas são consumidos por meio de repositórios. Um determinado ativo de pacote, como um arquivo JAR do Maven, é armazenado uma vez por domínio, não importa em quantos repositórios ele esteja presente. Todos os ativos e metadados em um domínio são criptografados com a mesma AWS KMS key (chave KMS) armazenada em AWS Key Management Service (AWS KMS).
Cada repositório é membro de um único domínio e não pode ser movido para um domínio diferente.
Usando um domínio, você pode aplicar uma política organizacional em vários repositórios. Com essa abordagem, você determina quais contas podem acessar os repositórios no domínio e quais repositórios públicos podem ser usados como origens dos pacotes.
Embora uma organização possa ter vários domínios, a recomendação é ter um único domínio de produção que contenha todos os artefatos publicados. Dessa forma, as equipes podem localizar e compartilhar pacotes em toda a organização.
Repositório
Um CodeArtifact repositório contém um conjunto de versões de pacotes, cada uma delas mapeada para um conjunto de ativos. Os repositórios são poliglotas, ou seja, um único repositório pode conter pacotes de qualquer tipo compatível. Cada repositório expõe endpoints para buscar e publicar pacotes usando ferramentas como a CLI do NuGet, a CLI do npm, a CLI do Maven (mvn) e o pip. Você pode criar até 1.000 repositórios por domínio.
Pacote
Um pacote é formado pelo pacote de software e os metadados necessários para resolver dependências e instalar o software. Em CodeArtifact, um pacote consiste em um nome de pacote, um namespace opcional, como @types
in@types/node
, um conjunto de versões de pacote e metadados em nível de pacote, como tags npm.
AWS CodeArtifact suporta os formatos de pacote Cargo, genérico, Maven, npm, NuGetPyPI, Ruby, Swift.
Package group
Os grupos de pacotes podem ser usados para aplicar a configuração a vários pacotes que correspondam a um padrão definido usando o formato do pacote, o namespace do pacote e o nome do pacote. Você pode usar grupos de pacotes para configurar de forma mais conveniente os controles de origem de pacotes para vários pacotes. Os controles de origem do pacote são usados para bloquear ou permitir a ingestão ou publicação de novas versões do pacote, o que protege os usuários de ações maliciosas conhecidas como ataques de substituição de dependência.
Namespace de pacotes
Alguns formatos de pacotes permitem a utilização de nomes de pacotes hierárquicos para organizar os pacotes em grupos lógicos e ajudar a evitar colisões de nomes. Por exemplo, o npm é compatível com escopos. Para obter mais informações, consulte a documentação de escopos do npm@types/node
do npm tem o escopo @types
e o nome node
. Há vários outros nomes de pacotes no escopo @types
. Em CodeArtifact, o escopo (“tipos”) é chamado de namespace do pacote e o nome (“nó”) é chamado de nome do pacote. Para pacotes do Maven, o namespace do pacote corresponde ao groupID do Maven. O pacote org.apache.logging.log4j:log4j
do Maven tem o groupID (namespace do pacote) org.apache.logging.log4j
e o artifactID (nome do pacote) log4j
. Para pacotes genéricos, o namespace é obrigatório. Alguns formatos de pacotes, como do PyPI, não permitem a utilização de nomes hierárquicos com um conceito semelhante ao escopo do npm ou ao groupID do Maven. Sem uma forma de agrupar nomes de pacotes, evitar colisões de nomes pode ser mais difícil.
Versão do pacote
A versão do pacote identifica a versão específica de um pacote, como @types/node 12.6.9
. O formato e a semântica do número da versão variam conforme os diferentes formatos de pacote. Por exemplo, as versões dos pacotes do npm devem estar em conformidade com a especificação de Versionamento semântico
Revisão da versão do pacote
A revisão da versão do pacote é uma string que identifica um conjunto específico de ativos e metadados da versão do pacote. Sempre que uma versão do pacote é atualizada, uma nova revisão da versão do pacote é criada. Por exemplo, você pode publicar um arquivo de distribuição de origem (sdist) de uma versão do pacote do Python e, posteriormente, adicionar uma wheel do Python que contém código compilado à mesma versão. Quando você publica a wheel, uma nova revisão da versão do pacote é criada.
Repositório upstream
Um repositório é upstream quando as versões do pacote contidas nele podem ser acessadas a partir do endpoint do repositório downstream. Esta abordagem mescla com eficácia o conteúdo dos dois repositórios do ponto de vista de um cliente. Usando CodeArtifact, você pode criar um relacionamento upstream entre dois repositórios.