Este documento apresenta uma visão geral dos repositórios remotos. Para instruções sobre como criar um repositório remoto, consulte Criar 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 controle remoto o repositório funciona como um proxy da fonte externa para você ter mais controle sobre as dependências externas. Na 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. Na próxima vez que você solicitar a mesma versão do pacote, o Artifact Registry vai servir a cópia em cache.
Se você solicitar um artefato de uma origem upstream que não existe ou não contém a versão especificada, a solicitação vai 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 privados 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 acesso para vários repositórios upstream, incluindo repositórios remotos e padrão repositórios.
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 se autenticar a fontes upstream do repositório remoto, consulte Configurar a autenticação para upstreams de repositório remoto.
Casos de uso e benefícios
- Acesso mais rápido e confiável aos artefatos
- Armazenar cópias em cache das 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 estarão 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 oferecem uma maneira de controlar a ordem de pesquisa quando uma mistura de repositórios públicos e privados é configurada 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 vários repositórios, você pode configurar repositórios virtuais para priorizar seus repositórios particulares em vez de 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 de índices e metadados de pacotes
Arquivos mutáveis, como índices de pacotes e metadados, são atualizados da origem upstream quando ficam com mais idade do que o padrão. Os padrões para tipos de arquivo específicos estão listados na tabela a seguir:
Formato | Tipo de arquivo | Idade padrão da atualizaçã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 ver os formatos disponíveis para repositórios remotos predefinidos e definidos pelo usuário.
Upstreams predefinidos
É possível criar repositórios remotos para os seguintes formatos de repositório e as 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 | 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é-lançamento) | Público | Consulte Pacotes de SO com suporte para upstreams. | Consulte Pacotes de SO com suporte para upstreams. |
Envios upstream predefinidos de pacotes de SO
É 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 do URL | Base do repositório Nome |
---|---|---|
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 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, não exaustiva, 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 | Registro Npm do GitHub |
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 da instância upstream do Jfrog Artifactory.
- MY_NEXUS_IP é o endereço IP e a porta da instância upstream do Nexus.
- 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.
- As origens upstream precisam ser acessíveis pela Internet. Já os repositórios remotos ofereça suporte a fontes upstream de redes de nuvem privada virtual (VPC) no local ou sem um endereço IP público.
A seguir
- Crie repositórios remotos.
- Para saber mais sobre os repositórios do Artifact Registry, leia Visão geral do repositório.