Questa pagina spiega come gestire i moduli Go pacchettizzati archiviati in Artifact Registry.
Prima di iniziare
- Se il repository di destinazione non esiste, creane uno nuovo. Scegli Go come formato del repository.
- Verifica di disporre delle autorizzazioni necessarie per il repository.
- (Facoltativo) Configura i valori predefiniti per i comandi gcloud.
- Installa Go 1.15 o versioni successive.
Installa il componente aggiuntivo package-go-module per gcloud CLI:
gcloud components install package-go-module
Configura Go to per eseguire l'autenticazione con Artifact Registry.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per gestire i moduli, chiedi all'amministratore di concederti i seguenti ruoli IAM nel repository:
-
Visualizza i moduli:
Artifact Registry Reader (
roles/artifactregistry.reader
) -
Scarica o installa i moduli:
Artifact Registry Reader (
roles/artifactregistry.reader
) -
Aggiungi moduli a un repository:
Artifact Registry Writer (
roles/artifactregistry.writer
) -
Elimina i moduli:
Amministratore del repository Artifact Registry (
roles/artifactregistry.repoAdmin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Caricare un modulo
Modalità del repository: standard
Per pacchettizzare e caricare un modulo nel tuo repository, esegui il seguente comando:
gcloud artifacts go upload --project=PROJECT \ --repository=REPOSITORY \ --location=LOCATION \ --module-path=MODULE_PATH \ --version=VERSION \ --source=SOURCE_LOCATION
Sostituisci quanto segue:
- PROJECT con il tuo Google Cloud ID progetto.
- REPOSITORY con il nome del repository in cui è memorizzato il package.
- LOCATION con la posizione regionale o multiregionale del repository.
- MODULE_PATH con il percorso del modulo. Ad esempio:
example.com/foo
Consulta il riferimento a Go Modules per ulteriori informazioni. - VERSION con la
versione semantica
del modulo nel formato
vX.Y.Z
, doveX
è la versione principale,Y
è la versione secondaria eZ
è la versione patch. - SOURCE_LOCATION con il percorso della directory principale del modulo Go. Se ometti il flag
--source
, il valore predefinito è la directory corrente.
Il modulo viene caricato in Artifact Registry.
Per ulteriori informazioni sulla creazione di moduli Go, consulta questo tutorial.
Caricare una nuova versione del modulo
Modalità del repository: standard
Per caricare una nuova versione del modulo nel progetto, nel repository e nella località predefiniti quando i valori predefiniti sono configurati, esegui il seguente comando con il numero della nuova versione:
gcloud artifacts go upload \ --module-path=MODULE_PATH \ --version=VERSION \ --source=SOURCE_LOCATION
Sostituisci VERSION con la versione del modulo aggiornato. Ad esempio, per caricare la versione 0.1.1
di un modulo con il percorso example.com/foo
, esegui il seguente comando:
gcloud artifacts go upload \ --module-path=example.com/foo \ --version=v0.1.1 \ --source=SOURCE_LOCATION
Per contrassegnare un modulo come versione pre-release, aggiungi un trattino dopoVERSION e aggiungi gli identificatori pre-release del modulo:
gcloud artifacts go upload \ --module-path=MODULE_PATH \ --version=VERSION-PRE_RELEASE_IDENTIFIERS \ --source=SOURCE_LOCATION
Sostituisci PRE_RELEASE_IDENTIFIERS con caratteri alfanumerici ASCII separati da punti e trattini. Ad esempio, per caricare una pre-release di un modulo con il percorso example.com/foo
identificato da alpha.x.12m.5
, esegui il seguente comando:
gcloud artifacts go upload \ --module-path=example.com/foo \ --version=v1.0.0-alpha.x.12m.5 \ --source=SOURCE_LOCATION
Caricare una nuova versione principale
Modalità del repository: standard
Le versioni principali non sono compatibili con le versioni precedenti. Per impedire agli utenti di importare una modifica che provoca un errore, le versioni principali successive a v1
devono avere percorsi dei moduli diversi rispetto alle versioni precedenti. A partire da v2
, la versione principale viene aggiunta alla fine del percorso del modulo.
Ad esempio, il percorso del modulo per v2.0.0
di example.com/foo
è
example.com/foo/v2
.
La best practice consigliata è sviluppare le versioni principali successive a v1
in directory separate con nomi corrispondenti al suffisso della versione principale.
Per caricare una nuova versione principale 2.0.0
di un modulo con il percorso
example.com/foo
nel progetto, nel repository e nella posizione predefiniti quando i
valori predefiniti sono configurati:
gcloud artifacts go upload --module-path=example.com/foo/v2 --version=v2.0.0
Elenca moduli
Modalità del repository: standard
Esegui il seguente comando per ispezionare un modulo Go caricato nel progetto, nel repository e nella posizione predefiniti quando i valori predefiniti sono configurati:
gcloud artifacts packages list
L'output sarà simile al seguente:
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
Visualizzare i dettagli della versione del modulo
Modalità del repository: standard
Esegui il seguente comando per visualizzare le versioni di un modulo nel progetto, nel repository e nella posizione predefiniti quando sono configurati i valori predefiniti:
gcloud artifacts versions list --package=MODULE_PATH
L'output sarà simile al seguente:
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
Utilizzare un modulo come dipendenza
Modalità del repository: standard
Per importare i moduli archiviati in Artifact Registry, devi indicare a Go to di cercare le dipendenze da Artifact Registry e di bypassare il database dei checksum. Segui le istruzioni per configurare l'autenticazione e l'ambiente Go in Configurare l'autenticazione per Go.
Se utilizzi credenziali a vita breve per l'autenticazione in Artifact Registry, dovrai aggiornare il token OAuth eseguendo il seguente comando:
GOPROXY=proxy.golang.org \ go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@latest refresh
Se il tuo modulo non ha ancora un file
go.mod
, cambia directory nella cartella del modulo ed eseguigo mod init
per creare un filego.mod
per il tuo pacchetto.go mod init MODULE_PATH
Sostituisci MODULE_PATH con il percorso del modulo memorizzato in Artifact Registry. Per ulteriori informazioni, consulta il riferimento ai moduli Go.
Per richiedere la versione del modulo archiviata in Artifact Registry, modifica il file
go.mod
in modo che sia simile al seguente:module example.com/bar go 1.19 require example.com/foo v0.1.0
Sostituisci quanto segue:
example.com/foo
è il percorso del modulo richiestov0.1.0
è la versione archiviata in Artifact Registry
Includi il percorso del modulo come di consueto nella sezione
import
del filemain.go
.Ad esempio, per importare un modulo con il percorso
example.com/foo
archiviato in Artifact Registry, la sezione di importazione potrebbe essere simile alla seguente:package main import ( foo "example.com/foo" ) func main() { ... }
Esegui
go mod tidy
per scaricare le dipendenze:go mod tidy
Esegui il modulo come al solito:
go run .
Il modulo archiviato in Artifact Registry viene scaricato e utilizzato come dipendenza.
Eliminare i moduli Go pacchettizzati
Modalità del repository: standard
Puoi eliminare un pacchetto e tutte le sue versioni oppure una versione specifica.
- Una volta eliminato un pacchetto, non puoi annullare l'azione.
Prima di eliminare un pacchetto o una versione del pacchetto, verifica di aver comunicato o risolto eventuali dipendenze importanti.
Per eliminare un pacchetto:
Console
Apri la pagina Repositori nella console Google Cloud.
Nell'elenco dei repository, fai clic sul repository appropriato.
La pagina Pacchetti elenca i pacchetti nel repository.
Seleziona il pacchetto da eliminare.
Fai clic su ELIMINA.
Nella finestra di dialogo di conferma, fai clic su ELIMINA.
gcloud
Esegui questo comando:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Sostituisci quanto segue:
PACKAGE
è il nome del pacchetto nel repository.REPOSITORY
è il nome del repository. Se hai configurato un repository predefinito, puoi omettere questo flag per utilizzare quello predefinito.-
LOCATION
è la posizione regionale o multiregionale del repository. Utilizza questo flag per visualizzare i repository in una posizione specifica. Se hai configurato una località predefinita, puoi omettere questo flag per utilizzare quella predefinita.
Il flag --async
fa sì che il comando ritorni immediatamente,
senza attendere il completamento dell'operazione in corso.
Per eliminare le versioni di un pacchetto:
Console
Apri la pagina Repositori nella console Google Cloud.
Nell'elenco dei repository, fai clic sul repository appropriato.
La pagina Pacchetti elenca i pacchetti nel repository.
Fai clic su un pacchetto per visualizzarne le versioni.
Seleziona le versioni da eliminare.
Fai clic su ELIMINA.
Nella finestra di dialogo di conferma, fai clic su ELIMINA.
gcloud
Esegui questo comando:
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
Sostituisci quanto segue:
VERSION
è il nome della versione da eliminare.PACKAGE
è il nome del pacchetto nel repository.REPOSITORY
è il nome del repository. Se hai configurato un repository predefinito, puoi omettere questo flag per utilizzare quello predefinito.-
LOCATION
è la posizione regionale o multiregionale del repository. Utilizza questo flag per visualizzare i repository in una posizione specifica. Se hai configurato una località predefinita, puoi omettere questo flag per utilizzare quella predefinita.
Il flag --async
fa sì che il comando ritorni immediatamente,
senza attendere il completamento dell'operazione in corso.
Passaggi successivi
- Prova la guida rapida di Go.
- Scaricare singoli file associati a un modulo o a una versione senza utilizzare i comandi Go.