Panoramica dei repository remoti

Questo documento fornisce una panoramica dei repository remoti. Per istruzioni su come creare un repository remoto, consulta Crea repository remoti.

Artifact Registry Ai repository remoti si applicano quote e limiti.

Come funzionano i repository remoti

I repository remoti archiviano gli artefatti da origini esterne preimpostate come Docker Hub, Maven Central, Python Package Index (PyPI), Debian o CentOS nonché origini definite dall'utente per i formati supportati. Un telecomando il repository funge da proxy per l'origine esterna, consentendoti di avere un maggiore controllo sulle dipendenze esterne. La prima volta che richiedi una versione di Artifact Registry, scarica e memorizza nella cache il pacchetto nel repository remoto. La prossima volta la stessa versione del pacchetto, Artifact Registry gestisce la copia memorizzata nella cache.

Se richiedi un artefatto da un'origine upstream che non esiste, oppure non contiene la versione specificata, la richiesta avrà esito negativo.

Le altre modalità di repository sono:

  • Standard: la modalità di repository predefinita. Carichi o pubblichi come pacchetti privati direttamente nei repository standard. Sebbene sia possibile scaricare direttamente da singoli repository standard, l'accesso a gruppi di repository con un repository virtuale semplifica della configurazione dello strumento.
  • Virtuale: un repository che funge da singolo accesso punto di accesso per più repository upstream, inclusi repository remoti e standard repository.

Autenticazione upstream

Supporto per i repository remoti Artifact Registry autenticazione di base per preimpostare e quelle a monte definite dall'utente per i formati supportati. Per ulteriori informazioni su come eseguire l'autenticazione nelle origini upstream dei repository remoti, consulta Configura l'autenticazione negli upstream del repository remoto.

Casi d'uso e vantaggi

Accesso più rapido e affidabile agli artefatti
Archiviare copie cache delle dipendenze pubbliche in Artifact Registry riduce la latenza quando altri servizi Google Cloud recuperano le immagini. Gli artefatti memorizzati nella cache sono ancora disponibili se il repository pubblico esterno è offline a causa di un'interruzione del servizio o di un altro problema.
Risoluzione più sicura delle dipendenze

Usa repository remoti insieme a repository virtuali per mitigare i rischi associate a dipendenze pubbliche. Alcuni strumenti non forniscono un modo controllare l'ordine di ricerca quando viene utilizzata una combinazione di repository privati e pubblici configurate nel client. Questo tipo di configurazione è vulnerabile attacco di confusione da dipendenze, con il quale qualcuno carica una nuova versione di un un pacchetto con codice non valido in un repository pubblico per indurre i clienti a scegliere la versione non valida.

Invece di configurare i client direttamente per eseguire ricerche in più repository, può configurare repository virtuali per dare priorità ai repository privati su repository remoti.

Se Artifact Registry si trova in un perimetro di servizio Controlli di servizio VPC, Artifact Registry nega l'accesso a origini upstream al di fuori del perimetro per impostazione predefinita. Consentire l'accesso ai repository remoti in una località specifica le origini esterne configurate al di fuori del perimetro, consulta le istruzioni per la configurazione dei Controlli di servizio VPC.

Per scoprire di più su altre best practice per la gestione delle dipendenze, consulta Gestione delle dipendenze.

Aggiornamenti agli indici e ai metadati dei pacchetti

I file modificabili, come gli indici dei pacchetti e i metadati, vengono aggiornati dalla sorgente upstream quando superano l'età predefinita. Valori predefiniti per tipi di file specifici sono elencati nella seguente tabella:

Formato Tipo di file Età predefinita per l'aggiornamento
Maven maven-metadata.xml 5 minuti
archetype-catalog.xml 1 ora
Gestione dei partner di rete File manifest 5 minuti
Python File di indice 1 ora
Docker Cache List/Get tag 1 ora
Apt/Yum (anteprima) File di indice 2 minuti
File del pacchetto 72 ore

Formati supportati

Consulta le seguenti sezioni per conoscere i formati disponibili per predefiniti e definiti dall'utente repository remoti.

Preset upstream

Puoi creare repository remoti per i seguenti formati di repository e sorgenti upstream preimpostate corrispondenti:

Formato tipi di pacchetto URL upstream Nome preset upstream
Docker Pubblica o privata https://registry-1.docker.io DOCKER-HUB
Maven Pubblica o privata https://repo.maven.apache.org/maven2 MAVEN-CENTRAL
npm Pubblica o privata https://registry.npmjs.org NPMJS
Python Pubblico https://pypi.io PYPI
Pacchetti di sistemi operativi (anteprima) Pubblico Vedi gli upstream supportati per i pacchetti del sistema operativo Vedi gli upstream supportati per i pacchetti del sistema operativo

Upstream dei pacchetti di sistemi operativi

Puoi creare un repository remoto di pacchetti di sistemi operativi scegliendo una base di repository e personalizzando la parte restante dell'URL nel repository specifico. La sono supportate le seguenti basi di repository:

App

Repository Prefisso URL Nome base del repository
Debian http://deb.debian.org DEBIANO
Ubuntu LTS o Pro http://archive.ubuntu.com UBUNTU

Slurp

Repository Prefisso URL Base del repository Nome
CentOS http://mirror.centos.org CENTI
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
Pacchetti extra Fedora per Enterprise Linux (EPEL) https://dl.fedoraproject.org/pub/epel EPEL

Upstream definiti dall'utente

Puoi creare repository remoti per le origini upstream definite dall'utente nel seguenti formati:

  • Docker
  • npm
  • Maven
  • Python

La seguente tabella non esaustiva elenca alcuni URI upstream comuni.

Formato URI upstream Nome registro
Docker https://public.ecr.aws Galleria pubblica AWS ECR
Docker https://registry.k8s.io Container Registry di Kubernetes
Docker https://MY_ARTIFACTORY_INSTANCE.jfrog.io Jfrog Artifactory
Docker https://MY_NEXUS_IP Nexus
npm https://npm.pkg.github.com Registro Npm 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

Dove

  • MY_ARTIFACTORY_INSTANCE è il nome della tua azienda Jfrog Artifactory upstream.
  • MY_NEXUS_IP è l'indirizzo IP e la porta del tuo dispositivo Nexus upstream in esecuzione in un'istanza Compute Engine.
  • MY_UPSTREAM_REPOSITORY è il nome del tuo repository upstream; utilizzata negli esempi relativi a Nexus e Artifactory.

Limitazioni

Oltre alle quote e alle limitazioni di Artifact Registry, I repository hanno le seguenti limitazioni:

  • I repository remoti di Maven non consentono di impostare il criterio di versione su uno snapshot o rilasciare.

Passaggi successivi