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?
- Crie repositórios remotos.
- Saiba mais sobre os repositórios do Artifact Registry lendo a vista geral do repositório.