Panoramica dei repository remoti

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, nonché origini definite dall'utente per i formati supportati. Un repository remoto agisce da 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 scarica e memorizza nella cache il pacchetto nel repository remoto. La volta successiva 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à di repository sono:

  • Standard: la modalità di repository predefinita. Puoi caricare o pubblicare 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 upstream, inclusi repository remoti e standard.

Autenticazione upstream

I repository remoti di Artifact Registry supportano l'autenticazione di base per le origini upstream preimpostate e definite dall'utente per i formati supportati. Per ulteriori 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 del servizio o di un altro problema.
Risoluzione più sicura delle dipendenze

Usa 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 è configurata una combinazione di repository privati e pubblici. Questo tipo di configurazione è vulnerabile a un attacco di confusione da dipendenze, in cui qualcuno carica una nuova versione di un pacchetto con codice errato in un repository pubblico per indurre con l'inganno i client a scegliere la versione non valida.

Anziché configurare i client direttamente per eseguire ricerche in più repository, puoi configurare repository virtuali per dare 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 esterne al perimetro per impostazione predefinita. Per consentire ai repository remoti che si trovano in una località specifica di accedere alle origini esterne configurate al di fuori del perimetro, consulta le istruzioni per la configurazione di Controlli di servizio VPC.

Per scoprire di più su altre best practice di gestione delle dipendenze, consulta Gestione delle dipendenze.

Aggiornamenti agli indici e ai metadati dei pacchetti

I file mutevoli, come gli indici di pacchetti e i metadati, vengono aggiornati dall'origine upstream quando superano la durata 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
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 i repository predefiniti e definiti dall'utente.

Preset upstream

Puoi creare repository remoti per i seguenti formati di repository e le corrispondenti origini upstream preimpostate:

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 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 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 origini upstream 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 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 dell'istanza upstream di Jfrog Artifactory.
  • MY_NEXUS_IP è l'indirizzo IP e la porta della tua istanza upstream di Nexus.
  • MY_UPSTREAM_REPOSITORY è il nome del repository upstream; utilizzato negli esempi relativi a Nexus e Artifactory.

Limitazioni

Oltre alle quote e alle limitazioni di Artifact Registry, i repository remoti hanno le seguenti limitazioni:

  • I repository remoti di Maven non consentono di impostare il criterio di versione su snapshot o release.

Passaggi successivi