Ce document présente les 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 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 la même version du package, Artifact Registry diffuse 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 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, 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
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 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
- 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 des dépendances plus sécurisée
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 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.
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 leurs 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 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 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/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.
Flux en amont prédéfinis
Vous pouvez créer des dépôts distants pour les formats de dépôts suivants et les sources en amont prédéfinies correspondantes :
Format | types de packages | 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 d'OS (bêta) | Public | Consultez la section Packages d'OS compatibles en amont. | Consultez Packages du système d'exploitation compatibles avec les sources. |
Packages d'OS prédéfinis en amont
Vous pouvez créer un dépôt distant de paquets d'OS en choisissant une base de dépôt et en personnalisant le reste de l'URL pour le dépôt spécifique. La Les bases de dépôt suivantes sont compatibles:
Apt
Dépôt | Préfixe d'URL | Nom de base du dépôt |
---|---|---|
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 |
Packs Fedora pour Enterprise Linux (EPEL) | https://dl.fedoraproject.org/pub/epel | EPEL |
Flux 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 le 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://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 | GitHub Npm Registry |
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 |
Où
- 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, utilisé dans les exemples Nexus et Artifactory.
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 règle de version sur un instantané ou d'une nouvelle version.
- Les sources en amont doivent être accessibles via Internet. Les dépôts distants ne sont pas compatibles avec les sources en amont du réseau sur site ou du réseau de cloud privé virtuel (VPC) sans adresse IP publique.
Étape suivante
- Créez des dépôts distants.
- Pour en savoir plus sur les dépôts Artifact Registry, consultez le Présentation du dépôt