En este documento, se proporciona una descripción general de los repositorios remotos. Para obtener instrucciones sobre cómo 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 predeterminadas, 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 proxy de 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 descarga y almacena en caché el paquete en el repositorio remoto. La próxima vez que la misma versión del paquete, Artifact Registry entrega 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. 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.
- Virtual: Un repositorio que actúa como un acceso único punto de acceso para varios repositorios ascendentes, incluidas apps remotas y estándar, de Cloud Storage.
Autenticación upstream
Los repositorios remotos de Artifact Registry admiten autenticación básica para fuentes predeterminadas y definidas por el usuario para formatos compatibles. Para obtener más información sobre cómo autenticarse en las fuentes upstream del repositorio remoto, consulta Configura la autenticación en las fuentes upstream 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 y controlar el orden de búsqueda cuando se combina configurados en el cliente. Este tipo de configuración es vulnerable a un confusión de dependencias, en el que alguien sube una versión nueva de un un paquete con código incorrecto a un repositorio público para engañar a los clientes y lograr que elijan la mala versión.
En lugar de configurar clientes directamente para que busquen en varios repositorios, puedes configurar repositorios virtuales para priorizar tus repositorios privados sobre los repositorios remotos.
Si Artifact Registry se encuentra en un perímetro de servicio de Controles del servicio de VPC, Artifact Registry deniega el acceso a fuentes upstream fuera del perímetro de forma predeterminada. Para permitir que los repositorios remotos en 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 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 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 | Tipo de archivo | 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 paquetes | 72 horas |
Formatos admitidos
Consulta las siguientes secciones para conocer los formatos disponibles para los repositorios remotos predefinidos y definidos por el usuario.
Flujos ascendentes predeterminados
Puedes crear repositorios remotos para los siguientes formatos de repositorios: fuentes upstream predeterminadas correspondientes:
Formato | tipos de paquetes | URL upstream | Nombre del parámetro de configuración 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 del SO (versión preliminar) | Pública | Consulta Paquetes de SO compatibles con versiones ascendentes | Consulta Paquetes de SO compatibles con versiones ascendentes |
Flujos ascendentes predeterminados de paquetes de SO
Para crear un repositorio remoto de paquetes del SO, elige una base de repositorio y personaliza el resto de la URL para el repositorio específico. Se admiten las siguientes bases de repositorio:
Dpto.
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 | Base del repositorio Nombre |
---|---|---|
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 de Fedora para Enterprise Linux (EPEL) | https://dl.fedoraproject.org/pub/epel | EPEL |
Flujos ascendentes definidos por el usuario
Puedes crear repositorios remotos para fuentes upstream definidas por el usuario en los siguientes formatos:
- Docker
- npm
- Maven
- Python
En la siguiente tabla no exhaustiva, se enumeran algunos URIs upstream 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 | JFrog Artifactory |
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 | JFrog Artifactory |
Python | https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY | Nexus |
Dónde
- MY_ARTIFACTORY_INSTANCE es el nombre de tu instancia upstream de Jfrog Artifactory.
- MY_NEXUS_IP es la dirección IP y el puerto de tu instancia de Nexus upstream.
- MY_UPSTREAM_REPOSITORY es el nombre de tu repositorio upstream. utilizados en los ejemplos de Nexus y Artifactory.
Limitaciones
Además de las cuotas y limitaciones de Artifact Registry, Los repositorios tienen las siguientes limitaciones:
- Los repositorios remotos de Maven no permiten establecer la política de versión en instantánea o lanzamiento.
- Las fuentes ascendentes deben ser accesibles a través de Internet. Los repositorios remotos no admitir fuentes ascendentes de redes locales o de nube privada virtual (VPC) sin una dirección IP pública.
¿Qué sigue?
- Crea repositorios remotos.
- Para obtener más información sobre los repositorios de Artifact Registry, lee la descripción general de los repositorios.