Dieses Dokument bietet einen Überblick über Remote-Repositories. Eine Anleitung zum Erstellen eines Remote-Repositorys finden Sie unter Remote-Repositories erstellen.
Für Remote-Repositories gelten die Kontingente und Limits von Artifact Registry.
Funktionsweise von Remote-Repositories
In Remote-Repositories werden Artefakte aus den folgenden Upstream-Quellen gespeichert:
- Standard-Artifact Registry-Repositories.
- Externe Quellen wie Docker Hub, Maven Central, der Python Package Index (PyPI), Debian oder CentOS.
Ein Remote-Repository fungiert als Proxy für die Upstream-Quelle, sodass Sie mehr Kontrolle über Ihre Abhängigkeiten haben. Wenn Sie zum ersten Mal eine Version eines Pakets anfordern, lädt Artifact Registry das Paket herunter und speichert es im Remote-Repository. Wenn Sie das nächste Mal dieselbe Paketversion anfordern, wird die im Cache gespeicherte Kopie von Artifact Registry bereitgestellt.
Wenn Sie ein Artefakt aus einer Upstream-Quelle anfordern, das nicht vorhanden ist oder nicht die von Ihnen angegebene Version enthält, schlägt die Anfrage fehl.
Die anderen Repository-Modi sind:
- Standard: Der Standard-Repository-Modus. Sie laden Artefakte wie private Pakete direkt in Standard-Repositories hoch oder veröffentlichen sie dort. Sie können zwar direkt aus einzelnen Standard-Repositories herunterladen, der Zugriff auf Repository-Gruppen über ein virtuelles Repository vereinfacht jedoch die Toolkonfiguration.
- Virtuell: Ein Repository, das als einzelner Zugriffspunkt für mehrere Upstream-Repositories dient, einschließlich Remote- und Standard-Repositories.
Upstream-Authentifizierung
Artifact Registry-Remote-Repositories unterstützen die Basisauthentifizierung für Upstream-Quellen für unterstützte Formate. Weitere Informationen zur Authentifizierung bei Upstream-Quellen für Remote-Repositories finden Sie unter Authentifizierung für Upstreams von Remote-Repositories konfigurieren.
Anwendungsfälle und Vorteile
- Schnellerer und zuverlässigerer Zugriff auf Artefakte
- Durch das Speichern von gecachten Kopien Ihrer öffentlichen Abhängigkeiten in Artifact Registry wird die Latenz verringert, wenn andere Google Cloud Dienste Images abrufen. Zwischengespeicherte Artefakte sind auch dann noch verfügbar, wenn das externe öffentliche Repository aufgrund eines Ausfalls oder eines anderen Problems offline ist.
- Sicherere Auflösung von Abhängigkeiten
Verwenden Sie Remote-Repositories zusammen mit virtuellen Repositories, um Risiken im Zusammenhang mit öffentlichen Abhängigkeiten zu minimieren. Bei einigen Tools lässt sich die Suchreihenfolge nicht steuern, wenn im Client eine Mischung aus privaten und öffentlichen Repositorys konfiguriert ist. Diese Art der Konfiguration ist anfällig für einen Angriff durch Verwirrung von Abhängigkeiten. Dabei lädt jemand eine neue Version eines Pakets mit schädlichem Code in ein öffentliches Repository hoch, um Clients dazu zu bringen, die schädliche Version auszuwählen.
Anstatt Clients direkt für die Suche in mehreren Repositories zu konfigurieren, können Sie virtuelle Repositories konfigurieren, um Ihre privaten Repositories gegenüber Remote-Repositories zu priorisieren.
- Kosten für die Datenübertragung senken
Verwenden Sie Remote-Repositories, um Artefakte in derselben Region oder Multiregion wie Ihre Runtimes zu cachen, um die Kosten für die Datenübertragung zu senken.
Wenn sich Artifact Registry in einem VPC Service Controls-Dienstperimeter befindet, wird der Zugriff auf Upstream-Quellen außerhalb des Perimeters standardmäßig verweigert. Wenn Sie zulassen möchten, dass Remote-Repositories an einem bestimmten Standort außerhalb des Perimeters auf ihre konfigurierten externen Quellen zugreifen, folgen Sie der Anleitung zur Konfiguration von VPC Service Controls.
Weitere Best Practices für das Abhängigkeitsmanagement finden Sie unter Abhängigkeitsmanagement.
Aktualisierungen von Paketindexen und ‑metadaten
Veränderliche Dateien wie Paketindexe und Metadaten werden aus der Upstream-Quelle aktualisiert, wenn sie älter als das Standardalter sind. Standardeinstellungen für bestimmte Dateitypen sind in der folgenden Tabelle aufgeführt:
Format | Dateityp | Standardmäßiges Alter von Updates |
---|---|---|
Maven | maven-metadata.xml |
5 Minuten |
archetype-catalog.xml |
1 Stunde | |
Npm | Manifestdateien | 5 Minuten |
Python | Dateien indexieren | 1 Stunde |
Docker | Cache für Tags auflisten/abrufen | 1 Stunde |
Apt/Yum (Vorabversion) | Dateien indexieren | 2 Minuten |
Paketdateien | 72 Stunden |
Unterstützte Formate
In den folgenden Abschnitten finden Sie die Formate, die für voreingestellte und benutzerdefinierte Remote-Repositories verfügbar sind.
Upstream-URLs voreinstellen
Eine Reihe gängiger Upstream-Repository-URLs ist als voreingestellte Auswahl in den folgenden Formaten verfügbar.
Format | Pakettypen | Upstream-URL | Name der Upstream-Voreinstellung |
---|---|---|---|
Docker | Öffentlich oder privat | https://registry-1.docker.io |
DOCKER-HUB |
Go | Öffentlich | https://proxy.golang.org |
https://proxy.golang.org |
Maven | Öffentlich oder privat | https://repo.maven.apache.org/maven2 |
MAVEN-CENTRAL |
npm | Öffentlich oder privat | https://registry.npmjs.org |
NPMJS |
Python | Öffentlich | https://pypi.io |
PYPI |
Betriebssystempakete (Vorabversion) | Öffentlich | Siehe Unterstützte Upstreams für Betriebssystempakete | Siehe Unterstützte Upstreams für Betriebssystempakete |
Voreingestellte Upstreams für Betriebssystempakete
Sie können ein Remote-Repository für Betriebssystempakete erstellen, indem Sie eine der gängigen voreingestellten Upstream-Repository-Basis-URLs auswählen und den Rest der URL an das jeweilige Repository anpassen. Die folgenden Repository-Basen werden unterstützt:
Apt
Repository | URL-Präfix | Repository-Basisname |
---|---|---|
Archiviertes Debian | https://snapshot.debian.org |
DEBIAN_SNAPSHOT |
Debian | http://deb.debian.org |
DEBIAN |
Ubuntu LTS oder Pro | http://archive.ubuntu.com
|
UBUNTU
|
Yum
Repository | URL-Präfix | Repository-Basisname |
---|---|---|
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
|
|
Max | http://dl.rockylinux.org
|
ROCKY
|
Fedora Extra Packages for Enterprise Linux (EPEL) | https://dl.fedoraproject.org/pub/epel
|
EPEL
|
Artifact Registry-Repository-Upstreams
Sie können Remote-Repositories mit Artifact Registry-Standardformat-Repositories als Upstreams für die folgenden Formate erstellen:
- Docker
- npm
- Maven
- Python
Benutzerdefinierte URLs
Sie können die URL für Ihr Remote-Repository direkt eingeben, ohne eine der voreingestellten Upstream-Quellen für die folgenden Formate zu verwenden.
- Docker
- npm
- Maven
- Python
In der folgenden Tabelle sind einige gängige Upstream-URIs aufgeführt.
Format | Upstream-URI | Registrierungsname |
---|---|---|
Docker | https://ghcr.io |
GitHub Container Registry |
Docker | https://registry-1.docker.io |
Docker Hub |
Docker | https://public.ecr.aws |
Öffentliche AWS ECR-Galerie |
Docker | https://registry.k8s.io |
Kubernetes Container Registry |
Docker | https://MY_NEXUS_IP |
Nexus |
npm | https://registry.npmjs.org |
npm |
npm | https://npm.pkg.github.com |
GitHub-Npm-Registry |
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 |
Python Package Index (PyPI) |
Python | https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY |
Nexus |
Wo
- MY_NEXUS_IP ist die IP-Adresse und der Port Ihrer Nexus-Upstream-Instanz.
- MY_UPSTREAM_REPOSITORY ist der Name Ihres Upstream-Repositorys, der in den Nexus-Beispielen verwendet wird.
Beschränkungen
Zusätzlich zu den Artifact Registry-Kontingenten und -Einschränkungen gelten für Remote-Repositories die folgenden Einschränkungen:
- In Maven-Remote-Repositories ist es nicht zulässig, die Versionsrichtlinie auf „snapshot“ oder „release“ festzulegen.
- Upstream-Quellen müssen über das Internet zugänglich sein. Für Remote-Repositories werden keine Upstream-Quellen in lokalen Netzwerken oder VPC-Netzwerken (Virtual Private Cloud) ohne öffentliche IP-Adresse unterstützt.
Nächste Schritte
- Remote-Repositories erstellen.
- Weitere Informationen zu Artifact Registry-Repositories finden Sie in der Repository-Übersicht.