Présentation des dépôts distants

Ce document présente les dépôts distants. Pour savoir comment créer un dépôt distant, consultez la section Créer des dépôts distants.

Les quotas et limites d'Artifact Registry s'appliquent aux dépôts distants.

Fonctionnement des dépôts distants

Les dépôts distants stockent les artefacts des sources en amont suivantes:

  • Dépôts Artifact Registry standards.
  • Sources externes telles que Docker Hub, Maven Central, l'indice des paquets Python (PyPI), Debian ou CentOS.

Un dépôt distant agit en tant que proxy pour la source en amont afin que vous ayez plus de contrôle sur vos dépendances. La première fois que vous demandez une version d'un package, Artifact Registry le télécharge et le met en cache dans le dépôt distant. La prochaine fois que vous demanderez la même version de package, Artifact Registry fournira la copie mise en cache.

Si vous demandez un artefact à partir d'une source en amont qui n'existe pas ou qui ne contient pas la version que vous avez spécifiée, la requête échoue.

Les autres modes de dépôt sont les suivants:

  • Standard: mode de dépôt par défaut. Vous mettez en ligne ou publiez des artefacts tels que des packages privés directement dans des dépôts standards. Bien que vous puissiez télécharger directement à partir de dépôts standards individuels, l'accès à des groupes de dépôts avec un dépôt virtuel simplifie la configuration de l'outil.
  • Virtuel: dépôt qui sert de point d'accès unique à plusieurs dépôts en amont, y compris des dépôts distants et standards.

Authentification en amont

Les dépôts distants Artifact Registry sont compatibles avec l'authentification de base pour les sources en amont pour les formats compatibles. Pour en savoir plus sur l'authentification auprès des sources en amont d'un dépôt distant, consultez la section Configurer l'authentification auprès des sources en amont d'un dépôt distant.

Cas d'utilisation et avantages

Accès plus rapide et plus fiable aux artefacts
Le stockage de copies mises en cache de vos dépendances publiques dans Artifact Registry réduit la latence lorsque d'autres Google Cloud services récupèrent des images. Les artefacts mis en cache sont également toujours disponibles si le dépôt public externe est hors connexion en raison d'une panne ou d'un autre problème.
Résolution des dépendances plus sûre

Utilisez des dépôts distants avec des dépôts virtuels pour atténuer les risques associés aux dépendances publiques. Certains outils ne permettent pas de contrôler l'ordre de recherche lorsqu'un mélange de dépôts privés et publics est configuré dans le client. Ce type de configuration est vulnérable à une attaque de confusion de dépendance, où un pirate informatique importe une nouvelle version d'un paquet contenant du code incorrect dans un dépôt public pour inciter les clients à choisir la mauvaise version.

Au lieu de configurer directement les clients pour qu'ils recherchent dans plusieurs dépôts, vous pouvez configurer des dépôts virtuels pour donner la priorité à vos dépôts privés par rapport aux dépôts distants.

Réduire les coûts de transfert de données

Utilisez des dépôts distants pour mettre en cache des artefacts dans la même région ou multirégion que vos environnements d'exécution afin de réduire les coûts de transfert de données.

Si Artifact Registry se trouve dans un périmètre de service VPC Service Controls, il refuse par défaut l'accès aux sources en amont en dehors du périmètre. Pour autoriser des dépôts distants situés à un emplacement spécifique à accéder à leurs sources externes configurées en dehors du périmètre, consultez les instructions de configuration de VPC Service Controls.

Pour en savoir plus sur les autres bonnes pratiques de gestion des dépendances, consultez la section Gestion des dépendances.

Mises à jour des index et des métadonnées des packages

Les fichiers modifiables tels que les index de paquets et les métadonnées sont mis à jour à partir de la source en amont lorsqu'ils dépassent l'âge par défaut. Les valeurs par défaut pour des types de fichiers spécifiques sont indiquées dans le tableau suivant:

Format Type de fichier Âge de mise à jour par défaut
Maven maven-metadata.xml 5 minutes
archetype-catalog.xml 1 heure
Npm Fichiers manifestes 5 minutes
Python Fichiers d'index 1 heure
Docker Lister/Récupérer le cache des tags 1 heure
Apt/Yum (preview) Fichiers d'index 2 minutes
Fichiers de package 72 heures

Formats compatibles

Consultez les sections suivantes pour connaître les formats disponibles pour les dépôts distants prédéfinis et définis par l'utilisateur.

URL en amont prédéfinies

Pour plus de commodité, plusieurs URL de dépôts en amont courantes sont disponibles en tant que sélections prédéfinies dans les formats suivants.

Format types de packages URL en amont Nom du préréglage en amont
Docker Public ou privé https://registry-1.docker.io DOCKER-HUB
Maven Public ou privé https://repo.maven.apache.org/maven2 MAVEN-CENTRAL
npm Public ou privé https://registry.npmjs.org NPMJS
Python Public https://pypi.io PYPI
Packages d'OS (bêta) Public Consultez Packages du système d'exploitation compatibles avec les sources. Consultez Packages du système d'exploitation compatibles avec les sources.

Packages de système d'exploitation avec sources prédéfinies

Vous pouvez créer un dépôt distant de paquets d'OS en choisissant l'une des URL de base de dépôt en amont prédéfinies courantes et en personnalisant le reste de l'URL pour le dépôt spécifique. Les bases de dépôt suivantes sont acceptées:

Apt

Dépôt Préfixe d'URL Nom de base du dépôt
Debian archivé https://snapshot.debian.org DEBIAN_SNAPSHOT
Debian http://deb.debian.org DEBIAN
Ubuntu LTS ou Pro http://archive.ubuntu.com UBUNTU

Yum

Dépôt Préfixe d'URL Nom de base du dépôt
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

Sources du dépôt Artifact Registry

Vous pouvez créer des dépôts distants avec des dépôts au format standard Artifact Registry en tant que sources pour les formats suivants:

  • Docker
  • npm
  • Maven
  • Python

URL personnalisées

Vous pouvez saisir directement l'URL de votre dépôt distant, sans utiliser l'une des sources en amont prédéfinies pour les formats suivants.

  • Docker
  • npm
  • Maven
  • Python

Le tableau suivant, non exhaustif, répertorie certains URI en amont courants.

Format URI en amont Nom du registre
Docker https://registry-1.docker.io Docker Hub
Docker https://public.ecr.aws Galerie publique AWS ECR
Docker https://registry.k8s.io Kubernetes Container Registry
Docker https://MY_NEXUS_IP Nexus
npm https://registry.npmjs.org npm
npm https://npm.pkg.github.com GitHub Npm Registry
npm https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus
Maven https://repo.maven.apache.org/maven2 Maven Central
Maven https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus
Python https://pypi.io Python Package Index (PyPI)
Python https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus

  • MY_NEXUS_IP correspond à l'adresse IP et au port de votre instance Nexus en amont.
  • MY_UPSTREAM_REPOSITORY est le nom de votre dépôt en amont, utilisé dans les exemples Nexus.

Limites

En plus des quotas et des limites d'Artifact Registry, les dépôts distants présentent les limites suivantes:

  • Les dépôts distants Maven ne permettent pas de définir la stratégie de version sur "snapshot" ou "release".
  • Les sources en amont doivent être accessibles sur Internet. Les dépôts distants ne sont pas compatibles avec les sources en amont du réseau sur site ou du réseau cloud privé virtuel (VPC) sans adresse IP publique.

Étape suivante