Panoramica dei repository remoti

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