Vista geral dos repositórios remotos

Este documento oferece uma vista geral dos repositórios remotos. Para ver instruções sobre como criar um repositório remoto, consulte o artigo Crie repositórios remotos.

Artifact Registry Aplicam-se quotas e limites aos repositórios remotos.

Como funcionam os repositórios remotos

Os repositórios remotos armazenam artefactos das seguintes origens a montante:

  • Repositórios padrão do Artifact Registry.
  • Fontes externas, como o Docker Hub, o Maven Central, o Python Package Index (PyPI), o Debian ou o CentOS.

Um repositório remoto funciona como um proxy para a origem a montante, para que tenha mais controlo sobre as suas dependências. Quando pede uma versão de um pacote pela primeira vez, o Artifact Registry transfere e armazena em cache o pacote no repositório remoto. Da próxima vez que pedir a mesma versão do pacote, o Artifact Registry disponibiliza a cópia em cache.

Se pedir um artefacto de uma origem a montante que não existe ou não contém a versão especificada, o pedido falha.

Os outros modos de repositório são:

  • Padrão: o modo de repositório predefinido. Carregar ou publicar artefactos, como pacotes privados, diretamente em repositórios padrão. Embora possa fazer a transferência diretamente de repositórios padrão individuais, o acesso a grupos de repositórios com um repositório virtual simplifica a configuração das ferramentas.
  • Virtual: um repositório que funciona como um único ponto de acesso para vários repositórios a montante, incluindo repositórios remotos e padrão.

Autenticação a montante

Os repositórios remotos do Artifact Registry suportam a autenticação básica para origens a montante para formatos suportados. Para mais informações sobre como autenticar origens upstream do repositório remoto, consulte o artigo Configure a autenticação para origens upstream do repositório remoto.

Exemplos de utilização e vantagens

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

Use repositórios remotos juntamente com repositórios virtuais para mitigar os riscos associados a dependências públicas. Algumas ferramentas não oferecem uma forma de controlar a ordem de pesquisa quando é configurada no cliente uma combinação de repositórios privados e públicos. Este tipo de configuração é vulnerável a um ataque de confusão de dependências, em que alguém carrega uma nova versão de um pacote com código incorreto para um repositório público para enganar os clientes e fazê-los escolher a versão incorreta.

Em vez de configurar os clientes diretamente para pesquisarem vários repositórios, pode configurar repositórios virtuais para dar prioridade aos seus repositórios privados em detrimento dos repositórios remotos.

Reduza o custo de transferência de dados

Use repositórios remotos para colocar em cache artefactos na mesma região ou em várias regiões que os seus tempos de execução para reduzir os custos de transferência de dados.

Se o Artifact Registry estiver num perímetro de serviço dos VPC Service Controls, o Artifact Registry nega o acesso a origens a montante fora do perímetro por predefinição. Para permitir que repositórios remotos numa localização específica acedam às respetivas origens externas configuradas fora do perímetro, consulte as instruções de configuração do VPC Service Controls.

Para saber mais acerca de outras práticas recomendadas de gestão de dependências, consulte o artigo Gestão de dependências.

Atualizações aos índices e metadados dos pacotes

Os ficheiros mutáveis, como os índices de pacotes e os metadados, são atualizados a partir da origem a montante quando ultrapassam a idade predefinida. Os valores predefinidos para tipos de ficheiros específicos estão indicados na tabela seguinte:

Formato Tipo de ficheiro Idade de atualização predefinida
Maven maven-metadata.xml 5 minutos
archetype-catalog.xml 1 hora
Npm Ficheiros de manifesto 5 minutos
Python Ficheiros de índice 1 hora
Docker Listar/obter cache de etiquetas 1 hora
Apt/Yum (pré-visualização) Ficheiros de índice 2 minutos
Ficheiros de pacotes 72 horas

Formatos suportados

Consulte as secções seguintes para ver os formatos disponíveis para repositórios remotos predefinidos e definidos pelo utilizador.

URLs de upstream predefinidos

Estão disponíveis vários URLs de repositórios a montante comuns como seleções predefinidas para maior conveniência nos seguintes formatos.

Formato tipos de pacotes URL de upstream Nome predefinido de upstream
Docker Público ou privado https://registry-1.docker.io DOCKER-HUB
Ir Público https://proxy.golang.org https://proxy.golang.org
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é-visualização) Público Consulte os pacotes de SO suportados a montante Consulte os pacotes de SO suportados a montante

Upstreams predefinidos de pacotes do SO

Pode criar um repositório remoto de pacotes de SO escolhendo um dos URLs base do repositório upstream predefinidos comuns e personalizando o resto do URL para o repositório específico. São suportadas as seguintes bases de repositório:

Apt

Repositório Prefixo do URL Nome base do repositório
Debian arquivado https://snapshot.debian.org DEBIAN_SNAPSHOT
Debian http://deb.debian.org DEBIAN
Ubuntu LTS ou Pro http://archive.ubuntu.com UBUNTU

Yum

Repositório Prefixo do URL Nome base do repositório
CentOS http://mirror.centos.org CENTOS
http://debuginfo.centos.org CENTOS_DEBUG
https://vault.centos.org CENTOS_VAULT
https://mirror.stream.centos.org CENTOS_STREAM
Rocky http://dl.rockylinux.org ROCKY
Fedora Extra Packages for Enterprise Linux (EPEL) https://dl.fedoraproject.org/pub/epel EPEL

Upstreams do repositório do Artifact Registry

Pode criar repositórios remotos com repositórios de formato padrão do Artifact Registry como origens para os seguintes formatos:

  • Docker
  • npm
  • Maven
  • Python

URLs personalizados

Pode introduzir diretamente o URL do seu repositório remoto, sem usar uma das origens upstream predefinidas para os seguintes formatos.

  • Docker
  • npm
  • Maven
  • Python

A tabela não exaustiva seguinte apresenta alguns URIs upstream comuns.

Formato URI de upstream Nome do registo
Docker https://ghcr.io GitHub Container Registry
Docker https://registry-1.docker.io Docker Hub
Docker https://public.ecr.aws Galeria pública do AWS ECR
Docker https://registry.k8s.io Kubernetes Container Registry
Docker https://MY_NEXUS_IP Nexus
npm https://registry.npmjs.org npm
npm https://npm.pkg.github.com Registo Npm do GitHub
npm https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus
Maven https://repo.maven.apache.org/maven2 Maven Central
Maven https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus
Python https://pypi.io Python Package Index (PyPI)
Python https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus

Onde

  • MY_NEXUS_IP é o endereço IP e a porta da sua instância a montante do Nexus.
  • MY_UPSTREAM_REPOSITORY é o nome do seu repositório a montante; usado nos exemplos do Nexus.

Limitações

Além das quotas e limitações do Artifact Registry, os repositórios remotos 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 release.
  • As origens a montante têm de ser acessíveis através da Internet. Os repositórios remotos não suportam origens upstream na rede local ou na nuvem virtual privada (VPC) sem um endereço IP público.

O que se segue?