Auf dieser Seite wird erläutert, wie gepackte Go-Module verwaltet werden, die in Artifact Registry.
Hinweise
- Wenn das Ziel-Repository nicht vorhanden ist, erstellen Sie ein neues Repository. Auswählen Go als Repository-Format verwenden.
- Prüfen Sie, ob Sie die erforderlichen Berechtigungen für das Repository haben.
- (Optional) Konfigurieren Sie die Standardeinstellungen für gcloud-Befehle.
- Installieren Los gehts 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
Um die Berechtigungen zu erhalten, die Sie zum Verwalten von Modulen benötigen, bitten Sie Ihren Administrator, Ihnen folgende IAM-Rollen für das Repository:
-
Module ansehen:
Artifact Registry-Leser (
roles/artifactregistry.reader
) -
Module herunterladen oder installieren:
Artifact Registry-Leser (
roles/artifactregistry.reader
) -
Fügen Sie einem Repository Module hinzu:
Artifact Registry-Autor (
roles/artifactregistry.writer
) -
Module löschen:
Artifact Registry-Repository-Administrator (
roles/artifactregistry.repoAdmin
)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff 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 verpacken 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:
- PROJECT durch ihre Google Cloud-Projekt-ID.
- REPOSITORY durch den Namen des Repositorys, in dem der Paket gespeichert.
- LOCATION durch das regionale oder multiregionale Element Ort des Repositorys.
- MODULE_PATH durch den Modulpfad. Beispiel:
example.com/foo
Weitere Informationen finden Sie in der Referenz zu Go-Modulen . - VERSION mit dem
semantische Version
des Moduls im Format
vX.Y.Z
, wobeiX
die Hauptversion undY
die Nebenversion undZ
die Patchversion. - SOURCE_LOCATION durch den Pfad zum Stammverzeichnis Ihrer Go
-Modul. Wenn Sie das Flag
--source
weglassen, 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 Anleitung
Neue Modulversion hochladen
Repository-Modi: Standard
Zum Hochladen einer neuen Version Ihres Moduls in das Standardprojekt, Repository und Standort, wenn die Standardwerte konfiguriert sind, Führen Sie den folgenden Befehl mit der neuen Versionsnummer aus:
gcloud artifacts go upload \ --module-path=MODULE_PATH \ --version=VERSION \ --source=SOURCE_LOCATION
Ersetzen Sie VERSION durch die Version des aktualisierten Moduls. Beispiel:
Um die Version 0.1.1
eines Moduls mit dem Pfad example.com/foo
hochzuladen, führen Sie den
folgenden Befehl:
gcloud artifacts go upload \ --module-path=example.com/foo \ --version=v0.1.1 \ --source=SOURCE_LOCATION
Um ein Modul als Vorabveröffentlichung zu kennzeichnen, fügen Sie nach dem Tag VERSION und hängen Sie die IDs der Vorabveröffentlichungen Ihres Moduls an:
gcloud artifacts go upload \ --module-path=MODULE_PATH \ --version=VERSION-PRE_RELEASE_IDENTIFIERS \ --source=SOURCE_LOCATION
PRE_RELEASE_IDENTIFIERS durch punktgetrenntes alphanumerisches ASCII-Zeichen ersetzen
und Bindestriche enthalten. Um beispielsweise eine Vorabveröffentlichung eines Moduls mit
das durch alpha.x.12m.5
identifizierte example.com/foo
-Pfadmodul, führen Sie den
folgenden Befehl:
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. Um dies zu verhindern,
Nutzer daran gehindert werden, eine funktionsgefährdende Änderung zu importieren, müssen Hauptversionen nach dem v1
unterschiedliche Modulpfade als in früheren Versionen. Beginnend mit v2
, den wichtigsten
version wird am Ende des Modulpfads hinzugefügt.
Der Modulpfad für v2.0.0
von example.com/foo
wäre beispielsweise
example.com/foo/v2
Es wird empfohlen, Hauptversionen nach dem v1
in
separate Verzeichnisse, die nach ihrem Hauptversionssuffix benannt sind.
So laden Sie die neue Hauptversion 2.0.0
eines Moduls mit dem Pfad hoch:
example.com/foo
auf das Standardprojekt, das Repository und den Speicherort, wenn der
Standardwerte konfiguriert:
gcloud artifacts go upload --module-path=example.com/foo/v2 --version=v2.0.0
Module auflisten
Repository-Modi: Standard
Führen Sie den folgenden Befehl aus, um ein hochgeladenes Go-Modul in der Standardeinstellung zu prüfen Projekt, Repository und Standort, Standardwerte konfiguriert:
gcloud artifacts packages list
Die Ausgabe sieht in etwa so aus:
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
Führen Sie den folgenden Befehl aus, um die Versionen eines Moduls in der Standardeinstellung anzusehen Projekt, Repository und Standort, Standardwerte konfiguriert:
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
Um in Artifact Registry gespeicherte Module zu importieren, müssen Sie Go anweisen, Abhängigkeiten von Artifact Registry suchen und die Prüfsumme umgehen Datenbank. Folgen Sie der Anleitung, um die Authentifizierung und den Go unter Authentifizierung für Go einrichten.
Wenn Sie kurzlebige Anmeldedaten für die Authentifizierung verwenden an Artifact Registry senden, müssen Sie Ihr OAuth-Token aktualisieren, indem Sie folgenden Befehl:
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 zu folgendem Verzeichnis: des Moduls und führen Siego mod init
aus, um einego.mod
-Datei für für Ihr Paket.go mod init MODULE_PATH
Ersetzen Sie MODULE_PATH durch den Modulpfad für das Modul, das in Artifact Registry. Weitere Informationen finden Sie in der Referenz zu Go-Modulen .
Wenn Sie die in Artifact Registry gespeicherte Version Ihres Moduls erzwingen möchten, bearbeiten Sie Ihre
go.mod
-Datei sollte in etwa so aussehen:module example.com/bar go 1.19 require example.com/foo v0.1.0
Ersetzen Sie Folgendes:
example.com/foo
ist der Modulpfad des erforderlichen Modulsv0.1.0
ist die in Artifact Registry gespeicherte Version
Fügen Sie den Modulpfad wie gewohnt im Abschnitt
import
Ihrermain.go
ein. -Datei.Für den Import eines Moduls mit dem Pfad
example.com/foo
, der in Artifact Registry erstellt haben, könnte Ihr Importabschnitt so aussehen:package main import ( foo "example.com/foo" ) func main() { ... }
Führen Sie
go mod tidy
aus, um Abhängigkeiten herunterzuladen:go mod tidy
Führen Sie das Modul wie gewohnt aus:
go run .
Das in Artifact Registry gespeicherte Modul wird heruntergeladen und als Abhängigkeit.
Gepackte Go-Module löschen
Repository-Modi: Standard
Sie können ein Paket und alle zugehörigen Versionen oder eine bestimmte Version löschen.
- Wenn Sie ein Paket löschen, kann dieser Vorgang nicht mehr rückgängig gemacht werden.
Bevor Sie ein Paket oder eine Paketversion löschen, prüfen Sie, ob Sie alle wichtigen Abhängigkeiten davon kommuniziert oder behoben haben.
So löschen Sie ein Paket:
Console
Öffnen Sie in der Cloud Console die Seite Repositories.
Klicken Sie in der Liste der Repositories auf das entsprechende Repository.
Auf der Seite Pakete sind die Pakete des Repositorys aufgeführt.
Wählen Sie das Paket aus, das Sie löschen möchten.
Klicken Sie auf Löschen.
Klicken Sie im Bestätigungsdialogfeld auf Löschen.
gcloud
Führen Sie folgenden Befehl aus:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Dabei gilt:
- PACKAGE ist der Name des Pakets im Repository.
- REPOSITORY ist der Name des Repositorys. Wenn Sie ein Standard-Repository konfiguriert haben, wird bei Weglassen dieses Flags dieses Standard-Repository verwendet.
- LOCATION ist ein regional oder multiregional Standort Verwenden Sie dieses Flag, um Repositories an einem bestimmten Speicherort aufzurufen. Wenn Sie default-Speicherort konfiguriert haben, können Sie dieses Flag weglassen, die Standardeinstellung.
--async
wird sofort zurückgegeben, ohne auf den Abschluss des Vorgangs zu warten.
So löschen Sie Versionen eines Pakets:
Console
Öffnen Sie in der Cloud Console die Seite Repositories.
Klicken Sie in der Liste der Repositories auf das entsprechende Repository.
Auf der Seite Pakete sind die Pakete des Repositorys aufgeführt.
Klicken Sie auf das Paket, um die Versionen des Pakets aufzurufen.
Wählen Sie die Versionen aus, die Sie löschen möchten.
Klicken Sie auf Löschen.
Klicken Sie im Bestätigungsdialogfeld auf Löschen.
gcloud
Führen Sie folgenden Befehl aus:
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
Dabei gilt:
- PACKAGE ist der Name des Pakets im Repository.
- REPOSITORY ist der Name des Repositorys. Wenn Sie ein Standard-Repository konfiguriert haben, wird bei Weglassen dieses Flags dieses Standard-Repository verwendet.
- LOCATION ist ein regional oder multiregional Standort Verwenden Sie dieses Flag, um Repositories an einem bestimmten Speicherort aufzurufen. Wenn Sie default-Speicherort konfiguriert haben, können Sie dieses Flag weglassen, die Standardeinstellung.
--async
wird sofort zurückgegeben, ohne auf den Abschluss des Vorgangs zu warten.
Nächste Schritte
- Probieren Sie den Go-Schnellstart aus.
- Einzelne Dateien herunterladen die mit einem Modul oder einer Version verknüpft sind, ohne Go-Befehle zu verwenden.