Panoramica dei repository remoti

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

Agli repository remoti si applicano le quote e i limiti di Artifact Registry.

Come funzionano i repository remoti

I repository remoti memorizzano gli elementi delle seguenti origini upstream:

  • Repository Artifact Registry standard.
  • Sorgenti esterne come Docker Hub, Maven Central, l'indice dei pacchetti Python (PyPI), Debian o CentOS.

Un repository remoto funge da proxy per l'origine upstream, in modo da avere un maggiore controllo sulle dipendenze. La prima volta che richiedi una versione di un pacchetto, Artifact Registry lo scarica e memorizza nella cache nel repository remoto. La volta successiva che richiedi la stessa versione del pacchetto, Artifact Registry pubblica la copia memorizzata nella cache.

Se richiedi un elemento da un'origine a monte che non esiste o che non contiene la versione specificata, la richiesta non andrà a buon fine.

Le altre modalità del repository sono:

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

Autenticazione upstream

I repository remoti di Artifact Registry supportano l'autenticazione di base per le origini upstream per i formati supportati. Per ulteriori informazioni su come autenticarsi alle origini upstream del repository remoto, consulta Configurare l'autenticazione per gli upstream del repository remoto.

Casi d'uso e vantaggi

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

Utilizza i repository remoti insieme a quelli virtuali per ridurre i rischi associati alle dipendenze pubbliche. Alcuni strumenti non forniscono un modo per controllare l'ordine di ricerca quando nel client è configurato un mix di repository pubblici e privati. Questo tipo di configurazione è vulnerabile a un attacco di confusione delle dipendenze, in cui qualcuno carica una nuova versione di un pacchetto con codice non valido in un repository pubblico per indurre i clienti a scegliere la versione non valida.

Anziché configurare i client direttamente per eseguire ricerche in più repository, puoi configurare i repository virtuali in modo da dare la priorità ai tuoi repository privati rispetto a quelli remoti.

Riduci i costi di trasferimento dei dati

Utilizza repository remoti per memorizzare gli artefatti nella stessa regione o in più regioni dei tuoi runtime per ridurre i costi del trasferimento di dati.

Se Artifact Registry si trova in un perimetro di servizio Controlli di servizio VPC, per impostazione predefinita nega l'accesso alle origini a monte esterne al perimetro. Per consentire ai repository remoti in una posizione specifica di accedere alle loro origini esterne configurate al di fuori del perimetro, consulta le istruzioni per la configurazione di VPC Service Controls.

Per scoprire altre best practice per la gestione delle dipendenze, consulta Gestione delle dipendenze.

Aggiornamenti agli indici e ai metadati dei pacchetti

I file mutabili, come gli indici e i metadati dei pacchetti, vengono aggiornati dall'origine a monte quando superano la data di creazione predefinita. I valori predefiniti per tipi di file specifici sono elencati nella tabella seguente:

Formato Tipo di file Aggiornamento predefinito
Maven maven-metadata.xml 5 minuti
archetype-catalog.xml 1 ora
Npm File manifest 5 minuti
Python File di indice 1 ora
Docker Elenca/recupera la cache dei tag 1 ora
Apt/Yum (anteprima) File di indice 2 minuti
File del pacchetto 72 ore

Formati supportati

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

URL upstream preimpostati

Per comodità, sono disponibili una serie di URL di repository upstream comuni come selezioni predefinite nei seguenti formati.

Formato tipi di pacchetti URL upstream Nome preimpostazione a monte
Docker Pubblico o privato https://registry-1.docker.io DOCKER-HUB
Maven Pubblico o privato https://repo.maven.apache.org/maven2 MAVEN-CENTRAL
npm Pubblico o privato https://registry.npmjs.org NPMJS
Python Pubblico https://pypi.io PYPI
Pacchetti OS (anteprima) Pubblico Vedi Pacchetti OS supportati upstream Vedi Pacchetti OS supportati upstream

Pacchetti di sistemi operativi con upstream preimpostati

Puoi creare un repository remoto del pacchetto del sistema operativo scegliendo uno degli URL di base del repository a monte preimpostati comuni e personalizzando il resto dell'URL in base al repository specifico. Sono supportate le seguenti basi di repository:

Apt

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

Yum

Repository Prefisso URL Nome base del repository
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

Repository Artifact Registry upstream

Puoi creare repository remoti con repository di formato standard di Artifact Registry come upstream per i seguenti formati:

  • Docker
  • npm
  • Maven
  • Python

URL personalizzati

Puoi inserire direttamente l'URL del tuo repository remoto, senza utilizzare una delle fonti upstream predefinite per i seguenti formati.

  • Docker
  • npm
  • Maven
  • Python

La seguente tabella non esaustiva elenca alcuni URI upstream comuni.

Formato URI upstream Nome registry
Docker https://registry-1.docker.io Docker Hub
Docker https://public.ecr.aws Galleria pubblica 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 Registry NPM di 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

Dove

  • MY_NEXUS_IP è l'indirizzo IP e la porta dell'istanza di Nexus upstream.
  • MY_UPSTREAM_REPOSITORY è il nome del repository upstream; utilizzato negli esempi di Nexus.

Limitazioni

Oltre alle quote e ai limiti di Artifact Registry, i repository remote hanno le seguenti limitazioni:

  • I repository remoti Maven non consentono di impostare il criterio di versione su snapshot o release.
  • Le origini upstream devono essere accessibili tramite internet. I repository remoti non supportano le origini upstream della rete on-premise o Virtual Private Cloud (VPC) senza un indirizzo IP pubblico.

Passaggi successivi