Présentation des dépôts distants

Ce document fournit une présentation des dépôts distants. Pour obtenir des instructions comment créer un dépôt distant, consultez Créez des dépôts distants.

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

Fonctionnement des dépôts distants

Les dépôts distants stockent des artefacts provenant de sources externes prédéfinies telles que Docker. Hub, Maven Central, l'index de packages Python (PyPI), Debian ou CentOS, ainsi que Sources définies par l'utilisateur pour les formats compatibles Une télécommande sert de proxy à la source externe, ce qui vous donne plus de contrôle sur vos dépendances externes. La première fois que vous demandez la version package, Artifact Registry télécharge et met en cache le package dans le référentiel distant. La prochaine fois que vous la même version du package, Artifact Registry diffuse la copie mise en cache.

Si vous demandez un artefact à une source en amont qui n'existe pas, ou 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 importez 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, accéder à des groupes de dépôts via un dépôt virtuel simplifie configuration de l'outil.
  • Virtual: dépôt agissant comme un accès unique pour plusieurs dépôts en amont, y compris les dépôts des dépôts.

Authentification en amont

Compatibilité avec les dépôts distants Artifact Registry authentification de base pour prédéfinir et définies par l'utilisateur pour les formats compatibles. Pour en savoir plus sur comment s'authentifier auprès des sources en amont d'un dépôt distant, voir Configurez l'authentification auprès des dépôts distants en amont.

Cas d'utilisation et avantages

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

Utilisez des dépôts distants avec des dépôts virtuels pour réduire les risques associées aux dépendances publiques. Certains outils ne permettent pas contrôler l'ordre de recherche lorsqu'une combinaison de dépôts privés et publics est configurés dans le client. Ce type de configuration est vulnérable conflit de dépendance, qui consiste à importer une nouvelle version d'un d'empaqueter du code incorrect vers un dépôt public pour inciter les clients à choisir la mauvaise version.

Au lieu de configurer les clients directement pour effectuer des recherches dans plusieurs dépôts, vous Vous pouvez configurer des dépôts virtuels pour donner la priorité à vos dépôts privés sur des dépôts distants.

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

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

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

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

Format Type de fichier Âge par défaut pour la mise à jour
Maven maven-metadata.xml 5 minutes
archetype-catalog.xml 1 heure
Npm Fichiers manifestes 5 minutes
Python Fichiers d'index 1 heure
Docker Cache de liste/obtention des tags 1 heure
Apt/Miam (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 valeurs prédéfinies et définies par l'utilisateur. des dépôts distants.

Préréglages en amont

Vous pouvez créer des dépôts distants pour les formats de dépôt suivants et sources en amont prédéfinies correspondantes:

Format types de package URL en amont Nom du préréglage en amont
Docker Publique ou privée https://registry-1.docker.io. DOCKER-HUB
Maven Publique ou privée https://repo.maven.apache.org/maven2 MAVEN-CENTRAL
npm Publique ou privée https://registry.npmjs.org NPMJS
Python Public https://pypi.io PYPI
Packages OS (preview) Public Consultez la section Packages d'OS compatibles en amont. Consultez la section Packages d'OS compatibles en amont.

Packages d'OS prédéfinis en amont

Vous pouvez créer un dépôt distant pour un package d'OS en choisissant une base de dépôt et personnaliser le reste de l'URL vers le dépôt spécifique. La Les bases de dépôt suivantes sont compatibles:

Appt

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

Miam

Dépôt Préfixe d'URL Base de dépôt Nom
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
Packs Fedora pour Enterprise Linux (EPEL) https://dl.fedoraproject.org/pub/epel EPEL

En amont définis par l'utilisateur

Vous pouvez créer des dépôts distants pour les sources en amont définies par l'utilisateur dans la formats suivants:

  • Docker
  • npm
  • Maven
  • Python

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

Format URI en amont Nom du registre
Docker https://public.ecr.aws AWS ECR Public Gallery
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 Registre 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

  • MY_ARTIFACTORY_INSTANCE est le nom de votre Jfrog Artifactory. l'instance en amont.
  • MY_NEXUS_IP est l'adresse IP et le port de votre Nexus en amont. Compute Engine.
  • MY_UPSTREAM_REPOSITORY est le nom de votre dépôt en amont. dans les exemples Nexus et Artifactory.

Limites

En plus des quotas et limites d'Artifact Registry, les API présentent les limites suivantes:

  • Les dépôts distants Maven ne permettent pas de définir la règle de version sur un instantané ou d'une nouvelle version.

Étape suivante