Cette page explique comment gérer les modules Go empaquetés stockés dans Artifact Registry.
Avant de commencer
- Si le dépôt cible n'existe pas, créez un dépôt. Choisissez Go comme format de dépôt.
- Vérifiez que vous disposez des autorisations requises pour le dépôt.
- (Facultatif) Configurez des valeurs par défaut pour les commandes gcloud.
- Installer OK 1.15 ou version ultérieure.
Installez le module complémentaire de la gcloud CLI package-go-module :
gcloud components install package-go-module
Configurez Go pour vous authentifier avec Artifact Registry.
Rôles requis
Pour obtenir les autorisations nécessaires pour gérer les modules, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le dépôt :
-
Modules de vue :
Lecteur Artifact Registry (
roles/artifactregistry.reader
) -
Téléchargez ou installez des modules:
Lecteur Artifact Registry (
roles/artifactregistry.reader
) -
Ajoutez des modules à un dépôt:
Rédacteur Artifact Registry (
roles/artifactregistry.writer
) -
Supprimez des modules:
Administrateur de dépôt Artifact Registry (
roles/artifactregistry.repoAdmin
)
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Importer un module
Modes de dépôt : standard
Pour empaqueter et importer un module dans votre dépôt, exécutez la commande suivante:
gcloud artifacts go upload --project=PROJECT \ --repository=REPOSITORY \ --location=LOCATION \ --module-path=MODULE_PATH \ --version=VERSION \ --source=SOURCE_LOCATION
Remplacez les éléments suivants :
- PROJECT par l'ID de votre projet Google Cloud.
- REPOSITORY par le nom du dépôt dans lequel package est stocké.
- LOCATION avec l'emplacement régional ou multirégional lieu du dépôt.
- MODULE_PATH par le chemin d'accès au module. Par exemple :
example.com/foo
Pour en savoir plus, consultez la documentation de référence sur les modules Go. - VERSION avec la version sémantique du module au format
vX.Y.Z
, oùX
est la version majeure,Y
la version mineure etZ
la version corrective. - SOURCE_LOCATION par le chemin d'accès au répertoire racine de votre environnement Go.
de ce module. Si vous omettez l'option
--source
, le répertoire actuel est utilisé par défaut.
Le module est importé dans Artifact Registry.
Pour en savoir plus sur la création de modules Go, consultez ce tutoriel.
Importer une nouvelle version du module
Modes de dépôt:standard
Pour importer une nouvelle version de votre module dans le projet, le dépôt et l'emplacement par défaut lorsque les valeurs par défaut sont configurées, exécutez la commande suivante avec le nouveau numéro de version :
gcloud artifacts go upload \ --module-path=MODULE_PATH \ --version=VERSION \ --source=SOURCE_LOCATION
Remplacez VERSION par la version de votre module mis à jour. Par exemple :
pour importer la version 0.1.1
d'un module dont le chemin d'accès est example.com/foo
, exécutez la commande
la commande suivante:
gcloud artifacts go upload \ --module-path=example.com/foo \ --version=v0.1.1 \ --source=SOURCE_LOCATION
Pour marquer un module comme version préliminaire, ajoutez un tiret après le VERSION et ajoutez les identifiants de la version préliminaire de votre module:
gcloud artifacts go upload \ --module-path=MODULE_PATH \ --version=VERSION-PRE_RELEASE_IDENTIFIERS \ --source=SOURCE_LOCATION
Remplacez PRE_RELEASE_IDENTIFIERS par des caractères alphanumériques ASCII et des traits d'union séparés par des points. Par exemple, pour télécharger la version préliminaire d'un module avec
au module de chemin d'accès example.com/foo
identifié par alpha.x.12m.5
, exécutez la commande
la commande suivante:
gcloud artifacts go upload \ --module-path=example.com/foo \ --version=v1.0.0-alpha.x.12m.5 \ --source=SOURCE_LOCATION
Importer une nouvelle version majeure
Modes de dépôt : standard
Les versions majeures ne sont pas rétrocompatibles avec les versions précédentes. Pour éviter
utilisateurs d'importer une modification destructive, les versions majeures après v1
doivent avoir
différents chemins d'accès aux modules que les versions précédentes. À partir de v2
, le principal
est ajoutée à la fin du chemin d'accès au module.
Par exemple, le chemin d'accès au module pour v2.0.0
de example.com/foo
est example.com/foo/v2
.
Il est recommandé de développer les versions majeures après v1
dans des répertoires distincts nommés d'après leur suffixe de version majeure.
Pour importer une nouvelle version majeure 2.0.0
d'un module avec le chemin d'accès
example.com/foo
au projet, au dépôt et à l'emplacement par défaut lorsque
valeurs par défaut configurées:
gcloud artifacts go upload --module-path=example.com/foo/v2 --version=v2.0.0
Répertorier les modules
Modes de dépôt:standard
Exécutez la commande suivante pour inspecter un module Go importé dans le projet, le dépôt et l'emplacement par défaut lorsque les valeurs par défaut sont configurées :
gcloud artifacts packages list
Le résultat ressemblera à ceci :
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
Afficher les détails de la version du module
Modes de dépôt : standard
Exécutez la commande suivante pour afficher les versions d'un module dans le projet, le dépôt et l'emplacement par défaut lorsque les valeurs par défaut sont configurées :
gcloud artifacts versions list --package=MODULE_PATH
Le résultat ressemblera à ceci :
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
Utiliser un module en tant que dépendance
Modes de dépôt:standard
Pour importer des modules stockés dans Artifact Registry, vous devez demander à Go de rechercher des dépendances dans Artifact Registry et de contourner la base de données de somme de contrôle. Suivez les instructions pour configurer l'authentification et l'API Go consultez la section Configurer l'authentification pour Go.
Si vous utilisez des identifiants éphémères pour l'authentification à Artifact Registry, vous devez actualiser votre jeton OAuth en exécutant la commande suivante:
GOPROXY=proxy.golang.org \ go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@latest refresh
Si votre module ne dispose pas encore d'un fichier
go.mod
, accédez au répertoire de votre module et exécutezgo mod init
pour créer un fichiergo.mod
pour votre package.go mod init MODULE_PATH
Remplacez MODULE_PATH par le chemin d'accès au module stocké dans Artifact Registry. Consultez le Documentation de référence sur les modules Go pour en savoir plus.
Pour exiger la version de votre module stockée dans Artifact Registry, modifiez votre fichier
go.mod
pour qu'il ressemble à ce qui suit :module example.com/bar go 1.19 require example.com/foo v0.1.0
Remplacez les éléments suivants :
example.com/foo
est le chemin d'accès du module requis.v0.1.0
est la version stockée dans Artifact Registry
Incluez le chemin d'accès du module comme d'habitude dans la section
import
de votre fichiermain.go
.Par exemple, pour importer un module dont le chemin d'accès
example.com/foo
est stocké dans Artifact Registry, la section "Importation" doit se présenter comme suit:package main import ( foo "example.com/foo" ) func main() { ... }
Exécutez
go mod tidy
pour télécharger les dépendances:go mod tidy
Exécutez votre module normalement:
go run .
Le module stocké dans Artifact Registry est téléchargé et utilisé comme dépendance.
Supprimer les modules Go empaquetés
Modes de dépôt : standard
Vous pouvez supprimer un package et toutes ses versions, ou supprimer une version spécifique.
- Une fois qu'un package a été supprimé, vous ne pouvez pas annuler l'action.
Avant de supprimer un package ou une version de package, vérifiez que vous avez communiqué ou résolu toute dépendance importante associée.
Pour supprimer un package, procédez comme suit :
Console
Ouvrez la page Dépôts de la console Google Cloud.
Dans la liste des dépôts, cliquez sur le dépôt approprié.
La page Packages répertorie les packages du dépôt.
Sélectionnez le package que vous souhaitez supprimer.
Cliquez sur SUPPRIMER.
Dans la boîte de dialogue de confirmation, cliquez sur SUPPRIMER.
gcloud
Exécutez la commande suivante :
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Où
- PACKAGE est le nom du package dans le dépôt.
- REPOSITORY est le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez omettre cet indicateur pour utiliser le dépôt par défaut.
- LOCATION a le statut régional ou multirégional position. Utilisez cette option pour afficher les dépôts dans un emplacement spécifique. Si vous configuré un emplacement default, vous pouvez omettre cette option pour utiliser par défaut.
--async
renvoie immédiatement une réponse, sans attendre la fin de l'opération en cours.
Pour supprimer des versions d'un package, procédez comme suit :
Console
Ouvrez la page Dépôts de la console Google Cloud.
Dans la liste des dépôts, cliquez sur le dépôt approprié.
La page Packages répertorie les packages du dépôt.
Cliquez sur un package pour afficher ses versions.
Sélectionnez les versions que vous souhaitez supprimer.
Cliquez sur SUPPRIMER.
Dans la boîte de dialogue de confirmation, cliquez sur SUPPRIMER.
gcloud
Exécutez la commande suivante :
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
Où
- PACKAGE est le nom du package dans le dépôt.
- REPOSITORY est le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez omettre cet indicateur pour utiliser le dépôt par défaut.
- LOCATION a le statut régional ou multirégional position. Utilisez cette option pour afficher les dépôts dans un emplacement spécifique. Si vous avez configuré un emplacement par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.
--async
renvoie immédiatement une réponse, sans attendre la fin de l'opération en cours.
Étape suivante
- Consultez le guide de démarrage rapide pour Go.
- Télécharger des fichiers individuels à un module ou à une version sans utiliser de commandes Go.