Panoramica dei repository remoti

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

Artifact Registry quote e limiti si applicano ai repository remoti.

Come funzionano i repository remoti

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

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

Le altre modalità del repository sono:

  • Standard: la modalità di repository predefinita. Puoi caricare o pubblicare gli artefatti, come i 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 la configurazione degli strumenti.
  • Virtuale: un repository che funge da singolo punto di accesso per più repository a monte, inclusi repository remoti e standard.

Autenticazione upstream

I repository remoti di Artifact Registry supportano l'autenticazione di base verso origini upstream preimpostate e definite dall'utente per i formati supportati. Per maggiori informazioni su come eseguire l'autenticazione nelle origini upstream del repository remoto, consulta Configurare l'autenticazione negli upstream del repository remoto.

Casi d'uso e vantaggi

Accesso più rapido e affidabile agli artefatti
L'archiviazione di 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 o di un altro problema.
Risoluzione delle dipendenze più sicura

Utilizza repository remoti insieme a repository virtuali per mitigare 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 privati e pubblici. Questo tipo di configurazione è vulnerabile a un attacco di confusione di dipendenza 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 errata.

Anziché configurare i client direttamente per la ricerca in più repository, puoi configurare repository virtuali in modo da assegnare la priorità ai repository privati rispetto a repository remoti.

Se Artifact Registry si trova in un perimetro di servizio Controlli di servizio VPC, Artifact Registry nega l'accesso alle origini upstream al di fuori del perimetro per impostazione predefinita. Per consentire ai repository remoti in una località specifica di accedere alle rispettive 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 a metadati e indici dei pacchetti

I file modificabili, come gli indici dei pacchetti e i metadati, vengono aggiornati dalla sorgente upstream quando superano l'età predefinita. I 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
n/m File manifest 5 minuti
Python File di indice 1 ora
Docker Elenco/Recupero della 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 conoscere i formati disponibili per i repository remoti predefiniti e definiti dall'utente.

Upstream preimpostati

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

Formato tipi di pacchetto URL upstream Nome preset upstream
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 del sistema operativo (anteprima) Pubblico Vedi Upstream supportati per i pacchetti del sistema operativo Vedi Upstream supportati per i pacchetti del sistema operativo

Upstream preimpostati dei pacchetti del sistema operativo

Puoi creare un repository remoto per un pacchetto del sistema operativo scegliendo una base di repository e personalizzando il resto dell'URL per il repository specifico. 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 Nome base 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 per Enterprise Linux (EPEL) https://dl.fedoraproject.org/pub/epel EPEL

Upstream definiti dall'utente

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

  • Docker
  • Maven
  • npm
  • Python

Limitazioni

Oltre alle quote e alle limitazioni di Artifact Registry, i repository remoti presentano le seguenti limitazioni:

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

Passaggi successivi