Go-Module verwalten

Auf dieser Seite wird erläutert, wie Sie verpackte Go-Module verwalten, die in Artifact Registry gespeichert sind.

Hinweis

  1. Wenn das Ziel-Repository nicht vorhanden ist, erstellen Sie ein neues Repository. Wählen Sie „Go“ als Repository-Format aus.
  2. Prüfen Sie, ob Sie die erforderlichen Berechtigungen für das Repository haben.
  3. (Optional) Konfigurieren Sie die Standardeinstellungen für gcloud-Befehle.
  4. Installieren Sie Go 1.15 oder höher.
  5. Installieren Sie das gcloud CLI-Add-on „package-go-module“:

    gcloud components install package-go-module
  6. Konfigurieren Sie „Zu“ für die Authentifizierung mit Artifact Registry.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Repository zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Modulen benötigen:

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 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 das Paket gespeichert ist.
  • LOCATION durch den regionalen oder multiregionalen Speicherort des Repositorys.
  • MODULE_PATH durch den Modulpfad. Beispiel: example.com/foo Weitere Informationen finden Sie in der Referenz zu Go-Modulen.
  • VERSION mit der semantischen Version des Moduls im Format vX.Y.Z, wobei X die Hauptversion, Y die Nebenversion und Z die Patchversion ist.
  • SOURCE_LOCATION durch den Pfad zum Stammverzeichnis Ihres Go-Moduls. Wenn Sie das Flag --source weglassen, ist das aktuelle Verzeichnis der Standardwert.

Das Modul wird in Artifact Registry hochgeladen.

Weitere Informationen zum Erstellen von Go-Modulen finden Sie in dieser Anleitung.

Neue Modulversion hochladen

Repository-Modi:standard

Wenn die Standardwerte konfiguriert sind, können Sie eine neue Version Ihres Moduls in das Standardprojekt, das Standard-Repository und den Standardspeicherort hochladen. Führen Sie dazu 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 Ihres aktualisierten Moduls. Wenn Sie beispielsweise 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 der VERSION einen Bindestrich ein und hängen Sie die Vorabversions-IDs des Moduls an:

  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 ASCII-alphanumerische Zeichen und Bindestriche. Wenn Sie beispielsweise einen Pre-Release eines Moduls mit dem Pfad example.com/foo, das durch alpha.x.12m.5 gekennzeichnet ist, hochladen möchten, 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 mit früheren Versionen abwärtskompatibel. Damit Nutzer keine funktionsgefährdenden Änderungen importieren können, müssen Hauptversionen nach v1 unterschiedliche Modulpfade als die Vorgängerversionen 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.

Es wird empfohlen, 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 Standard-Repository 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

Führen Sie den folgenden Befehl aus, um ein hochgeladenes Go-Modul im Standardprojekt, im Standard-Repository und am Standardspeicherort 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

Führen Sie den folgenden Befehl aus, um die Versionen eines Moduls im Standardprojekt, im Standard-Repository und am Standardspeicherort 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

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üfsummendatenbank zu umgehen. Folgen Sie der Anleitung unter Authentifizierung für Go einrichten, um die Authentifizierung und die Go-Umgebung einzurichten.

  1. Wenn Sie kurzlebige Anmeldedaten für die Authentifizierung in Artifact Registry verwenden, müssen Sie Ihr OAuth-Token aktualisieren. Führen Sie dazu den folgenden Befehl aus:

      GOPROXY=proxy.golang.org \
      go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@latest refresh
    
  2. Wenn Ihr Modul noch keine go.mod-Datei hat, wechseln Sie das Verzeichnis in den Ordner Ihres Moduls und führen Sie go mod init aus, um eine go.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 Referenz zu Go-Modulen.

  3. Wenn Sie die in Artifact Registry gespeicherte Version Ihres Moduls anfordern möchten, bearbeiten Sie die Datei go.mod so, dass sie folgendermaßen aussieht:

    
    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 Moduls.
    • v0.1.0 ist die in Artifact Registry gespeicherte Version.
  4. Geben Sie den Modulpfad wie gewohnt im Abschnitt import der Datei main.go an.

    Wenn Sie beispielsweise ein Modul mit dem Pfad example.com/foo importieren möchten, der in Artifact Registry gespeichert ist, könnte der Importabschnitt so aussehen:

      
      package main
    
      import (
        foo "example.com/foo"
      )
    
      func main() {
    
        ...
    
      }
    
      
    
  5. Führen Sie go mod tidy aus, um Abhängigkeiten herunterzuladen:

      go mod tidy
    
  6. Führen Sie das Modul wie gewohnt aus:

      go run .
    

    Das in Artifact Registry gespeicherte Modul wird heruntergeladen und als Abhängigkeit verwendet.

Gepackte Go-Module löschen

Repository-Modi:standard

Sie können ein Paket und alle zugehörigen Versionen oder eine bestimmte Version löschen.

  • Das Löschen eines Pakets kann nicht 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

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Klicken Sie in der Liste der Repositories auf das entsprechende Repository.

    Auf der Seite Pakete sind die Pakete des Repositorys aufgeführt.

  3. Wählen Sie das Paket aus, das Sie löschen möchten.

  4. Klicken Sie auf Löschen.

  5. Klicken Sie im Bestätigungsdialogfeld auf Löschen.

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud artifacts packages delete PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] [--async]

Ersetzen Sie Folgendes:

  • 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 der regionale oder multiregionale Speicherort des Repositorys. Mit diesem Flag können Sie Repositories an einem bestimmten Speicherort aufrufen. Wenn Sie einen Standard-Speicherort konfiguriert haben, wird bei Weglassen dieses Flags dieser Standardwert verwendet.

Durch das Flag --async wird der Befehl sofort zurückgegeben, ohne auf den Abschluss des Vorgangs zu warten.

So löschen Sie Versionen eines Pakets:

Console

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Klicken Sie in der Liste der Repositories auf das entsprechende Repository.

    Auf der Seite Pakete sind die Pakete des Repositorys aufgeführt.

  3. Klicken Sie auf das Paket, um die Versionen des Pakets aufzurufen.

  4. Wählen Sie die Versionen aus, die Sie löschen möchten.

  5. Klicken Sie auf Löschen.

  6. Klicken Sie im Bestätigungsdialogfeld auf Löschen.

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud artifacts versions delete VERSION \
    --package=PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] \
    [--async]

Ersetzen Sie Folgendes:

  • VERSION ist der Name der Version, die gelöscht werden soll.
  • 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 der regionale oder multiregionale Speicherort des Repositorys. Mit diesem Flag können Sie Repositories an einem bestimmten Speicherort aufrufen. Wenn Sie einen Standard-Speicherort konfiguriert haben, wird bei Weglassen dieses Flags dieser Standardwert verwendet.

Durch das Flag --async wird der Befehl sofort zurückgegeben, ohne auf den Abschluss des Vorgangs zu warten.

Nächste Schritte