Ce document offre un aperçu des 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 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 des sources définies par l'utilisateur pour les formats compatibles. Un dépôt distant agit comme un proxy pour la source externe, ce qui vous permet de mieux contrôler vos dépendances externes. La première fois que vous demandez une version d'un package, Artifact Registry télécharge et met en cache le package dans le dépôt distant. La prochaine fois que vous demanderez la même version de package, Artifact Registry diffusera 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 échouera.
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 les télécharger directement à partir de dépôts standards individuels, accéder à des groupes de dépôts avec un dépôt virtuel simplifie la configuration des outils.
- Virtual: dépôt servant de point d'accès unique pour plusieurs dépôts en amont, y compris les dépôts distants et standards.
Authentification en amont
Les dépôts distants Artifact Registry prennent en charge l'authentification de base pour les sources en amont prédéfinies et définies par l'utilisateur pour les formats compatibles. Pour en savoir plus sur l'authentification auprès des sources en amont du dépôt distant, consultez la section Configurer l'authentification auprès des sources en amont du dépôt distant.
Cas d'utilisation et avantages
- Accès plus rapide et plus fiable aux artefacts
- Le stockage de copies 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 restent é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ûre des dépendances
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'une combinaison de dépôts privés et publics est configurée dans le client. Ce type de configuration est vulnérable aux attaques de confiance de dépendance, où quelqu'un importe une nouvelle version d'un package avec du code incorrect dans un dépôt public pour inciter les clients à choisir la mauvaise version.
Au lieu de configurer des clients directement pour effectuer des recherches 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 par défaut l'accès aux sources en amont situées en dehors du périmètre. Pour autoriser les dépôts distants d'un emplacement spécifique à accéder à leurs sources externes configurées en dehors du périmètre, consultez les instructions relatives à la configuration de VPC Service Controls.
Pour en savoir plus sur les autres bonnes pratiques de gestion des dépendances, consultez la page Gestion des dépendances.
Mises à jour des index de packages et des métadonnées
Les fichiers modifiables tels que les index de packages 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 listées dans le tableau suivant:
Format | File type | Mettre à jour l'âge par défaut |
---|---|---|
Maven | maven-metadata.xml |
5 minutes |
archetype-catalog.xml |
1 heure | |
pm | Fichiers manifestes | 5 minutes |
Python | Fichiers d'index | 1 heure |
Docker | Lister/Récupérer les tags en cache | 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 préconfigurés en amont
Vous pouvez créer des dépôts distants pour les formats de dépôt 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 (preview) | Public | Découvrez les packages d'OS compatibles en amont. | Découvrez les packages d'OS compatibles en amont. |
En amont prédéfinis des packages de système d'exploitation
Vous pouvez créer un dépôt distant de package OS en choisissant une base de dépôt et en personnalisant le reste de l'URL pour le dépôt spécifique. Les bases de dépôts suivantes sont compatibles:
Appt
Dépôt | Préfixe d'URL | Nom de base du dépôt |
---|---|---|
Debian | http://deb.debian.org | DEBIE |
Ubuntu LTS ou Pro | http://archive.ubuntu.com | UBUNTU |
Miam
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 | |
Théo | http://dl.rockylinux.org | FOU |
Fedora Extra Packages pour Enterprise Linux (EPEL) | https://dl.fedoraproject.org/pub/epel | EPEL |
Éléments 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 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://public.ecr.aws | Galerie publique AWS ECR |
Docker | https://registry.k8s.io | Kubernetes Container Registry |
Docker | https://MY_ARTIFACTORY_INSTANCE.jfrog.io | Jgrenog 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 | Jgrenog Artifactory |
npm | https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY | Nexus |
Maven | https://MY_ARTIFACTORY_INSTANCE.jfrog.io/artifactory/MY_UPSTREAM_REPOSITORY | Jgrenog Artifactory |
Maven | https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY | Nexus |
Python | https://MY_ARTIFACTORY_INSTANCE.jfrog.io/artifactory/api/pypi/MY_UPSTREAM_REPOSITORY | Jgrenog Artifactory |
Python | https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY | Nexus |
Où
- MY_ARTIFACTORY_INSTANCE est le nom de votre instance Jfrog Artifactory en amont.
- MY_NEXUS_IP est l'adresse IP et le port de votre instance en amont Nexus.
- 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 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 instantané ou version.
Étapes suivantes
- Créez des dépôts distants.
- Pour en savoir plus sur les dépôts Artifact Registry, consultez la présentation des dépôts.