Criar repositórios padrão

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 upload de artefatos e faz o download deles 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 o Docker Hub, o Maven Central ou o PyPI.
  • Os repositórios virtuais atuam como um único ponto de acesso para fazer o download, instalar ou implantar artefatos que estão em repositórios padrão ou remotos upstream.

Cada repositório pode conter artefatos para um único formato compatível.

Antes de começar

  1. Ative o Artifact Registry, incluindo a ativação da API Artifact Registry e a instalação da Google Cloud CLI.
  2. (Opcional) Configure padrões para comandos gcloud.
  3. Se você precisar de chaves de criptografia gerenciadas pelo cliente (CMEK) para criptografar o conteúdo do repositório, crie e ative uma chave no Cloud KMS para o repositório.

Funções exigidas

Para receber as permissões necessárias para criar repositórios, peça ao administrador para conceder a você o papel do IAM Administrador de repositórios 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 receber 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 poderão ser alteradas após a criação:

  • 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 do Google e gerenciadas pelo Google por padrão.

O Artifact Registry aplica restrições de política da organização que exigem que a CMEK criptografe recursos ou limitem quais chaves do Cloud KMS podem ser usadas para proteção da CMEK.

Criar um repositório usando o console do Google Cloud

  1. Abra a página Repositórios no console do Google Cloud.

    Abrir a página Repositórios

  2. Clique em Criar repositório.

  3. Especifique o nome do repositório. Para cada local de repositório em um projeto, os nomes dos repositórios precisam ser exclusivos.

  4. Selecione o formato do repositório.

  5. Se vários modos de repositório estiverem disponíveis, selecione Standard.

  6. Somente Maven: configure a política de versão.

    1. 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.
    2. Se quiser que um repositório de snapshots aceite snapshots não exclusivos que substituam versões atuais no repositório, selecione Permitir substituições de snapshots.

  7. Em Tipo de local, escolha o local do repositório:

    1. Escolha o tipo de local: Região ou multirregião. A lista de locais muda para refletir a seleção.

    2. 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.

  8. 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 não são criptografadas.

  9. Se você quiser usar rótulos 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 o repositório.

  10. 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 configura seu repositório para usar tags de imagem que sempre apontam para o mesmo resumo da imagem. Um usuário com o papel de administrador do Artifact Registry pode alterar essa configuração após a criação do repositório.

      • Essa configuração fica desativada por padrão. As tags de imagem são mutáveis, ou seja, 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 precisa sempre apontar para o mesmo resumo de imagem. Para saber mais sobre tags de imagem mutáveis e imutáveis, consulte Versões de imagem de contêiner.
  11. Se você quiser usar políticas de limpeza para excluir artefatos não utilizados, na seção Políticas de limpeza:

    1. Selecione Simulação para testar a política antes da aplicação.
    2. Clique em Adicionar política para adicionar uma política de manutenção ou exclusão ao repositório.
    3. Dê um nome descritivo à política de limpeza no campo Nome.
    4. 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ê define.
      • 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 políticas de limpeza, consulte Configurar políticas de limpeza.

  12. Clique em Criar.

O Artifact Registry cria o repositório e o adiciona à lista de repositórios.

Depois de criar o repositório:

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 local ou multirregional o local do repositório. É possível omitir 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 inclua dados sensíveis, já que as descrições do repositório não são criptografadas.

  • KMS-KEY: o caminho completo para a chave de 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 local ou multirregional o local do repositório. É possível omitir 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 inclua dados sensíveis, já que as descrições do repositório não são criptografadas.

  • KMS-KEY: o caminho completo para a chave de 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 usar tags que sempre apontam para o mesmo resumo de imagem.

    Por padrão, quando a sinalização --immutable-tags não é transmitida, uma tag pode ser movida para outro resumo de imagem. Para saber mais sobre tags de imagem imutáveis e mutáveis, consulte Versões de imagem 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 local ou multirregional o local do repositório. É possível omitir 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 inclua dados sensíveis, já que as descrições do repositório não são criptografadas.

  • KMS-KEY: o caminho completo para a chave de 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 local ou multirregional o local do repositório. É possível omitir 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 inclua dados sensíveis, já que as descrições do repositório não são criptografadas.

  • KMS-KEY: o caminho completo para a chave de 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 local ou multirregional o local do repositório. É possível omitir 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 inclua dados sensíveis, já que as descrições do repositório não são criptografadas.

  • KMS-KEY: o caminho completo para a chave de 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 do Maven armazenam as versões de snapshot e de lançamento dos pacotes. É possível especificar uma política de versão para criar um snapshot ou um repositório de lançamento.

Para criar um repositório que armazene snapshots e versões, execute o 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 local ou multirregional o local do repositório. É possível omitir 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 inclua dados sensíveis, já que as descrições do repositório não são criptografadas.

  • KMS-KEY: o caminho completo para a chave de 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.

    Para 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 como:
    • 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 será 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.

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 local ou multirregional o local do repositório. É possível omitir 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 inclua dados sensíveis, já que as descrições do repositório não são criptografadas.

  • KMS-KEY: o caminho completo para a chave de 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 local ou multirregional o local do repositório. É possível omitir 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 inclua dados sensíveis, já que as descrições do repositório não são criptografadas.

  • KMS-KEY: o caminho completo para a chave de 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 local ou multirregional o local do repositório. É possível omitir 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 inclua dados sensíveis, já que as descrições do repositório não são criptografadas.

  • KMS-KEY: o caminho completo para a chave de 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 ver uma descrição do repositório:

gcloud artifacts repositories describe REPOSITORY \
    --location=LOCATION

Depois de criar o repositório:

Criar um repositório usando o Terraform

Use o recurso google_artifact_registry_repository para criar repositórios. É necessário ter a versão 5.0.0 ou mais recente do terraform-provider-google.

Se você não tem experiência com o Terraform para Google Cloud, consulte a página Primeiros passos - Google Cloud no site da HashiCorp.

O exemplo a seguir define o provedor e um repositório com o nome de 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, já que as descrições do repositório não são criptografadas.
  • KEY é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK) para criptografia. Omita esse argumento para usar a configuração padrão, chaves de criptografia gerenciadas pelo Google.
  • DRY_RUN_STATUS determina se as políticas de limpeza excluem artefatos ou apenas registram quais artefatos seriam excluídos se as políticas de limpeza fossem definidas no repositório. Omita se não quiser adicionar políticas de limpeza ao repositório.

    • true: define as políticas para serem executadas no modo de teste. Nenhum artefato é excluído no modo de teste.
    • false: aplica as políticas de limpeza. Os artefatos são excluídos ou mantidos dependendo das 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. Os valores são tagged, untagged e any. any se aplica a artefatos com e sem tag. Se um repositório tiver tags imutáveis ativadas, os artefatos marcados não poderão ser excluídos.

  • TAG_PREFIX e TAG_PREFIX_N são prefixos de tags em que a política será aplicada.

  • PKG_PREFIX e PKG_PREFIX_N são prefixos de pacote em que a política será aplicada.

  • TIME_SINCE_UPLOAD é o tempo especificado como uma duração desde que uma versão de artefato foi enviada ao repositório. É possível especificar durações de segundos, minutos, horas ou dias anexando s, m, h ou d, respectivamente.

  • KEEP_COUNT é o número de versões de um artefato a serem mantidas no 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, já que as descrições do repositório não são criptografadas.
  • KEY é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK) para criptografia. Omita esse argumento para usar a configuração padrão, chaves de criptografia gerenciadas pelo Google.
  • DRY_RUN_STATUS determina se as políticas de limpeza excluem artefatos ou apenas registram quais artefatos seriam excluídos se as políticas de limpeza fossem definidas no repositório. Omita se não quiser adicionar políticas de limpeza ao repositório.

    • true: define as políticas para serem executadas no modo de teste. Nenhum artefato é excluído no modo de teste.
    • false: aplica as políticas de limpeza. Os artefatos são excluídos ou mantidos dependendo das 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. Os valores são tagged, untagged e any. any se aplica a artefatos com e sem tag. Se um repositório tiver tags imutáveis ativadas, os artefatos marcados não poderão ser excluídos.

  • TAG_PREFIX e TAG_PREFIX_N são prefixos de tags em que a política será aplicada.

  • PKG_PREFIX e PKG_PREFIX_N são prefixos de pacote em que a política será aplicada.

  • TIME_SINCE_UPLOAD é o tempo especificado como uma duração desde que uma versão de artefato foi enviada ao repositório. É possível especificar durações de segundos, minutos, horas ou dias anexando s, m, h ou d, respectivamente.

  • KEEP_COUNT é o número de versões de um artefato a serem mantidas no 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, já que as descrições do repositório não são criptografadas.
  • KEY é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK) para criptografia. Omita esse argumento para usar a configuração padrão, chaves de criptografia gerenciadas pelo Google.
  • DRY_RUN_STATUS determina se as políticas de limpeza excluem artefatos ou apenas registram quais artefatos seriam excluídos se as políticas de limpeza fossem definidas no repositório. Omita se não quiser adicionar políticas de limpeza ao repositório.

    • true: define as políticas para serem executadas no modo de teste. Nenhum artefato é excluído no modo de teste.
    • false: aplica as políticas de limpeza. Os artefatos são excluídos ou mantidos dependendo das 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. Os valores são tagged, untagged e any. any se aplica a artefatos com e sem tag. Se um repositório tiver tags imutáveis ativadas, os artefatos marcados não poderão ser excluídos.

  • TAG_PREFIX e TAG_PREFIX_N são prefixos de tags em que a política será aplicada.

  • PKG_PREFIX e PKG_PREFIX_N são prefixos de pacote em que a política será aplicada.

  • TIME_SINCE_UPLOAD é o tempo especificado como uma duração desde que uma versão de artefato foi enviada ao repositório. É possível especificar durações de segundos, minutos, horas ou dias anexando s, m, h ou d, respectivamente.

  • KEEP_COUNT é o número de versões de um artefato a serem mantidas no 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, já que as descrições do repositório não são criptografadas.
  • KEY é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK) para criptografia. Omita esse argumento para usar a configuração padrão, chaves de criptografia gerenciadas pelo Google.
  • DRY_RUN_STATUS determina se as políticas de limpeza excluem artefatos ou apenas registram quais artefatos seriam excluídos se as políticas de limpeza fossem definidas no repositório. Omita se não quiser adicionar políticas de limpeza ao repositório.

    • true: define as políticas para serem executadas no modo de teste. Nenhum artefato é excluído no modo de teste.
    • false: aplica as políticas de limpeza. Os artefatos são excluídos ou mantidos dependendo das 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. Os valores são tagged, untagged e any. any se aplica a artefatos com e sem tag. Se um repositório tiver tags imutáveis ativadas, os artefatos marcados não poderão ser excluídos.

  • TAG_PREFIX e TAG_PREFIX_N são prefixos de tags em que a política será aplicada.

  • PKG_PREFIX e PKG_PREFIX_N são prefixos de pacote em que a política será aplicada.

  • TIME_SINCE_UPLOAD é o tempo especificado como uma duração desde que uma versão de artefato foi enviada ao repositório. É possível especificar durações de segundos, minutos, horas ou dias anexando s, m, h ou d, respectivamente.

  • KEEP_COUNT é o número de versões de um artefato a serem mantidas no 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, já que as descrições do repositório não são criptografadas.
  • KEY é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK) para criptografia. Omita esse argumento para usar a configuração padrão, chaves de criptografia gerenciadas pelo Google.
  • DRY_RUN_STATUS determina se as políticas de limpeza excluem artefatos ou apenas registram quais artefatos seriam excluídos se as políticas de limpeza fossem definidas no repositório. Omita se não quiser adicionar políticas de limpeza ao repositório.

    • true: define as políticas para serem executadas no modo de teste. Nenhum artefato é excluído no modo de teste.
    • false: aplica as políticas de limpeza. Os artefatos são excluídos ou mantidos dependendo das 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. Os valores são tagged, untagged e any. any se aplica a artefatos com e sem tag. Se um repositório tiver tags imutáveis ativadas, os artefatos marcados não poderão ser excluídos.

  • TAG_PREFIX e TAG_PREFIX_N são prefixos de tags em que a política será aplicada.

  • PKG_PREFIX e PKG_PREFIX_N são prefixos de pacote em que a política será aplicada.

  • TIME_SINCE_UPLOAD é o tempo especificado como uma duração desde que uma versão de artefato foi enviada ao repositório. É possível especificar durações de segundos, minutos, horas ou dias anexando s, m, h ou d, respectivamente.

  • KEEP_COUNT é o número de versões de um artefato a serem mantidas no repositório.

Maven

Se você não especificar uma política de versão, o Artifact Registry vai criar um repositório Maven que armazena as versões de snapshot e de lançamento dos 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, já que as descrições do repositório não são criptografadas.
  • KEY é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK) para criptografia. Omita esse argumento para usar a configuração padrão, chaves de criptografia gerenciadas pelo Google.
  • DRY_RUN_STATUS determina se as políticas de limpeza excluem artefatos ou apenas registram quais artefatos seriam excluídos se as políticas de limpeza fossem definidas no repositório. Omita se não quiser adicionar políticas de limpeza ao repositório.

    • true: define as políticas para serem executadas no modo de teste. Nenhum artefato é excluído no modo de teste.
    • false: aplica as políticas de limpeza. Os artefatos são excluídos ou mantidos dependendo das 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. Os valores são tagged, untagged e any. any se aplica a artefatos com e sem tag. Se um repositório tiver tags imutáveis ativadas, os artefatos marcados não poderão ser excluídos.

  • TAG_PREFIX e TAG_PREFIX_N são prefixos de tags em que a política será aplicada.

  • PKG_PREFIX e PKG_PREFIX_N são prefixos de pacote em que a política será aplicada.

  • TIME_SINCE_UPLOAD é o tempo especificado como uma duração desde que uma versão de artefato foi enviada ao repositório. É possível especificar durações de segundos, minutos, horas ou dias anexando s, m, h ou d, respectivamente.

  • KEEP_COUNT é o número de versões de um artefato a serem mantidas no repositório.

    Para armazenar versões de snapshot e de lançamento em diferentes repositórios, especifique uma política de versão para o repositório usando um bloco maven_config. Esse bloco é compatível com as 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 lançamento. Essa é a configuração padrão.
    • LANÇAMENTO: armazene somente pacotes de lançamento.
    • SNAPSHOT: armazenar somente pacotes de snapshots.
  • allow_snapshot_overwrites configura um repositório com uma política de versão SNAPSHOT para aceitar snapshots não exclusivos que substituem as versões atuais no repositório.

    O exemplo a seguir define um repositório Maven com uma política de versão de lançamento.

    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, já que as descrições do repositório não são criptografadas.
  • KEY é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK) para criptografia. Omita esse argumento para usar a configuração padrão, chaves de criptografia gerenciadas pelo Google.
  • DRY_RUN_STATUS determina se as políticas de limpeza excluem artefatos ou apenas registram quais artefatos seriam excluídos se as políticas de limpeza fossem definidas no repositório. Omita se não quiser adicionar políticas de limpeza ao repositório.

    • true: define as políticas para serem executadas no modo de teste. Nenhum artefato é excluído no modo de teste.
    • false: aplica as políticas de limpeza. Os artefatos são excluídos ou mantidos dependendo das 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. Os valores são tagged, untagged e any. any se aplica a artefatos com e sem tag. Se um repositório tiver tags imutáveis ativadas, os artefatos marcados não poderão ser excluídos.

  • TAG_PREFIX e TAG_PREFIX_N são prefixos de tags em que a política será aplicada.

  • PKG_PREFIX e PKG_PREFIX_N são prefixos de pacote em que a política será aplicada.

  • TIME_SINCE_UPLOAD é o tempo especificado como uma duração desde que uma versão de artefato foi enviada ao repositório. É possível especificar durações de segundos, minutos, horas ou dias anexando s, m, h ou d, respectivamente.

  • KEEP_COUNT é o número de versões de um artefato a serem mantidas no 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, já que as descrições do repositório não são criptografadas.
  • KEY é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK) para criptografia. Omita esse argumento para usar a configuração padrão, chaves de criptografia gerenciadas pelo Google.
  • DRY_RUN_STATUS determina se as políticas de limpeza excluem artefatos ou apenas registram quais artefatos seriam excluídos se as políticas de limpeza fossem definidas no repositório. Omita se não quiser adicionar políticas de limpeza ao repositório.

    • true: define as políticas para serem executadas no modo de teste. Nenhum artefato é excluído no modo de teste.
    • false: aplica as políticas de limpeza. Os artefatos são excluídos ou mantidos dependendo das 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. Os valores são tagged, untagged e any. any se aplica a artefatos com e sem tag. Se um repositório tiver tags imutáveis ativadas, os artefatos marcados não poderão ser excluídos.

  • TAG_PREFIX e TAG_PREFIX_N são prefixos de tags em que a política será aplicada.

  • PKG_PREFIX e PKG_PREFIX_N são prefixos de pacote em que a política será aplicada.

  • TIME_SINCE_UPLOAD é o tempo especificado como uma duração desde que uma versão de artefato foi enviada ao repositório. É possível especificar durações de segundos, minutos, horas ou dias anexando s, m, h ou d, respectivamente.

  • KEEP_COUNT é o número de versões de um artefato a serem mantidas no 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, já que as descrições do repositório não são criptografadas.
  • KEY é o nome da chave do Cloud Key Management Service, se você estiver usando chaves de criptografia gerenciadas pelo cliente (CMEK) para criptografia. Omita esse argumento para usar a configuração padrão, chaves de criptografia gerenciadas pelo Google.
  • DRY_RUN_STATUS determina se as políticas de limpeza excluem artefatos ou apenas registram quais artefatos seriam excluídos se as políticas de limpeza fossem definidas no repositório. Omita se não quiser adicionar políticas de limpeza ao repositório.

    • true: define as políticas para serem executadas no modo de teste. Nenhum artefato é excluído no modo de teste.
    • false: aplica as políticas de limpeza. Os artefatos são excluídos ou mantidos dependendo das 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. Os valores são tagged, untagged e any. any se aplica a artefatos com e sem tag. Se um repositório tiver tags imutáveis ativadas, os artefatos marcados não poderão ser excluídos.

  • TAG_PREFIX e TAG_PREFIX_N são prefixos de tags em que a política será aplicada.

  • PKG_PREFIX e PKG_PREFIX_N são prefixos de pacote em que a política será aplicada.

  • TIME_SINCE_UPLOAD é o tempo especificado como uma duração desde que uma versão de artefato foi enviada ao repositório. É possível especificar durações de segundos, minutos, horas ou dias anexando s, m, h ou d, respectivamente.

  • KEEP_COUNT é o número de versões de um artefato a serem mantidas no repositório.

O Artifact Registry cria seu repositório. Execute o comando a seguir para ver uma descrição do repositório:

gcloud artifacts repositories describe REPOSITORY \
    --location=LOCATION

Depois de criar o repositório:

Editar descrições do repositório

É possível alterar a descrição do repositório no console do Google Cloud ou na CLI gcloud.

Console

  1. Abra a página Repositórios no console do Google Cloud.

    Abrir a página Repositórios

  2. Na lista de repositórios, selecione o repositório e clique em Editar repositório.

  3. 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 local ou multirregional local. Use esta sinalização para ver repositórios em um local específico. Se você configurou um local default, é possível omitir essa sinalização para usar o padrão.
  • DESCRIPTION: uma descrição para o repositório.

A seguir