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