Questo documento fornisce una panoramica dei repository remoti. Per istruzioni su come creare un repository remoto, consulta Crea repository remoti.
Agli repository remoti si applicano le quote e i limiti di Artifact Registry.
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 repository remoto agisce come proxy per l'origine esterna, in modo da avere un maggiore controllo sulle dipendenze esterne. 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 serve 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 gli elementi, 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 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 autenticarsi nelle 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
- 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 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 un malintenzionato 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.
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 Controlli di servizio VPC.
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 | 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 | 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.
Preset upstream
Puoi creare repository remoti per i seguenti formati di repository e per le corrispondenti origini upstream predefinite:
Formato | tipi di pacchetti | 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 di sistemi operativi (anteprima) | Pubblico | Vedi gli upstream supportati per i pacchetti del sistema operativo | Vedi Pacchetti OS supportati upstream |
Upstream dei pacchetti di sistemi operativi
Puoi creare un repository remoto di pacchetti del sistema operativo 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 |
Yum
Repository | Prefisso URL | Base del repository Nome |
---|---|---|
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 |
Upstream definiti dall'utente
Puoi creare repository remoti per le origini a monte definite dall'utente nei 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 | Kubernetes Container Registry |
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 dell'istanza upstream di Nexus.
- MY_UPSTREAM_REPOSITORY è il nome del tuo repository upstream; utilizzata negli esempi relativi a Nexus e Artifactory.
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 a internet. I repository remoti supportare origini upstream della rete on-premise o VPC (Virtual Private Cloud) senza un indirizzo IP pubblico.
Passaggi successivi
- Crea repository remoti.
- Scopri di più sui repository Artifact Registry, leggi il Panoramica del repository.