Mit Artifact Registry können Sie private Go-Module in Ihren Repositories speichern, versionieren und freigeben. Sie können neue Releases hochladen, Paketdetails prüfen, Abhängigkeiten in Ihren Code importieren und nicht verwendete Versionen löschen.
Hinweis
- Wenn das Ziel-Repository nicht vorhanden ist, erstellen Sie ein neues Repository. Wählen Sie „Go“ als Repository-Format aus.
- Prüfen Sie, ob Sie die erforderlichen Berechtigungen für das Repository haben.
- (Optional) Konfigurieren Sie die Standardeinstellungen für gcloud-Befehle.
- Installieren Sie Go 1.15 oder höher.
Installieren Sie das gcloud CLI-Add-on „package-go-module“:
gcloud components install package-go-module
Konfigurieren Sie Go für die Authentifizierung bei Artifact Registry.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Repository zuzuweisen, damit Sie die nötigen Berechtigungen zum Verwalten von Modulen haben:
-
Module ansehen:
Artifact Registry-Leser (
roles/artifactregistry.reader) -
Module herunterladen oder installieren:
Artifact Registry-Leser (
roles/artifactregistry.reader) -
Module einem Repository hinzufügen:
Artifact Registry Writer (
roles/artifactregistry.writer) -
Module löschen:
Repository-Administrator für Artifact Registry (
roles/artifactregistry.repoAdmin)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Modul hochladen
Repository-Modi:Standard
Führen Sie den folgenden Befehl aus, um ein Modul zu packen und in Ihr Repository hochzuladen:
gcloud artifacts go upload --project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--module-path=MODULE_PATH \
--version=VERSION \
--source=SOURCE_LOCATION
Ersetzen Sie Folgendes:
- Ersetzen Sie PROJECT durch Ihre Google Cloud Projekt-ID.
- REPOSITORY durch den Namen des Repositorys, in dem das Paket gespeichert ist.
- LOCATION mit dem regionalen oder multiregionalen Speicherort des Repositorys.
- MODULE_PATH durch den Modulpfad. Beispiel:
example.com/fooWeitere Informationen finden Sie in der Go-Module-Referenz. - VERSION mit der semantischen Version des Moduls im Format
vX.Y.Z, wobeiXdie Hauptversion,Ydie Nebenversion undZdie Patchversion ist. - SOURCE_LOCATION durch den Pfad zum Stammverzeichnis Ihres Go-Moduls. Wenn Sie das Flag
--sourceweglassen, wird standardmäßig das aktuelle Verzeichnis verwendet.
Das Modul wird in Artifact Registry hochgeladen.
Weitere Informationen zum Erstellen von Go-Modulen finden Sie in diesem Tutorial.
Neue Modulversion hochladen
Repository-Modi:Standard
Wenn die Standardwerte konfiguriert sind, können Sie mit dem folgenden Befehl eine neue Version Ihres Moduls in das Standardprojekt, das Standardrepository und den Standardspeicherort hochladen. Geben Sie dazu die neue Versionsnummer an:
gcloud artifacts go upload \
--module-path=MODULE_PATH \
--version=VERSION \
--source=SOURCE_LOCATION
Ersetzen Sie VERSION durch die Version Ihres aktualisierten Moduls. Wenn Sie beispielsweise die Version 0.1.1 eines Moduls mit dem Pfad example.com/foo hochladen möchten, führen Sie den folgenden Befehl aus:
gcloud artifacts go upload \
--module-path=example.com/foo \
--version=v0.1.1 \
--source=SOURCE_LOCATION
Wenn Sie ein Modul als Vorabversion kennzeichnen möchten, fügen Sie nach VERSION einen Bindestrich und dann die Vorabversions-IDs des Moduls hinzu:
gcloud artifacts go upload \
--module-path=MODULE_PATH \
--version=VERSION-PRE_RELEASE_IDENTIFIERS \
--source=SOURCE_LOCATION
Ersetzen Sie PRE_RELEASE_IDENTIFIERS durch durch Punkte getrennte alphanumerische ASCII-Zeichen und Bindestriche. Wenn Sie beispielsweise eine Vorabversion eines Moduls mit dem Pfad example.com/foo hochladen möchten, das durch alpha.x.12m.5 identifiziert wird, führen Sie den folgenden Befehl aus:
gcloud artifacts go upload \
--module-path=example.com/foo \
--version=v1.0.0-alpha.x.12m.5 \
--source=SOURCE_LOCATION
Neue Hauptversion hochladen
Repository-Modi:Standard
Hauptversionen sind nicht abwärtskompatibel mit früheren Versionen. Damit Nutzer keine funktionsgefährdende Änderung importieren, müssen Hauptversionen nach v1 andere Modulpfade als frühere Versionen haben. Ab v2 wird die Hauptversion am Ende des Modulpfads hinzugefügt.
Der Modulpfad für v2.0.0 von example.com/foo wäre beispielsweise example.com/foo/v2.
Die empfohlene Best Practice besteht darin, Hauptversionen nach v1 in separaten Verzeichnissen zu entwickeln, die nach dem Suffix der Hauptversion benannt sind.
So laden Sie eine neue Hauptversion 2.0.0 eines Moduls mit dem Pfad example.com/foo in das Standardprojekt, das Standardrepository und den Standardspeicherort hoch, wenn die Standardwerte konfiguriert sind:
gcloud artifacts go upload --module-path=example.com/foo/v2 --version=v2.0.0
Module auflisten
Repository-Modi:Standard, Remote, Virtuell
Führen Sie den folgenden Befehl aus, um ein hochgeladenes Go-Modul im Standardprojekt, ‑repository und ‑standort zu prüfen, wenn die Standardwerte konfiguriert sind:
gcloud artifacts packages list
Die Ausgabe sollte in etwa so aussehen:
Listing items under project my-project, location us-west1, repository my-repo. PACKAGE CREATE_TIME UPDATE_TIME example.com/foo 2022-06-03T20:43:39 2022-06-20T20:37:40
Details zur Modulversion ansehen
Repository-Modi:Standard, Remote, Virtuell
Führen Sie den folgenden Befehl aus, um die Versionen eines Moduls im Standardprojekt, ‑repository und ‑standort aufzurufen, wenn die Standardwerte konfiguriert sind:
gcloud artifacts versions list --package=MODULE_PATH
Die Ausgabe sollte in etwa so aussehen:
Listing items under project my-project, location us-west1, repository my-repo, package example.com/foo. VERSION DESCRIPTION CREATE_TIME UPDATE_TIME v0.1.0 2022-06-03T20:43:39 2022-06-03T20:43:39 v0.1.1 2022-06-20T20:37:40 2022-06-20T20:37:40
Modul als Abhängigkeit verwenden
Repository-Modi:Standard, Remote, Virtuell
Wenn Sie in Artifact Registry gespeicherte Module importieren möchten, müssen Sie Go anweisen, nach Abhängigkeiten in Artifact Registry zu suchen und die Prüfsummen-Datenbank zu umgehen. Folgen Sie der Anleitung unter Authentifizierung für Go einrichten, um die Authentifizierung und die Go-Umgebung einzurichten.
Wenn Sie kurzlebige Anmeldedaten für die Authentifizierung bei Artifact Registry verwenden, müssen Sie Ihr OAuth-Token mit dem folgenden Befehl aktualisieren:
GOPROXY=proxy.golang.org \ go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@latest refresh
Wenn Ihr Modul noch keine
go.mod-Datei hat, wechseln Sie in den Ordner Ihres Moduls und führen Siego mod initaus, um einego.mod-Datei für Ihr Paket zu erstellen.go mod init MODULE_PATH
Ersetzen Sie MODULE_PATH durch den Modulpfad für das in Artifact Registry gespeicherte Modul. Weitere Informationen finden Sie in der Go-Module-Referenz.
Wenn Sie die in Artifact Registry gespeicherte Version Ihres Moduls benötigen, bearbeiten Sie die Datei
go.modso, dass sie in etwa so aussieht:module example.com/bar go 1.19 require example.com/foo v0.1.0Ersetzen Sie Folgendes:
example.com/fooist der Modulpfad des erforderlichen Moduls.v0.1.0ist die in Artifact Registry gespeicherte Version.
Fügen Sie den Modulpfad wie gewohnt in den
import-Abschnitt Ihrermain.go-Datei ein.Wenn Sie beispielsweise ein Modul mit dem Pfad
example.com/fooimportieren möchten, das in Artifact Registry gespeichert ist, könnte Ihr Importabschnitt so aussehen:package main import ( foo "example.com/foo" ) func main() { ... }Führen Sie
go mod tidyaus, um Abhängigkeiten herunterzuladen:go mod tidy
Führen Sie Ihr Modul wie gewohnt aus:
go run .
Das in Artifact Registry gespeicherte Modul wird heruntergeladen und als Abhängigkeit verwendet.
Verpackte Go-Module löschen
Repository-Modi:Standard, Remote
Sie können ein Paket und alle seine Versionen oder eine bestimmte Version löschen.
- Das Löschen eines Pakets kann nicht rückgängig gemacht werden.
Before you delete a package or package version, verify that any you have communicated or addressed any important dependencies on it.
To delete a package:
Console
Open the Repositories page in the Google Cloud console.
In the repository list, click the appropriate repository.
The Packages page lists the packages in the repository.
Select the package that you want to delete.
Click DELETE.
In the confirmation dialog box, click DELETE.
gcloud
Run the following command:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Replace the following:
PACKAGEis the name of the package in the repository.REPOSITORYis the name of the repository. If you configured a default repository, then you can omit this flag to use the default.-
LOCATIONis the regional or multi-regional location of the repository. Use this flag to view repositories in a specific location. If you configured a default location, then you can omit this flag to use the default.
The --async flag causes the command to return immediately,
without waiting for the operation in progress to complete.
To delete versions of a package:
Console
Open the Repositories page in the Google Cloud console.
In the repository list, click the appropriate repository.
The Packages page lists the packages in the repository.
Click a package to view versions of that package.
Select versions that you want to delete.
Click DELETE.
In the confirmation dialog box, click DELETE.
gcloud
Run the following command:
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
Replace the following:
VERSIONis the name of the version to delete.PACKAGEis the name of the package in the repository.REPOSITORYis the name of the repository. If you configured a default repository, then you can omit this flag to use the default.-
LOCATIONis the regional or multi-regional location of the repository. Use this flag to view repositories in a specific location. If you configured a default location, then you can omit this flag to use the default.
The --async flag causes the command to return immediately,
without waiting for the operation in progress to complete.
Nächste Schritte
- Go-Kurzanleitung ausprobieren.
- Einzelne Dateien herunterladen, die einem Modul oder einer Version zugeordnet sind, ohne Go-Befehle zu verwenden.