Esta página explica como gerir módulos Go em pacote armazenados no Artifact Registry.
Antes de começar
- Se o repositório de destino não existir, crie um novo repositório. Escolha Go como formato do repositório.
- Verifique se tem as autorizações necessárias para o repositório.
- (Opcional) Configure as predefinições para os comandos gcloud.
- Instale o Go 1.15 ou posterior.
Instale o suplemento da CLI gcloud package-go-module:
gcloud components install package-go-module
Configure o acesso para autenticar com o Artifact Registry.
Funções necessárias
Para receber as autorizações de que precisa para gerir módulos, peça ao seu administrador que lhe conceda as seguintes funções de IAM no repositório:
-
Ver módulos:
Leitor do Artifact Registry (
roles/artifactregistry.reader
) -
Transferir ou instalar módulos:
Leitor do Artifact Registry (
roles/artifactregistry.reader
) -
Adicione módulos a um repositório:
Escritor do Artifact Registry (
roles/artifactregistry.writer
) -
Eliminar módulos:
Administrador do repositório do Artifact Registry (
roles/artifactregistry.repoAdmin
)
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Carregue um módulo
Modos de repositório: padrão
Para criar um pacote e carregar um módulo para o seu repositório, execute o seguinte comando:
gcloud artifacts go upload --project=PROJECT \ --repository=REPOSITORY \ --location=LOCATION \ --module-path=MODULE_PATH \ --version=VERSION \ --source=SOURCE_LOCATION
Substitua o seguinte:
- PROJECT com o seu Google Cloud ID do projeto.
- REPOSITORY com o nome do repositório onde o pacote está armazenado.
- LOCATION com a localização regional ou multirregional do repositório.
- MODULE_PATH com o percurso do módulo. Por exemplo:
example.com/foo
Consulte a referência dos módulos Go para mais informações. - VERSION com a
versão semântica
do módulo no formato
vX.Y.Z
, em queX
é a versão principal,Y
é a versão secundária eZ
é a versão de patch. - SOURCE_LOCATION com o caminho para o diretório raiz do seu módulo Go. Se omitir a flag
--source
, a predefinição é o diretório atual.
O módulo é carregado para o Artifact Registry.
Para mais informações sobre como criar módulos Go, consulte este tutorial.
Carregue uma nova versão do módulo
Modos de repositório: padrão
Para carregar uma nova versão do seu módulo para o projeto, o repositório e a localização predefinidos quando os valores predefinidos estão configurados, execute o seguinte comando com o novo número da versão:
gcloud artifacts go upload \ --module-path=MODULE_PATH \ --version=VERSION \ --source=SOURCE_LOCATION
Substitua VERSION pela versão do módulo atualizado. Por exemplo, para carregar a versão 0.1.1
de um módulo com o caminho example.com/foo
, execute o seguinte comando:
gcloud artifacts go upload \ --module-path=example.com/foo \ --version=v0.1.1 \ --source=SOURCE_LOCATION
Para marcar um módulo como uma versão de pré-lançamento, adicione um traço após o elemento VERSION e acrescente os identificadores de pré-lançamento do módulo:
gcloud artifacts go upload \ --module-path=MODULE_PATH \ --version=VERSION-PRE_RELEASE_IDENTIFIERS \ --source=SOURCE_LOCATION
Substitua PRE_RELEASE_IDENTIFIERS por carateres alfanuméricos ASCII separados por pontos e travessões. Por exemplo, para carregar uma versão pré-lançamento de um módulo com o caminho example.com/foo
, identificado por alpha.x.12m.5
, execute o seguinte comando:
gcloud artifacts go upload \ --module-path=example.com/foo \ --version=v1.0.0-alpha.x.12m.5 \ --source=SOURCE_LOCATION
Carregue uma nova versão principal
Modos de repositório: padrão
As versões principais não são retrocompatíveis com as versões anteriores. Para impedir que os utilizadores importem uma alteração interruptiva, as versões principais após v1
têm de ter caminhos de módulos diferentes das versões anteriores. A partir de v2
, a versão principal é adicionada ao final do caminho do módulo.
Por exemplo, o caminho do módulo para v2.0.0
de example.com/foo
seria
example.com/foo/v2
.
A prática recomendada é desenvolver versões principais após v1
em diretórios separados com o nome do respetivo sufixo de versão principal.
Para carregar uma nova versão principal 2.0.0
de um módulo com o caminho example.com/foo
para o projeto, o repositório e a localização predefinidos quando os valores predefinidos estão configurados:
gcloud artifacts go upload --module-path=example.com/foo/v2 --version=v2.0.0
Listar módulos
Modos de repositório: padrão, remoto e virtual
Execute o seguinte comando para inspecionar um módulo Go carregado no projeto, repositório e localização predefinidos quando os valores predefinidos estão configurados:
gcloud artifacts packages list
O resultado vai ser semelhante ao seguinte:
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
Veja os detalhes da versão do módulo
Modos de repositório: padrão, remoto e virtual
Execute o seguinte comando para ver as versões de um módulo no projeto, repositório e localização predefinidos quando os valores predefinidos estão configurados:
gcloud artifacts versions list --package=MODULE_PATH
O resultado vai ser semelhante ao seguinte:
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
Use um módulo como dependência
Modos de repositório: padrão, remoto e virtual
Para importar módulos armazenados no Artifact Registry, tem de indicar ao Go que procure dependências no Artifact Registry e ignore a base de dados de somas de verificação. Siga as instruções para configurar a autenticação e o ambiente Go em Configure a autenticação para o Go.
Se estiver a usar credenciais de curta duração para autenticar no Artifact Registry, tem de atualizar o seu token OAuth executando o seguinte comando:
GOPROXY=proxy.golang.org \ go run github.com/GoogleCloudPlatform/artifact-registry-go-tools/cmd/auth@latest refresh
Se o seu módulo ainda não tiver um ficheiro
go.mod
, altere os diretórios para a pasta do módulo e executego mod init
para criar um ficheirogo.mod
para o seu pacote.go mod init MODULE_PATH
Substitua MODULE_PATH pelo caminho do módulo para o módulo armazenado no Artifact Registry. Consulte a Referência de módulos Go para mais informações.
Para exigir a versão do seu módulo armazenada no Artifact Registry, edite o ficheiro
go.mod
de forma a ficar semelhante ao seguinte:module example.com/bar go 1.19 require example.com/foo v0.1.0
Substitua o seguinte:
example.com/foo
é o caminho do módulo do módulo necessáriov0.1.0
é a versão armazenada no Artifact Registry
Inclua o caminho do módulo normalmente na secção
import
do ficheiromain.go
.Por exemplo, para importar um módulo com o caminho
example.com/foo
armazenado no Artifact Registry, a sua secção de importação pode ser semelhante à seguinte:package main import ( foo "example.com/foo" ) func main() { ... }
Execute
go mod tidy
para transferir dependências:go mod tidy
Execute o módulo normalmente:
go run .
O módulo armazenado no Artifact Registry é transferido e usado como uma dependência.
Elimine módulos Go incluídos em pacotes
Modos de repositório: padrão, remoto
Pode eliminar um pacote e todas as respetivas versões ou eliminar uma versão específica.
- Depois de eliminar um pacote, não pode anular a ação.
Antes de eliminar um pacote ou uma versão do pacote, verifique se comunicou ou resolveu quaisquer dependências importantes do mesmo.
Para eliminar um pacote:
Consola
Abra a página Repositórios na Google Cloud consola.
Na lista de repositórios, clique no repositório adequado.
A página Pacotes apresenta os pacotes no repositório.
Selecione o pacote que quer eliminar.
Clique em ELIMINAR.
Clique em ELIMINAR na caixa de diálogo de confirmação.
gcloud
Execute o seguinte comando:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Substitua o seguinte:
PACKAGE
é o nome do pacote no repositório.REPOSITORY
é o nome do repositório. Se configurou um repositório predefinido, pode omitir esta flag para usar o predefinido.-
LOCATION
é a localização regional ou multirregional do repositório. Use esta flag para ver repositórios numa localização específica. Se tiver configurado uma localização predefinida, pode omitir esta flag para usar a predefinição.
A flag --async
faz com que o comando seja devolvido imediatamente,
sem aguardar a conclusão da operação em curso.
Para eliminar versões de um pacote:
Consola
Abra a página Repositórios na Google Cloud consola.
Na lista de repositórios, clique no repositório adequado.
A página Pacotes apresenta os pacotes no repositório.
Clique num pacote para ver as versões desse pacote.
Selecione as versões que quer eliminar.
Clique em ELIMINAR.
Clique em ELIMINAR na caixa de diálogo de confirmação.
gcloud
Execute o seguinte comando:
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
Substitua o seguinte:
VERSION
é o nome da versão a eliminar.PACKAGE
é o nome do pacote no repositório.REPOSITORY
é o nome do repositório. Se configurou um repositório predefinido, pode omitir esta flag para usar o predefinido.-
LOCATION
é a localização regional ou multirregional do repositório. Use esta flag para ver repositórios numa localização específica. Se tiver configurado uma localização predefinida, pode omitir esta flag para usar a predefinição.
A flag --async
faz com que o comando seja devolvido imediatamente,
sem aguardar a conclusão da operação em curso.
O que se segue?
- Experimente o Go Quickstart.
- Transfira ficheiros individuais associados a um módulo ou uma versão sem usar comandos Go.