En este documento se ofrece una descripción general de los repositorios remotos. Para obtener instrucciones sobre cómo crear un repositorio remoto, consulta Crear 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 las siguientes fuentes de upstream:
- Repositorios estándar de Artifact Registry.
- Fuentes externas, como Docker Hub, Maven Central, el índice de paquetes de Python (PyPI), Debian o CentOS.
Un repositorio remoto actúa como proxy de la fuente upstream para que tengas más control sobre tus dependencias. 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 solicite la misma versión del paquete, Artifact Registry proporcionará la copia almacenada en caché.
Si solicitas un artefacto de una fuente upstream que no existe o que no contiene la versión que has especificado, la solicitud fallará.
Los otros modos de repositorio son los siguientes:
- Estándar: es el modo de repositorio predeterminado. Puedes subir o publicar 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: repositorio que actúa como un único punto de acceso para varios repositorios upstream, incluidos los remotos y los estándar.
Autenticación upstream
Los repositorios remotos de Artifact Registry admiten la autenticación básica en fuentes upstream para los formatos admitidos. Para obtener más información sobre cómo autenticarte en fuentes upstream de repositorios remotos, consulta Configurar la autenticación en fuentes upstream de repositorios remotos.
Casos prácticos y ventajas
- Acceso más rápido y fiable a los artefactos
- Almacenar copias en caché de tus dependencias públicas en Artifact Registry Google Cloud se reduce la latencia cuando otros servicios recuperan imágenes. Los artefactos almacenados en caché también están disponibles si el repositorio público externo no está disponible debido a una interrupción u otro problema.
- Resolución de dependencias más segura
Usa repositorios remotos junto con repositorios virtuales para mitigar los riesgos asociados a las dependencias públicas. Algunas herramientas no ofrecen una forma de controlar el orden de búsqueda cuando se configura en el cliente una combinación de repositorios privados y públicos. Este tipo de configuración es vulnerable a un ataque de confusión de dependencias, en el que alguien sube una nueva versión 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.
En lugar de configurar los clientes directamente para que busquen en varios repositorios, puedes configurar repositorios virtuales para priorizar tus repositorios privados sobre los remotos.
- Reducir los costes de transferencia de datos
Usa repositorios remotos para almacenar en caché los artefactos en la misma región o multirregión que tus tiempos de ejecución para reducir los costes de transferencia de datos.
Si Artifact Registry está en un perímetro de servicio de Controles de Servicio de VPC, Artifact Registry deniega el acceso a las fuentes upstream que estén 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 Controles de Servicio de VPC.
Para obtener información sobre otras prácticas recomendadas de gestión de dependencias, consulta Gestión de dependencias.
Actualizaciones de índices y metadatos de paquetes
Los archivos mutables, como los índices de paquetes y los metadatos, se actualizan desde la fuente upstream cuando superan la antigüedad predeterminada. En la siguiente tabla se indican los valores predeterminados de tipos de archivo específicos:
Formato | Tipo de archivo | Antigüedad predeterminada de las actualizaciones |
---|---|---|
Maven | maven-metadata.xml |
5 minutos |
archetype-catalog.xml |
1 hora | |
Npm | Archivos de manifiesto | 5 minutos |
Python | Archivos de índice | 1 hora |
Docker | Listar o obtener la caché de etiquetas | 1 hora |
Apt/Yum (vista previa) | Archivos de índice | 2 minutos |
Archivos de paquete | 72 horas |
Formatos admitidos
En las siguientes secciones se indican los formatos disponibles para los repositorios remotos predefinidos y definidos por el usuario.
URLs de upstream predefinidas
Hay varias URLs de repositorios upstream comunes disponibles como selecciones predefinidas para mayor comodidad en los siguientes formatos.
Formato | tipos de paquetes | URL de origen | Nombre del preajuste de la emisión |
---|---|---|---|
Docker | Público o privado | https://registry-1.docker.io |
DOCKER-HUB |
Go | Público | https://proxy.golang.org |
https://proxy.golang.org |
Maven | Público o privado | https://repo.maven.apache.org/maven2 |
MAVEN-CENTRAL |
npm | Público o privado | https://registry.npmjs.org |
NPMJS |
Python | Público | https://pypi.io |
PYPI |
Paquetes del SO (vista previa) | Público | Consulta los paquetes de SO compatibles con versiones actualizadas. | Consulta los paquetes de SO compatibles con versiones actualizadas. |
Upstreams predefinidos de paquetes del SO
Puedes crear un repositorio remoto de paquetes de SO eligiendo una de las URLs base de repositorio upstream predefinidas comunes y personalizando el resto de la URL para que corresponda al repositorio específico. Se admiten las siguientes bases de repositorios:
Apt
Repositorio | Prefijo de URL | Nombre base del repositorio |
---|---|---|
Debian archivada | https://snapshot.debian.org |
DEBIAN_SNAPSHOT |
Debian | http://deb.debian.org |
DEBIAN |
Ubuntu LTS o Pro | http://archive.ubuntu.com
|
UBUNTU
|
Yum
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 extra de Fedora para Enterprise Linux (EPEL) | https://dl.fedoraproject.org/pub/epel
|
EPEL
|
Upstreams de repositorios de Artifact Registry
Puede crear repositorios remotos con repositorios de formato estándar de Artifact Registry como upstream para los siguientes formatos:
- Docker
- npm
- Maven
- Python
URL personalizadas
Puedes introducir directamente la URL de tu repositorio remoto sin usar una de las fuentes upstream predefinidas para los siguientes formatos.
- Docker
- npm
- Maven
- Python
En la siguiente tabla no exhaustiva se enumeran algunos URIs de origen comunes.
Formato | URI de upstream | Nombre del registro |
---|---|---|
Docker | https://ghcr.io |
GitHub Container Registry |
Docker | https://registry-1.docker.io |
Docker Hub |
Docker | https://public.ecr.aws |
Galería pública de AWS ECR |
Docker | https://registry.k8s.io |
Registro de contenedores de Kubernetes |
Docker | https://MY_NEXUS_IP |
Nexus |
npm | https://registry.npmjs.org |
npm |
npm | https://npm.pkg.github.com |
Registro de npm de GitHub |
npm | https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY |
Nexus |
Maven | https://repo.maven.apache.org/maven2 |
Maven Central |
Maven | https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY |
Nexus |
Python | https://pypi.io |
Índice de paquetes de Python (PyPI) |
Python | https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY |
Nexus |
Dónde
- MY_NEXUS_IP es la dirección IP y el puerto de tu instancia upstream de Nexus.
- MY_UPSTREAM_REPOSITORY es el nombre de tu repositorio upstream, que se usa en los ejemplos de Nexus.
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 definir la política de versiones como snapshot o release.
- Las fuentes de subida deben ser accesibles a través de Internet. Los repositorios remotos no admiten fuentes upstream de redes on-premise ni de nube privada virtual (VPC) sin una dirección IP pública.
Siguientes pasos
- Crea repositorios remotos.
- Para obtener más información sobre los repositorios de Artifact Registry, consulta el resumen de repositorios.