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