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