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
- Crea repository remoti.
- Scopri di più sui repository Artifact Registry, leggi la panoramica del repository.