Visão geral dos repositórios remotos

Este documento fornece uma visão geral dos repositórios remotos. Para instruções sobre como criar um repositório remoto, consulte Crie repositórios remotos.

As cotas e limites do Artifact Registry se aplicam a repositórios remotos.

Como os repositórios remotos funcionam

Os repositórios remotos armazenam artefatos de fontes externas predefinidas, como o Docker Hub, Maven Central, o Python Package Index (PyPI), Debian ou CentOS, bem como fontes definidas pelo usuário para formatos compatíveis. Um repositório remoto funciona como um proxy para a origem externa, para que você tenha mais controle sobre as dependências externas. A primeira vez que você solicita uma versão de um pacote, o Artifact Registry faz o download e armazena em cache o pacote no repositório remoto. Da próxima vez que você solicitar a mesma versão do pacote, o Artifact Registry vai disponibilizar a cópia em cache.

Se você solicitar um artefato de uma fonte upstream que não existe ou não contiver a versão especificada, a solicitação falhará.

Os outros modos de repositório são:

  • Padrão: o modo de repositório padrão. Você envia ou publica artefatos como pacotes particulares diretamente nos repositórios padrão. É possível fazer o download diretamente de repositórios padrão individuais, o acesso a grupos de repositórios com um repositório virtual simplifica configuração da ferramenta.
  • Virtual: um repositório que funciona como um único ponto de acesso para vários repositórios upstream, incluindo repositórios remotos e padrão.

Autenticação upstream

Os repositórios remotos do Artifact Registry oferecem suporte à autenticação básica para origens predefinidas e definidas pelo usuário para formatos compatíveis. Para mais informações sobre como fazer a autenticação em fontes upstream de repositório remoto, consulte Configurar a autenticação em upstreams de repositório remoto.

Casos de uso e benefícios

Acesso mais rápido e confiável a artefatos
Armazenar cópias em cache das suas dependências públicas no Artifact Registry reduz a latência quando outros serviços do Google Cloud recuperam imagens. Os artefatos em cache também continuam disponíveis se o repositório público externo estiver off-line devido a uma interrupção ou outro problema.
Resolução de dependências mais segura

Use repositórios remotos com repositórios virtuais para reduzir riscos associados às dependências públicas. Algumas ferramentas não fornecem uma maneira de controlar a ordem das pesquisas quando uma combinação de repositórios privados e públicos for configurados no cliente. Esse tipo de configuração é vulnerável de confusão de dependência, em que alguém faz upload de uma nova versão de um com código ruim para um repositório público a fim de induzir os clientes a escolher a versão ruim.

Em vez de configurar clientes diretamente para pesquisar em múltiplos repositórios, você pode configurar repositórios virtuais para priorizar seus repositórios particulares em repositórios remotos.

Se o Artifact Registry estiver em um perímetro de serviço do VPC Service Controls, O Artifact Registry nega acesso a origens upstream fora do perímetro por padrão. Permitir que repositórios remotos em um local específico acessem fora do perímetro, confira as instruções para a configuração do VPC Service Controls.

Para saber mais sobre outras práticas recomendadas de gerenciamento de dependências, consulte Gerenciamento de dependências.

Atualizações nos índices e metadados de pacotes

Arquivos mutáveis como metadados e índices de pacotes são atualizados da origem upstream quando elas se tornam maiores que a idade padrão. Padrões para tipos de arquivo específicos estão listados na tabela a seguir:

Formato Tipo de arquivo Idade de atualização padrão
Maven maven-metadata.xml 5 minutos
archetype-catalog.xml 1 hora
NPM Arquivos de manifesto 5 minutos
Python Arquivos de índice 1 hora
Docker Listar/receber tags de cache 1 hora
Apt/Yum (pré-lançamento) Arquivos de índice 2 minutos
Arquivos de pacote 72 horas

Formatos compatíveis

Consulte as seções a seguir para conhecer os formatos disponíveis para os formatos predefinidos e definidos pelo usuário repositórios remotos.

Envios upstream predefinidos

É possível criar repositórios remotos para os seguintes formatos de repositório e fontes upstream predefinidas correspondentes:

Formato tipos de pacote URL upstream Nome da predefinição upstream
Docker Público ou privado https://registry-1.docker.io (em inglês) DOCKER-HUB
Maven Público ou privado https://repo.maven.apache.org/maven2 MAVEN-CENTRAL
npm Público ou privado https://registry.npmjs.org NPMJS
Python Público https://pypi.io PYPI
Pacotes do SO (prévia) Público Consulte Pacotes de SO com suporte para upstreams. Consulte Pacotes de SO compatíveis com upstream

Pacotes do SO com upstreams predefinidos

É possível criar um repositório remoto do pacote do SO escolhendo uma base de repositório e personalizando o restante do URL para o repositório específico. O as seguintes bases de repositório têm suporte:

Apto

Repositório Prefixo do URL Nome de base do repositório
Debian http://deb.debian.org DÉBIAN
Ubuntu LTS ou Pro http://archive.ubuntu.com UBUNTU

Hum

Repositório Prefixo de URL Base do repositório Nome
CentOS http://mirror.centos.org CENTO
http://debuginfo.centos.org CENTOS_DEBUG
https://vault.centos.org CENTOS_VAULT
https://mirror.stream.centos.org CENTOS_STREAM
Rocky http://dl.rockylinux.org PEDRA
Pacotes extras do Fedora para Enterprise Linux (EPEL) https://dl.fedoraproject.org/pub/epel EPEL

upstreams definidos pelo usuário

É possível criar repositórios remotos para origens upstream definidas pelo usuário no formatos a seguir:

  • Docker
  • npm
  • Maven
  • Python

A tabela a seguir lista alguns URIs upstream comuns.

Formato URI upstream Nome do registro
Docker https://public.ecr.aws Galeria pública do AWS ECR
Docker https://registry.k8s.io Container Registry do Kubernetes
Docker https://MY_ARTIFACTORY_INSTANCE.jfrog.io Jfrog Artifactory
Docker https://MY_NEXUS_IP Nexus
npm https://npm.pkg.github.com GitHub Npm Registry
npm https://MY_ARTIFACTORY_INSTANCE.jfrog.io/artifactory/api/npm/MY_UPSTREAM_REPOSITORY Jfrog Artifactory
npm https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus
Maven https://MY_ARTIFACTORY_INSTANCE.jfrog.io/artifactory/MY_UPSTREAM_REPOSITORY Jfrog Artifactory
Maven https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus
Python https://MY_ARTIFACTORY_INSTANCE.jfrog.io/artifactory/api/pypi/MY_UPSTREAM_REPOSITORY Jfrog Artifactory
Python https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus

Onde

  • MY_ARTIFACTORY_INSTANCE é o nome do Jfrog Artifactory. instância upstream.
  • MY_NEXUS_IP é o endereço IP e a porta do Nexus upstream. instância.
  • MY_UPSTREAM_REPOSITORY é o nome do repositório upstream. usadas nos exemplos do Nexus e da Artifactory.

Limitações

Além das cotas e limitações do Artifact Registry, o gerenciamento os repositórios têm as seguintes limitações:

  • Os repositórios remotos do Maven não permitem definir a política de versão como snapshot ou lançamento.

A seguir