En este documento, se proporciona una descripción general de los repositorios remotos. Si quieres 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 tus dependencias externas. La primera vez que solicitas una versión de un paquete, Artifact Registry lo descarga y lo almacena en caché en el repositorio remoto. La próxima vez que solicites la misma versión de paquete, Artifact Registry entregará la copia almacenada en caché.
Si solicitas un artefacto de una fuente ascendente que no existe o que 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, acceder a grupos de repositorios con un repositorio virtual simplifica la configuración de las herramientas.
- Virtual: Es 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 fuentes ascendentes predeterminadas y definidas por el usuario para los formatos compatibles. Si quieres obtener más información para autenticarte en fuentes ascendentes de repositorios remotos, consulta Configura la autenticación en flujos ascendentes de repositorios remotos.
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 dependencia, 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 para 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 sobre los 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 las 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 la configuración de los Controles del servicio de VPC.
Para obtener información sobre otras prácticas recomendadas de administración de dependencias, consulta Administración de dependencias.
Actualizaciones de los índices y los metadatos de paquetes
Los archivos mutables, como los índices y los metadatos del paquete, se actualizan desde la fuente ascendente cuando superan la antigüedad predeterminada. En la siguiente tabla, se enumeran los valores predeterminados para tipos de archivos específicos:
Formato | File type | 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./Dulce (versión preliminar) | 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.
Subidas predeterminadas
Puedes crear repositorios remotos para los siguientes formatos de repositorio y las fuentes ascendentes predeterminadas correspondientes:
Formato | tipos de paquete | URL ascendente | Nombre del ajuste predeterminado ascendente |
---|---|---|---|
Docker | Pública o privada | https://registry-1.docker.io | DOCKER-HUB |
Maven | Pública o privada | https://repo.maven.apache.org/maven2 | MAVEN-CENTRAL |
npm | Pública o privada | https://registry.npmjs.org | NPMJS |
Python | Pública | https://pypi.io | PYPI |
Paquetes de SO (vista previa) | Pública | Consulta Paquetes del SO compatibles de manera ascendente | Consulta Paquetes del SO compatibles de manera ascendente |
Subidas predeterminadas de paquetes de SO
Puedes crear un repositorio remoto de paquetes de SO si eliges una base de repositorio y personalizas el resto de la URL para el repositorio específico. Se admiten las siguientes bases de repositorios:
Departamento
Repositorio | Prefijo de URL | Nombre base del repositorio |
---|---|---|
Debian | http://deb.debian.org | DEBIO |
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 | ROCKY |
Paquetes adicionales 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
- Maven
- npm
- Python
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 realizar una instantánea o lanzar una versión.
¿Qué sigue?
- Crea repositorios remotos.
- Para obtener más información sobre los repositorios de Artifact Registry, consulta la Descripción general del repositorio.