En este documento, se proporciona una descripción general de los repositorios virtuales. Para obtener instrucciones sobre cómo crear un repositorio virtual, consulta Crea repositorios virtuales.
Las cuotas y los límites de Artifact Registry se aplican a los repositorios virtuales.
Cómo funcionan los repositorios virtuales
Los repositorios virtuales actúan como un único punto de acceso para descargar, instalar o implementar artefactos en el mismo formato desde uno o más repositorios ascendentes Un repositorio upstream puede ser un repositorio estándar o remoto de Artifact Registry en un repositorio de confianza.
Los otros modos de repositorio son los siguientes:
- Estándar: Es el modo de repositorio predeterminado. Tú subes o publicas como paquetes privados directamente en los 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 herramientas.
- Remoto (solo repositorios de paquetes de lenguaje): Es una caché de extracción para artefactos en repositorios públicos, como Maven Central o PyPI. Actúa como un proxy para los repositorios públicos, de modo que tengas más control sobre tus dependencias externas.
Casos de uso y beneficios
- Configuración del cliente más simple
Para las tareas que solo requieren acceso de lectura a los repositorios, solo debes configurar un solo repositorio de Artifact Registry para acceder a los artefactos almacenados en varios repositorios upstream.
Por ejemplo:
- Un repositorio virtual para paquetes de Maven puede entregar contenido Java privado paquetes de un repositorio estándar de Artifact Registry y paquetes de Java desde un repositorio remoto que almacena en caché paquetes públicos de Maven Central.
- Un repositorio virtual puede entregar paquetes privados de Python desde múltiples repositorios estándar upstream que son propiedad de diferentes equipos. Cada equipo tiene acceso de escritura a su repositorio upstream, pero descarga paquetes de otros equipos con el repositorio virtual.
- Resolución de dependencias más segura
Puedes asignar una prioridad a los repositorios ascendentes para tener más control sobre qué repositorio elige Artifact Registry cuando se elimina un artefacto en más de un repositorio upstream.
Algunas herramientas, como la herramienta
pip
de Python, 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 que elijan la versión incorrecta.Puedes usar repositorios remotos y virtuales en conjunto para mitigar este riesgo:
- Crea un repositorio remoto como proxy para el repositorio público.
- Crea un repositorio estándar para tus paquetes privados.
- Crea un repositorio virtual que esté configurado para priorizar tu repositorio estándar si existe una versión del mismo paquete en ambos repositorios.
- Configura administradores de paquetes y otras herramientas para leer desde la solo en el repositorio, de modo que la lógica del cliente no se involucre en el repositorio selección.
Para obtener información sobre otras prácticas recomendadas de administración de dependencias, consulta Administración de dependencias.
Cómo los repositorios virtuales seleccionan un repositorio upstream
Cada repositorio upstream debe tener una prioridad configurada. La prioridad es un número entero que actúa como un peso, no como una clasificación. Esto significa que los repositorios con un valor de prioridad más alto tienen prioridad sobre los repositorios con menor los valores de prioridad.
Cuando solicitas un artefacto que se encuentra en varios repositorios ascendentes, Artifact Registry usa la siguiente lógica de priorización:
- Se prioriza el repositorio con el valor más alto. Por ejemplo, un valor de
10
se considera de prioridad más alta que un valor de1
. - Si varios repositorios upstream tienen la misma prioridad, el artefacto y se puede entregar desde cualquiera de esos repositorios.
Cuando configuras directamente un cliente para que busque un repositorio virtual y repositorios adicionales, es posible que el cliente siga descargando artefactos de repositorios fuera de Artifact Registry.
Por ejemplo, si configuras la herramienta pip
de Python para buscar en PyPI y en una
en el repositorio de código fuente, es posible que tu paquete se descargue directamente de PyPI porque pip
elegirá la versión más reciente de un paquete, independientemente de la
del que proviene. Si pip
está configurado para buscar solo en la carpeta
repositorio, puedes controlar la prioridad
de todos los repositorios upstream,
incluido un repositorio remoto upstream
que funciona como proxy para PyPI.
Formatos de repositorio compatibles
Puedes crear repositorios virtuales para seguir Artifact Registry Formatos de repositorio de Artifact Registry:
Paquetes de idioma:
Paquetes del SO:
Si eres nuevo en Artifact Registry, puedes usar las guías de inicio rápido para aprender sobre la configuración de repositorios estándar para estos formatos.
Limitaciones
Además de las cuotas y limitaciones de Artifact Registry, las instancias Los repositorios tienen las siguientes limitaciones:
- Los repositorios upstream estándar de Artifact Registry deben estar en la misma región o multirregión que el en un repositorio virtual, pero también puede estar en diferentes proyectos de Google Cloud.
Los repositorios virtuales de Maven no permiten configurar la política de la versión para tomar instantáneas. o lanzar.
Los upstream de Apt y Yum deben ser repositorios estándar de Artifact Registry.
Los repositorios estándar de Apt y Yum actualizan el índice del paquete de forma asíncrona. después de que se importa, sube o borra un paquete. Para repositorios pequeños, volver a generar el índice puede demorar varios segundos. En el caso de los repositorios más grandes, la reindexación puede tardar varios minutos o más. Después de que se complete la reindexación, Los clientes Apt y Yum pueden ver el cambio en el repositorio.
¿Qué sigue?
- Crea repositorios virtuales.
- Para obtener más información sobre los repositorios de Artifact Registry, lee la descripción general de los repositorios.