Nesta página, descrevemos como criar repositórios padrão do Artifact Registry.
Os repositórios padrão são repositórios para seus artefatos particulares. Você faz o upload e fazer o download de artefatos diretamente desses repositórios.
Os modos de repositório a seguir também estão disponíveis para alguns formatos de artefato:
- Os repositórios remotos armazenam artefatos de fontes externas, como Docker Hub, Maven Central ou PyPI.
- Os repositórios virtuais atuam como um único ponto de acesso para download. instalar ou implantar artefatos em upstream padrão ou remoto repositórios.
Cada repositório pode conter artefatos para um único formato compatível.
Antes de começar
- Ative o Artifact Registry, incluindo ativar a API Artifact Registry e instalar a Google Cloud CLI.
- (Opcional) Configure padrões para comandos gcloud.
- Se você precisar que chaves de criptografia gerenciadas pelo cliente (CMEK) criptografar o conteúdo do repositório, criar e ativar uma chave no Cloud KMS para o repositório.
Funções exigidas
Para ter as permissões necessárias para criar repositórios,
peça ao administrador para conceder a você
Papel do IAM Administrador de repositório do Artifact Registry (roles/artifactregistry.repoAdmin
) no projeto do Google Cloud.
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
Criar um repositório padrão
Ao criar um repositório, é preciso definir as seguintes configurações que não pode ser alterado após a criação do repositório:
- Formato do artefato.
- Modo de repositório, se vários modos estiverem disponíveis para o formato selecionado.
- Local do repositório.
- criptografia com chaves de propriedade e gerenciadas pelo Google; ou chaves de criptografia gerenciadas pelo cliente. O Artifact Registry usa Chaves de criptografia de propriedade e gerenciadas pelo Google por padrão.
O Artifact Registry aplica restrições de políticas da organização que precisam da CMEK para criptografar recursos ou limitar podem ser usadas para proteção da CMEK.
Criar um repositório usando o console do Google Cloud
Abra a página Repositórios no console do Google Cloud.
Clique em Criar repositório.
Especifique o nome do repositório. Para cada local de repositório em um projeto, os nomes dos repositórios precisam ser exclusivos.
Selecione o formato do repositório.
Se vários modos de repositório estiverem disponíveis, selecione Standard.
Somente Maven: configure a política de versão.
Escolha uma política de versão:
- Nenhuma: nenhuma política de versão. Armazene pacotes de versão e de snapshot.
- Versão: armazene somente pacotes de versão.
- Snapshot: armazena somente pacotes de snapshots.
Se você quiser que um repositório de snapshots aceite snapshots não exclusivos que substituem versões existentes no repositório, selecione Permitir substituições de snapshots.
Em Tipo de local, escolha o local do repositório:
Escolha o tipo de local: Região ou multirregião. A lista de locais muda para refletir a seleção.
Na lista Região ou Multirregião, selecione um local.
Para informações sobre os tipos de locais e os locais compatíveis, consulte Locais do repositório
Adicione uma descrição para o repositório. As descrições ajudam a identificar a finalidade do repositório e o tipo de artefatos que ele contém.
Não inclua dados confidenciais, já que as descrições do repositório são e não criptografados.
Se você quiser usar marcadores para organizar seus repositórios, clique em Adicionar rótulo e insira o par de chave-valor do rótulo. É possível adicionar, editar ou remover rótulos depois de criar repositório de dados.
Na seção Criptografia, escolha o mecanismo de criptografia do repositório.
- Chave gerenciada pelo Google: criptografe o conteúdo do repositório com uma Chave de propriedade e gerenciada pelo Google.
Chave gerenciada pelo cliente: criptografe o conteúdo do repositório com uma chave controlada por você por meio do Cloud Key Management Service. Para instruções de configuração de chaves, consulte Como configurar CMEK para repositórios.
Para repositórios do Docker, a configuração Tags de imagem imutáveis define seu repositório para usar tags de imagem que sempre apontem para a mesma imagem digerir. Um usuário com o papel de administrador do Artifact Registry pode mudar isso após a criação do repositório.
- Essa configuração fica desativada por padrão. As tags de imagem são mutáveis, o resumo da imagem para o qual a tag aponta pode mudar.
- Se essa configuração estiver ativada, as tags de imagem não poderão ser mudadas. Uma tag deve sempre para o mesmo resumo de imagem. Para saber mais sobre tags de imagem mutáveis e imutáveis, consulte Versões de imagens de contêiner.
Se você quiser usar políticas de limpeza para excluir artefatos não utilizados, na Seção Políticas de limpeza:
- Selecione Simulação para testar a política antes da aplicação.
- Clique em Adicionar política para adicionar uma política de manutenção ou exclusão ao repositório.
- Dê um nome descritivo à política de limpeza no campo Nome.
Na seção Tipo de política, selecione uma das seguintes opções:
- Exclusão condicional: exclui artefatos com base nas condições que você a definição.
- Manutenção condicional: mantém os artefatos com base nas condições definidas.
Manter as versões mais recentes: mantém um número definido de versões mais recentes por pacote.
Para mais detalhes sobre as políticas de limpeza, consulte Configurar políticas de limpeza.
Clique em Criar.
O Artifact Registry cria o repositório e o adiciona à lista de repositórios.
Depois de criar o repositório:
- Conceda acesso ao repositório.
Configurar o Docker, os gerenciadores de pacotes e outros clientes de terceiros para fazer a autenticação em repositórios.
Criar um repositório usando a Google Cloud CLI
Execute o comando para criar um novo repositório.
Apt
gcloud artifacts repositories create REPOSITORY \ --repository-format=apt \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
Substitua:
REPOSITORY
: o nome do repositório. Para cada local de repositório em um projeto, os nomes dos repositórios precisam ser exclusivos.LOCATION
: o regional ou multirregional local do repositório. Você pode omita essa sinalização se definir um padrão. Para ver uma lista de locais compatíveis, execute o comando:gcloud artifacts locations list
DESCRIPTION
: uma descrição do repositório. Não incluir dados sensíveis, já que as descrições dos repositórios não são criptografadas.KMS-KEY
: o caminho completo para a criptografia do Cloud KMS se você estiver usando uma chave de criptografia gerenciada pelo cliente para criptografar o conteúdo do repositório. O caminho está no formato:projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
Substitua:
KMS-PROJECT
: o projeto em que a chave está armazenada.KMS-LOCATION
: a localização da chave;KEY-RING
: o nome do keyring;KEY
: o nome da chave;
--async
retorna imediatamente, sem aguardar a conclusão da operação em andamento.
Docker
gcloud artifacts repositories create REPOSITORY \
--repository-format=docker \
--location=LOCATION \
--description="DESCRIPTION" \
--kms-key=KMS-KEY \
--immutable-tags \
--async
Substitua:
REPOSITORY
: o nome do repositório. Para cada local de repositório em um projeto, os nomes dos repositórios precisam ser exclusivos.LOCATION
: o regional ou multirregional local do repositório. Você pode omita essa sinalização se definir um padrão. Para ver uma lista de locais compatíveis, execute o comando:gcloud artifacts locations list
DESCRIPTION
: uma descrição do repositório. O que não fazer incluir dados sensíveis, já que as descrições dos repositórios não são criptografadas.KMS-KEY
: o caminho completo para a criptografia do Cloud KMS se você estiver usando uma chave de criptografia gerenciada pelo cliente para criptografar o conteúdo do repositório. O caminho está no formato:projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
Substitua:
KMS-PROJECT
: o projeto em que a chave está armazenada.KMS-LOCATION
: a localização da chave;KEY-RING
: o nome do keyring;KEY
: o nome da chave;
--immutable-tags
é uma sinalização opcional que configura seu repositório para use tags que sempre apontem para o mesmo resumo de imagem.Por padrão, quando a sinalização
--immutable-tags
não é transmitida, uma tag pode ser foi movida para outro resumo de imagem. Para saber mais sobre imutáveis e mutáveis, consulte Versões de imagens de contêiner.--async
retorna imediatamente, sem aguardar a conclusão da operação em andamento.
Genérico
gcloud artifacts repositories create REPOSITORY \ --repository-format=generic \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
Substitua:
REPOSITORY
: o nome do repositório. Para cada local de repositório em um projeto, os nomes dos repositórios precisam ser exclusivos.LOCATION
: o regional ou multirregional local do repositório. Você pode omita essa sinalização se definir um padrão. Para ver uma lista de locais compatíveis, execute o comando:gcloud artifacts locations list
DESCRIPTION
: uma descrição do repositório. Não incluir dados sensíveis, já que as descrições dos repositórios não são criptografadas.KMS-KEY
: o caminho completo para a criptografia do Cloud KMS se você estiver usando uma chave de criptografia gerenciada pelo cliente para criptografar o conteúdo do repositório. O caminho está no formato:projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
Substitua:
KMS-PROJECT
: o projeto em que a chave está armazenada.KMS-LOCATION
: a localização da chave;KEY-RING
: o nome do keyring;KEY
: o nome da chave;
--async
retorna imediatamente, sem aguardar a conclusão da operação em andamento.
Go
gcloud artifacts repositories create REPOSITORY \ --repository-format=go \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
Substitua:
REPOSITORY
: o nome do repositório. Para cada local de repositório em um projeto, os nomes dos repositórios precisam ser exclusivos.LOCATION
: o regional ou multirregional local do repositório. Você pode omita essa sinalização se definir um padrão. Para ver uma lista de locais compatíveis, execute o comando:gcloud artifacts locations list
DESCRIPTION
: uma descrição do repositório. Não incluir dados sensíveis, já que as descrições dos repositórios não são criptografadas.KMS-KEY
: o caminho completo para a criptografia do Cloud KMS se você estiver usando uma chave de criptografia gerenciada pelo cliente para criptografar o conteúdo do repositório. O caminho está no formato:projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
Substitua:
KMS-PROJECT
: o projeto em que a chave está armazenada.KMS-LOCATION
: a localização da chave;KEY-RING
: o nome do keyring;KEY
: o nome da chave;
--async
retorna imediatamente, sem aguardar a conclusão da operação em andamento.
Pipelines do KubeFlow
gcloud artifacts repositories create REPOSITORY \ --repository-format=kfp \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
Substitua:
REPOSITORY
: o nome do repositório. Para cada local de repositório em um projeto, os nomes dos repositórios precisam ser exclusivos.LOCATION
: o regional ou multirregional local do repositório. Você pode omita essa sinalização se definir um padrão. Para ver uma lista de locais compatíveis, execute o comando:gcloud artifacts locations list
DESCRIPTION
: uma descrição do repositório. Não incluir dados sensíveis, já que as descrições dos repositórios não são criptografadas.KMS-KEY
: o caminho completo para a criptografia do Cloud KMS se você estiver usando uma chave de criptografia gerenciada pelo cliente para criptografar o conteúdo do repositório. O caminho está no formato:projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
Substitua:
KMS-PROJECT
: o projeto em que a chave está armazenada.KMS-LOCATION
: a localização da chave;KEY-RING
: o nome do keyring;KEY
: o nome da chave;
--async
retorna imediatamente, sem aguardar a conclusão da operação em andamento.
Maven
Por padrão, os repositórios Maven armazenam versões de snapshot e de lançamento de pacotes. É possível especificar política de versão para criar um snapshot ou repositório de lançamento.
Para criar um repositório que armazene snapshots e versões, execute o comando comando:
gcloud artifacts repositories create REPOSITORY \ --repository-format=maven \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
Substitua:
REPOSITORY
: o nome do repositório. Para cada local de repositório em um projeto, os nomes dos repositórios precisam ser exclusivos.LOCATION
: o regional ou multirregional local do repositório. Você pode omita essa sinalização se definir um padrão. Para ver uma lista de locais compatíveis, execute o comando:gcloud artifacts locations list
DESCRIPTION
: uma descrição do repositório. Não incluir dados sensíveis, já que as descrições dos repositórios não são criptografadas.KMS-KEY
: o caminho completo para a criptografia do Cloud KMS se você estiver usando uma chave de criptografia gerenciada pelo cliente para criptografar o conteúdo do repositório. O caminho está no formato:projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
Substitua:
KMS-PROJECT
: o projeto em que a chave está armazenada.KMS-LOCATION
: a localização da chave;KEY-RING
: o nome do keyring;KEY
: o nome da chave;
--async
retorna imediatamente, sem aguardar a conclusão da operação em andamento.Armazenar versões de snapshot e de lançamento em diferentes repositórios, especifique a política de versão no comando:
gcloud artifacts repositories create REPOSITORY \ --repository-format=maven \ [--location=LOCATION] \ [--description="DESCRIPTION"] \ [--kms-key=KMS-KEY] \ [--version-policy=VERSION-POLICY] \ [--allow-snapshot-overwrites] \ [--async] \
As sinalizações a seguir são específicas para os repositórios Maven:
--version-policy=VERSION-POLICY
- Especifica os tipos de pacotes a serem armazenados no repositório. Você pode definir VERSION-POLICY para:
None
: nenhuma política de versão. Armazene pacotes de versão e de snapshot. Se você não incluir a sinalização--version-policy
no comando, essa é a configuração padrão.Release
: armazena somente pacotes de versão.Snapshot
: armazena apenas pacotes de snapshots.
--allow-snapshot-overwrites
- Apenas para repositórios de snapshots. Se você especificar essa sinalização, poderá publicar snapshots não exclusivos que substituem versões existentes no repositório de dados.
npm
gcloud artifacts repositories create REPOSITORY \ --repository-format=npm \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
Substitua:
REPOSITORY
: o nome do repositório. Para cada local de repositório em um projeto, os nomes dos repositórios precisam ser exclusivos.LOCATION
: o regional ou multirregional local do repositório. Você pode omita essa sinalização se definir um padrão. Para ver uma lista de locais compatíveis, execute o comando:gcloud artifacts locations list
DESCRIPTION
: uma descrição do repositório. Não incluir dados sensíveis, já que as descrições dos repositórios não são criptografadas.KMS-KEY
: o caminho completo para a criptografia do Cloud KMS se você estiver usando uma chave de criptografia gerenciada pelo cliente para criptografar o conteúdo do repositório. O caminho está no formato:projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
Substitua:
KMS-PROJECT
: o projeto em que a chave está armazenada.KMS-LOCATION
: a localização da chave;KEY-RING
: o nome do keyring;KEY
: o nome da chave;
--async
retorna imediatamente, sem aguardar a conclusão da operação em andamento.
Python
gcloud artifacts repositories create REPOSITORY \ --repository-format=python \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
Substitua:
REPOSITORY
: o nome do repositório. Para cada local de repositório em um projeto, os nomes dos repositórios precisam ser exclusivos.LOCATION
: o regional ou multirregional local do repositório. Você pode omita essa sinalização se definir um padrão. Para ver uma lista de locais compatíveis, execute o comando:gcloud artifacts locations list
DESCRIPTION
: uma descrição do repositório. Não incluir dados sensíveis, já que as descrições dos repositórios não são criptografadas.KMS-KEY
: o caminho completo para a criptografia do Cloud KMS se você estiver usando uma chave de criptografia gerenciada pelo cliente para criptografar o conteúdo do repositório. O caminho está no formato:projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
Substitua:
KMS-PROJECT
: o projeto em que a chave está armazenada.KMS-LOCATION
: a localização da chave;KEY-RING
: o nome do keyring;KEY
: o nome da chave;
--async
retorna imediatamente, sem aguardar a conclusão da operação em andamento.
Yum
gcloud artifacts repositories create REPOSITORY \ --repository-format=yum \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
Substitua:
REPOSITORY
: o nome do repositório. Para cada local de repositório em um projeto, os nomes dos repositórios precisam ser exclusivos.LOCATION
: o regional ou multirregional local do repositório. Você pode omita essa sinalização se definir um padrão. Para ver uma lista de locais compatíveis, execute o comando:gcloud artifacts locations list
DESCRIPTION
: uma descrição do repositório. Não incluir dados sensíveis, já que as descrições dos repositórios não são criptografadas.KMS-KEY
: o caminho completo para a criptografia do Cloud KMS se você estiver usando uma chave de criptografia gerenciada pelo cliente para criptografar o conteúdo do repositório. O caminho está no formato:projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
Substitua:
KMS-PROJECT
: o projeto em que a chave está armazenada.KMS-LOCATION
: a localização da chave;KEY-RING
: o nome do keyring;KEY
: o nome da chave;
--async
retorna imediatamente, sem aguardar a conclusão da operação em andamento.
O Artifact Registry cria seu repositório. Execute o comando a seguir para visualizar uma descrição do repositório:
gcloud artifacts repositories describe REPOSITORY \
--location=LOCATION
Depois de criar o repositório:
- Conceda acesso ao repositório.
- Configure políticas de limpeza para excluir artefatos não utilizados.
Configurar o Docker, os gerenciadores de pacotes e outros clientes de terceiros para fazer a autenticação em repositórios.
Criar um repositório usando o Terraform
Usar o recurso google_artifact_registry_repository
para criar repositórios.
Versão do terraform-provider-google
5.0.0
ou mais recente é obrigatório.
Se você nunca usou o Terraform para Google Cloud, consulte a página Vamos começar - Google Cloud na site da HashiCorp.
O exemplo a seguir define o provedor e um repositório com o
Nome do recurso do Terraform my-repo
.
Apt
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "apt" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
Substitua:
PROJECT-ID
é o ID do projeto do Google Cloud;LOCATION
é o local do repositório.REPOSITORY
é o nome do repositório.DESCRIPTION
é a descrição opcional do repositório. Não inclua dados confidenciais, pois as descrições do repositório são e não criptografados.KEY
é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) para criptografia. Omitir esse argumento para usar a configuração padrão, a criptografia gerenciada pelo Google, chaves.DRY_RUN_STATUS
determina se as políticas de limpeza são excluídas ou só registrar quais artefatos seriam excluídos se a de limpeza de dados no repositório. Omita se não quiser adicionar de limpeza de dados ao repositório.true
: define as políticas para serem executadas no modo de teste. Nenhum artefato foi excluída no modo de teste.false
: aplica as políticas de limpeza. Os artefatos são excluídos ou mantidos de acordo com as políticas.
Para mais informações sobre políticas de limpeza, consulte Configurar políticas de limpeza.
POLICY_NAME
é o nome da política de limpeza.TAG_STATE
é o estado da tag em que a política será aplicada. Valores sãotagged
,untagged
eany
.any
se aplica às tags e artefatos sem tag. Se um repositório tiver tags imutáveis ativadas, com tags artefatos não podem ser excluídos.TAG_PREFIX
,TAG_PREFIX_N
são prefixos de tag de aplicar a política.PKG_PREFIX
,PKG_PREFIX_N
são prefixos de pacote aplicar a política.TIME_SINCE_UPLOAD
é o tempo desde uma versão de artefato foi enviado ao repositório, especificado como uma duração. É possível especificar durações de segundos, minutos, horas ou dias, anexandos
,m
,h
, oud
, respectivamente.KEEP_COUNT
é o número de versões de um artefato para manter no seu repositório.
Docker
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "docker" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
Substitua:
PROJECT-ID
é o ID do projeto do Google Cloud;LOCATION
é o local do repositório.REPOSITORY
é o nome do repositório.DESCRIPTION
é a descrição opcional do repositório. Não inclua dados confidenciais, pois as descrições do repositório são e não criptografados.KEY
é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) para criptografia. Omitir esse argumento para usar a configuração padrão, a criptografia gerenciada pelo Google, chaves.DRY_RUN_STATUS
determina se as políticas de limpeza são excluídas ou só registrar quais artefatos seriam excluídos se a de limpeza de dados no repositório. Omita se não quiser adicionar de limpeza de dados ao repositório.true
: define as políticas para serem executadas no modo de teste. Nenhum artefato foi excluída no modo de teste.false
: aplica as políticas de limpeza. Os artefatos são excluídos ou mantidos de acordo com as políticas.
Para mais informações sobre políticas de limpeza, consulte Configurar políticas de limpeza.
POLICY_NAME
é o nome da política de limpeza.TAG_STATE
é o estado da tag em que a política será aplicada. Valores sãotagged
,untagged
eany
.any
se aplica às tags e artefatos sem tag. Se um repositório tiver tags imutáveis ativadas, com tags artefatos não podem ser excluídos.TAG_PREFIX
,TAG_PREFIX_N
são prefixos de tag de aplicar a política.PKG_PREFIX
,PKG_PREFIX_N
são prefixos de pacote aplicar a política.TIME_SINCE_UPLOAD
é o tempo desde uma versão de artefato foi enviado ao repositório, especificado como uma duração. É possível especificar durações de segundos, minutos, horas ou dias, anexandos
,m
,h
, oud
, respectivamente.KEEP_COUNT
é o número de versões de um artefato para manter no seu repositório.
Genérico
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "generic" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
Substitua:
PROJECT-ID
é o ID do projeto do Google Cloud;LOCATION
é o local do repositório.REPOSITORY
é o nome do repositório.DESCRIPTION
é a descrição opcional do repositório. Não inclua dados confidenciais, pois as descrições do repositório são e não criptografados.KEY
é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) para criptografia. Omitir esse argumento para usar a configuração padrão, a criptografia gerenciada pelo Google, chaves.DRY_RUN_STATUS
determina se as políticas de limpeza são excluídas ou só registrar quais artefatos seriam excluídos se a de limpeza de dados no repositório. Omita se não quiser adicionar de limpeza de dados ao repositório.true
: define as políticas para serem executadas no modo de teste. Nenhum artefato foi excluída no modo de teste.false
: aplica as políticas de limpeza. Os artefatos são excluídos ou mantidos de acordo com as políticas.
Para mais informações sobre políticas de limpeza, consulte Configurar políticas de limpeza.
POLICY_NAME
é o nome da política de limpeza.TAG_STATE
é o estado da tag em que a política será aplicada. Valores sãotagged
,untagged
eany
.any
se aplica às tags e artefatos sem tag. Se um repositório tiver tags imutáveis ativadas, com tags artefatos não podem ser excluídos.TAG_PREFIX
,TAG_PREFIX_N
são prefixos de tag de aplicar a política.PKG_PREFIX
,PKG_PREFIX_N
são prefixos de pacote aplicar a política.TIME_SINCE_UPLOAD
é o tempo desde uma versão de artefato foi enviado ao repositório, especificado como uma duração. É possível especificar durações de segundos, minutos, horas ou dias, anexandos
,m
,h
, oud
, respectivamente.KEEP_COUNT
é o número de versões de um artefato para manter no seu repositório.
Go
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "go" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
Substitua:
PROJECT-ID
é o ID do projeto do Google Cloud;LOCATION
é o local do repositório.REPOSITORY
é o nome do repositório.DESCRIPTION
é a descrição opcional do repositório. Não inclua dados confidenciais, pois as descrições do repositório são e não criptografados.KEY
é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) para criptografia. Omitir esse argumento para usar a configuração padrão, a criptografia gerenciada pelo Google, chaves.DRY_RUN_STATUS
determina se as políticas de limpeza são excluídas ou só registrar quais artefatos seriam excluídos se a de limpeza de dados no repositório. Omita se não quiser adicionar de limpeza de dados ao repositório.true
: define as políticas para serem executadas no modo de teste. Nenhum artefato foi excluída no modo de teste.false
: aplica as políticas de limpeza. Os artefatos são excluídos ou mantidos de acordo com as políticas.
Para mais informações sobre políticas de limpeza, consulte Configurar políticas de limpeza.
POLICY_NAME
é o nome da política de limpeza.TAG_STATE
é o estado da tag em que a política será aplicada. Valores sãotagged
,untagged
eany
.any
se aplica às tags e artefatos sem tag. Se um repositório tiver tags imutáveis ativadas, com tags artefatos não podem ser excluídos.TAG_PREFIX
,TAG_PREFIX_N
são prefixos de tag de aplicar a política.PKG_PREFIX
,PKG_PREFIX_N
são prefixos de pacote aplicar a política.TIME_SINCE_UPLOAD
é o tempo desde uma versão de artefato foi enviado ao repositório, especificado como uma duração. É possível especificar durações de segundos, minutos, horas ou dias, anexandos
,m
,h
, oud
, respectivamente.KEEP_COUNT
é o número de versões de um artefato para manter no seu repositório.
Pipelines do KubeFlow
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "kfp" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
Substitua:
PROJECT-ID
é o ID do projeto do Google Cloud;LOCATION
é o local do repositório.REPOSITORY
é o nome do repositório.DESCRIPTION
é a descrição opcional do repositório. Não inclua dados confidenciais, pois as descrições do repositório são e não criptografados.KEY
é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) para criptografia. Omitir esse argumento para usar a configuração padrão, a criptografia gerenciada pelo Google, chaves.DRY_RUN_STATUS
determina se as políticas de limpeza são excluídas ou só registrar quais artefatos seriam excluídos se a de limpeza de dados no repositório. Omita se não quiser adicionar de limpeza de dados ao repositório.true
: define as políticas para serem executadas no modo de teste. Nenhum artefato foi excluída no modo de teste.false
: aplica as políticas de limpeza. Os artefatos são excluídos ou mantidos de acordo com as políticas.
Para mais informações sobre políticas de limpeza, consulte Configurar políticas de limpeza.
POLICY_NAME
é o nome da política de limpeza.TAG_STATE
é o estado da tag em que a política será aplicada. Valores sãotagged
,untagged
eany
.any
se aplica às tags e artefatos sem tag. Se um repositório tiver tags imutáveis ativadas, com tags artefatos não podem ser excluídos.TAG_PREFIX
,TAG_PREFIX_N
são prefixos de tag de aplicar a política.PKG_PREFIX
,PKG_PREFIX_N
são prefixos de pacote aplicar a política.TIME_SINCE_UPLOAD
é o tempo desde uma versão de artefato foi enviado ao repositório, especificado como uma duração. É possível especificar durações de segundos, minutos, horas ou dias, anexandos
,m
,h
, oud
, respectivamente.KEEP_COUNT
é o número de versões de um artefato para manter no seu repositório.
Maven
Se você não especificar uma política de versão, o Artifact Registry cria um repositório Maven que armazena versões de snapshot e de lançamento de pacotes por padrão.
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "maven" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
Substitua:
PROJECT-ID
é o ID do projeto do Google Cloud;LOCATION
é o local do repositório.REPOSITORY
é o nome do repositório.DESCRIPTION
é a descrição opcional do repositório. Não inclua dados confidenciais, pois as descrições do repositório são e não criptografados.KEY
é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) para criptografia. Omitir esse argumento para usar a configuração padrão, a criptografia gerenciada pelo Google, chaves.DRY_RUN_STATUS
determina se as políticas de limpeza são excluídas ou só registrar quais artefatos seriam excluídos se a de limpeza de dados no repositório. Omita se não quiser adicionar de limpeza de dados ao repositório.true
: define as políticas para serem executadas no modo de teste. Nenhum artefato foi excluída no modo de teste.false
: aplica as políticas de limpeza. Os artefatos são excluídos ou mantidos de acordo com as políticas.
Para mais informações sobre políticas de limpeza, consulte Configurar políticas de limpeza.
POLICY_NAME
é o nome da política de limpeza.TAG_STATE
é o estado da tag em que a política será aplicada. Valores sãotagged
,untagged
eany
.any
se aplica às tags e artefatos sem tag. Se um repositório tiver tags imutáveis ativadas, com tags artefatos não podem ser excluídos.TAG_PREFIX
,TAG_PREFIX_N
são prefixos de tag de aplicar a política.PKG_PREFIX
,PKG_PREFIX_N
são prefixos de pacote aplicar a política.TIME_SINCE_UPLOAD
é o tempo desde uma versão de artefato foi enviado ao repositório, especificado como uma duração. É possível especificar durações de segundos, minutos, horas ou dias, anexandos
,m
,h
, oud
, respectivamente.KEEP_COUNT
é o número de versões de um artefato para manter no seu repositório.Armazenar versões de snapshot e de lançamento em diferentes os repositórios, especifique uma política de versão para os repositório usando um bloco
maven_config
. Esse bloco oferece suporte à seguintes configurações:version_policy
define a política de versão com um dos seguintes valores:VERSION_POLICY_UNSPECIFIED
: armazena pacotes de snapshot e de versão. Isso é a configuração padrão.- LANÇAMENTO: armazene somente pacotes de lançamento.
- SNAPSHOT: armazenar somente pacotes de snapshots.
O
allow_snapshot_overwrites
configura um repositório com umSNAPSHOT
. política de versão para aceitar snapshots não exclusivos que substituem no repositório.O exemplo a seguir define um repositório Maven com uma versão de lançamento política.
provider "google" { project = "my-project" } resource "google_artifact_registry_repository" "my-repo" { provider = google-beta location = "us-central1" repository_id = "my-repo" description = "Maven repository" format = "MAVEN" maven_config { version_policy = "RELEASE" } }
npm
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "npm" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
Substitua:
PROJECT-ID
é o ID do projeto do Google Cloud;LOCATION
é o local do repositório.REPOSITORY
é o nome do repositório.DESCRIPTION
é a descrição opcional do repositório. Não inclua dados confidenciais, pois as descrições do repositório são e não criptografados.KEY
é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) para criptografia. Omitir esse argumento para usar a configuração padrão, a criptografia gerenciada pelo Google, chaves.DRY_RUN_STATUS
determina se as políticas de limpeza são excluídas ou só registrar quais artefatos seriam excluídos se a de limpeza de dados no repositório. Omita se não quiser adicionar de limpeza de dados ao repositório.true
: define as políticas para serem executadas no modo de teste. Nenhum artefato foi excluída no modo de teste.false
: aplica as políticas de limpeza. Os artefatos são excluídos ou mantidos de acordo com as políticas.
Para mais informações sobre políticas de limpeza, consulte Configurar políticas de limpeza.
POLICY_NAME
é o nome da política de limpeza.TAG_STATE
é o estado da tag em que a política será aplicada. Valores sãotagged
,untagged
eany
.any
se aplica às tags e artefatos sem tag. Se um repositório tiver tags imutáveis ativadas, com tags artefatos não podem ser excluídos.TAG_PREFIX
,TAG_PREFIX_N
são prefixos de tag de aplicar a política.PKG_PREFIX
,PKG_PREFIX_N
são prefixos de pacote aplicar a política.TIME_SINCE_UPLOAD
é o tempo desde uma versão de artefato foi enviado ao repositório, especificado como uma duração. É possível especificar durações de segundos, minutos, horas ou dias, anexandos
,m
,h
, oud
, respectivamente.KEEP_COUNT
é o número de versões de um artefato para manter no seu repositório.
Python
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "python" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
Substitua:
PROJECT-ID
é o ID do projeto do Google Cloud;LOCATION
é o local do repositório.REPOSITORY
é o nome do repositório.DESCRIPTION
é a descrição opcional do repositório. Não inclua dados confidenciais, pois as descrições do repositório são e não criptografados.KEY
é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) para criptografia. Omitir esse argumento para usar a configuração padrão, a criptografia gerenciada pelo Google, chaves.DRY_RUN_STATUS
determina se as políticas de limpeza são excluídas ou só registrar quais artefatos seriam excluídos se a de limpeza de dados no repositório. Omita se não quiser adicionar de limpeza de dados ao repositório.true
: define as políticas para serem executadas no modo de teste. Nenhum artefato foi excluída no modo de teste.false
: aplica as políticas de limpeza. Os artefatos são excluídos ou mantidos de acordo com as políticas.
Para mais informações sobre políticas de limpeza, consulte Configurar políticas de limpeza.
POLICY_NAME
é o nome da política de limpeza.TAG_STATE
é o estado da tag em que a política será aplicada. Valores sãotagged
,untagged
eany
.any
se aplica às tags e artefatos sem tag. Se um repositório tiver tags imutáveis ativadas, com tags artefatos não podem ser excluídos.TAG_PREFIX
,TAG_PREFIX_N
são prefixos de tag de aplicar a política.PKG_PREFIX
,PKG_PREFIX_N
são prefixos de pacote aplicar a política.TIME_SINCE_UPLOAD
é o tempo desde uma versão de artefato foi enviado ao repositório, especificado como uma duração. É possível especificar durações de segundos, minutos, horas ou dias, anexandos
,m
,h
, oud
, respectivamente.KEEP_COUNT
é o número de versões de um artefato para manter no seu repositório.
Yum
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "yum" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
Substitua:
PROJECT-ID
é o ID do projeto do Google Cloud;LOCATION
é o local do repositório.REPOSITORY
é o nome do repositório.DESCRIPTION
é a descrição opcional do repositório. Não inclua dados confidenciais, pois as descrições do repositório são e não criptografados.KEY
é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) para criptografia. Omitir esse argumento para usar a configuração padrão, a criptografia gerenciada pelo Google, chaves.DRY_RUN_STATUS
determina se as políticas de limpeza são excluídas ou só registrar quais artefatos seriam excluídos se a de limpeza de dados no repositório. Omita se não quiser adicionar de limpeza de dados ao repositório.true
: define as políticas para serem executadas no modo de teste. Nenhum artefato foi excluída no modo de teste.false
: aplica as políticas de limpeza. Os artefatos são excluídos ou mantidos de acordo com as políticas.
Para mais informações sobre políticas de limpeza, consulte Configurar políticas de limpeza.
POLICY_NAME
é o nome da política de limpeza.TAG_STATE
é o estado da tag em que a política será aplicada. Valores sãotagged
,untagged
eany
.any
se aplica às tags e artefatos sem tag. Se um repositório tiver tags imutáveis ativadas, com tags artefatos não podem ser excluídos.TAG_PREFIX
,TAG_PREFIX_N
são prefixos de tag de aplicar a política.PKG_PREFIX
,PKG_PREFIX_N
são prefixos de pacote aplicar a política.TIME_SINCE_UPLOAD
é o tempo desde uma versão de artefato foi enviado ao repositório, especificado como uma duração. É possível especificar durações de segundos, minutos, horas ou dias, anexandos
,m
,h
, oud
, respectivamente.KEEP_COUNT
é o número de versões de um artefato para manter no seu repositório.
O Artifact Registry cria seu repositório. Execute o comando a seguir para visualizar uma descrição do repositório:
gcloud artifacts repositories describe REPOSITORY \
--location=LOCATION
Depois de criar o repositório:
- Conceda acesso ao repositório.
Configurar o Docker, os gerenciadores de pacotes e outros clientes de terceiros para fazer a autenticação em repositórios.
Editar descrições do repositório
É possível alterar a descrição do repositório no console do Google Cloud ou no CLI gcloud.
Console
Abra a página Repositórios no console do Google Cloud.
Na lista de repositórios, selecione o repositório e clique em Editar repositório.
Edite a descrição do repositório e clique em Salvar.
gcloud
Para atualizar a descrição do repositório, execute o comando:
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT \
--location=LOCATION \
--description="DESCRIPTION"
Substitua:
REPOSITORY
: o nome do repositório. Se você tiver configurado um repositório padrão, será possível omitir essa sinalização para usar o padrão.PROJECT
: o ID do projeto do Google Cloud. Se essa sinalização for omitida, o projeto atual ou padrão será usado.LOCATION
: um regional ou multirregional local. Use esta sinalização para ver repositórios em um local específico. Se você configurado um local padrão, omita essa sinalização para usar o padrão.DESCRIPTION
: uma descrição para o repositório.