Descripción general de los repositorios remotos

En este documento, se proporciona una descripción general de los repositorios remotos. Si deseas obtener instrucciones para crear un repositorio remoto, consulta Crea repositorios remotos.

Las cuotas y los límites de Artifact Registry se aplican a los repositorios remotos.

Cómo funcionan los repositorios remotos

Los repositorios remotos almacenan artefactos de fuentes externas preestablecidas, como Docker Hub, Maven Central, el índice de paquetes de Python (PyPI), Debian o CentOS, así como fuentes definidas por el usuario para formatos compatibles. Un repositorio remoto actúa como un proxy para la fuente externa para que tengas más control sobre las dependencias externas. La primera vez que solicitas una versión de un paquete, Artifact Registry descarga y almacena en caché el paquete en el repositorio remoto. La próxima vez que solicites la misma versión del paquete, Artifact Registry entregará la copia en caché.

Si solicitas un artefacto de una fuente upstream que no existe o no contiene la versión que especificaste, la solicitud fallará.

Los otros modos de repositorio son los siguientes:

  • Estándar: Es el modo de repositorio predeterminado. Subes o publicas artefactos, como paquetes privados, directamente en repositorios estándar. Aunque puedes descargar directamente desde repositorios estándar individuales, el acceso a grupos de repositorios con un repositorio virtual simplifica la configuración de la herramienta.
  • Virtual: Un repositorio que actúa como un único punto de acceso para varios repositorios ascendentes, incluidos los repositorios remotos y estándar

Autenticación upstream

Los repositorios remotos de Artifact Registry admiten la autenticación básica para preestablecer y definir las fuentes ascendentes que define el usuario para los formatos compatibles. Si quieres obtener más información sobre cómo autenticarte en fuentes ascendentes del repositorio remoto, consulta Configura la autenticación para las fuentes ascendentes del repositorio remoto.

Casos de uso y beneficios

Acceso más rápido y confiable a los artefactos
Almacenar copias almacenadas en caché de tus dependencias públicas en Artifact Registry reduce la latencia cuando otros servicios de Google Cloud recuperan imágenes. Los artefactos almacenados en caché también están disponibles si el repositorio público externo está sin conexión debido a una interrupción o algún otro problema.
Resolución de dependencias más segura

Usa repositorios remotos junto con repositorios virtuales para mitigar los riesgos asociados con las dependencias públicas. Algunas herramientas no proporcionan una forma de controlar el orden de búsqueda cuando se configura una combinación de repositorios privados y públicos en el cliente. Este tipo de configuración es vulnerable a un ataque de confusión de dependencias, en el que alguien sube una versión nueva de un paquete con código incorrecto a un repositorio público para engañar a los clientes y lograr que elijan la versión incorrecta.

En lugar de configurar clientes directamente para que busquen varios repositorios, puedes configurar repositorios virtuales a fin de priorizar tus repositorios privados en lugar de repositorios remotos.

Si Artifact Registry está en un perímetro de servicio de los Controles del servicio de VPC, Artifact Registry rechaza el acceso a fuentes ascendentes fuera del perímetro de forma predeterminada. Para permitir que los repositorios remotos de una ubicación específica accedan a sus fuentes externas configuradas fuera del perímetro, consulta las instrucciones de configuración de los Controles del servicio de VPC.

Para obtener más información sobre otras prácticas recomendadas de administración de dependencias, consulta Administración de dependencias.

Actualizaciones de índices y metadatos de paquetes

Los archivos mutables, como los índices y los metadatos de paquetes, se actualizan desde la fuente upstream cuando superan la antigüedad predeterminada. Los valores predeterminados para tipos de archivos específicos se enumeran en la siguiente tabla:

Formato File type Antigüedad de actualización predeterminada
Maven maven-metadata.xml 5 minutos
archetype-catalog.xml 1 hora
npm Archivos de manifiesto 5 minutos
Python Archivos de índice 1 hora
Docker Enumerar/obtener caché de etiquetas 1 hora
Depto/Yum (vista previa) Archivos de índice 2 minutos
Archivos de paquete 72 horas

Formatos admitidos

Consulta las siguientes secciones a fin de conocer los formatos disponibles para los repositorios remotos predeterminados y definidos por el usuario.

Flujos ascendentes predeterminados

Puedes crear repositorios remotos para los siguientes formatos de repositorio y las fuentes ascendentes correspondientes predeterminadas:

Formato tipos de paquetes URL upstream Nombre del ajuste predeterminado upstream
Docker Públicas o privadas https://registry-1.docker.io DOCKER-HUB
Maven Públicas o privadas https://repo.maven.apache.org/maven2 MAVEN-CENTRAL
npm Públicas o privadas https://registry.npmjs.org NPMJS
Python Pública https://pypi.io PYPI
Paquetes del SO (vista previa) Pública Consulta Paquetes de SO compatibles con versiones ascendentes Consulta Paquetes de SO compatibles con versiones ascendentes

Sentido ascendente predeterminado de los paquetes del SO

Puedes crear un repositorio remoto de paquetes de SO si eliges una base de repositorio y personalizas el resto de la URL al repositorio específico. Se admiten las siguientes bases de repositorio:

Dpto.

Repositorio Prefijo de URL Nombre base del repositorio
Debian http://deb.debian.org DEBIA
Ubuntu LTS o Pro http://archive.ubuntu.com UBUNTU

Delicioso

Repositorio Prefijo de URL Nombre base del repositorio
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 ROCASO
Paquetes adicionales de Fedora para Enterprise Linux (EPEL) https://dl.fedoraproject.org/pub/epel EPEL

Subprocesos definidos por el usuario

Puedes crear repositorios remotos para fuentes ascendentes definidas por el usuario en los siguientes formatos:

  • Docker
  • npm
  • Maven
  • Python

En la siguiente tabla no exhaustiva, se enumeran algunos URI ascendentes comunes.

Formato URI upstream Nombre del registro
Docker https://public.ecr.aws Galería pública de AWS ECR
Docker https://registry.k8s.io Kubernetes Container Registry
Docker https://MY_ARTIFACTORY_INSTANCE.jfrog.io Artefacto de rana japonesa
Docker https://MY_NEXUS_IP Nexus
npm https://npm.pkg.github.com Registro de NPM de GitHub
npm https://MY_ARTIFACTORY_INSTANCE.jfrog.io/artifactory/api/npm/MY_UPSTREAM_REPOSITORY Artefacto de rana japonesa
npm https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus
Maven https://MY_ARTIFACTORY_INSTANCE.jfrog.io/artifactory/MY_UPSTREAM_REPOSITORY Artefacto de rana japonesa
Maven https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus
Python https://MY_ARTIFACTORY_INSTANCE.jfrog.io/artifactory/api/pypi/MY_UPSTREAM_REPOSITORY Artefacto de rana japonesa
Python https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus

Dónde

  • MY_ARTIFACTORY_INSTANCE es el nombre de tu instancia ascendente de Jfrog Artifactory.
  • MY_NEXUS_IP es la dirección IP y el puerto de tu instancia ascendente de Nexus.
  • MY_UPSTREAM_REPOSITORY es el nombre de tu repositorio upstream; se usa en los ejemplos de Nexus y Artifactory.

Limitaciones

Además de las cuotas y limitaciones de Artifact Registry, los repositorios remotos tienen las siguientes limitaciones:

  • Los repositorios remotos de Maven no permiten configurar la política de la versión para tomar instantáneas o lanzar.

¿Qué sigue?