Armazenar pacotes Python no Artifact Registry

Neste guia de início rápido, mostramos como configurar um repositório Python privado do Artifact Registry fazer upload e instalar um pacote.

Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Artifact Registry API.

    Enable the API

  5. Make sure that you have the following role or roles on the project: Artifact Registry Administrator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Acessar o IAM
    2. Selecionar um projeto.
    3. Clique em CONCEDER ACESSO.
    4. No campo Novos principais, insira seu identificador de usuário. Normalmente, é o endereço de e-mail de uma Conta do Google.

    5. Na lista Selecionar um papel, escolha um.
    6. Para conceder outros papéis, clique em Adicionar outro papel e adicione cada papel adicional.
    7. Clique em Salvar.
  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Make sure that billing is enabled for your Google Cloud project.

  8. Enable the Artifact Registry API.

    Enable the API

  9. Make sure that you have the following role or roles on the project: Artifact Registry Administrator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Acessar o IAM
    2. Selecionar um projeto.
    3. Clique em CONCEDER ACESSO.
    4. No campo Novos principais, insira seu identificador de usuário. Normalmente, é o endereço de e-mail de uma Conta do Google.

    5. Na lista Selecionar um papel, escolha um.
    6. Para conceder outros papéis, clique em Adicionar outro papel e adicione cada papel adicional.
    7. Clique em Salvar.

Iniciar o Cloud Shell

Neste guia de início rápido, você vai usar o Cloud Shell, um ambiente shell para gerenciar recursos hospedados noGoogle Cloud.

O Cloud Shell vem pré-instalado com a Google Cloud CLI e o Python. A CLI gcloud fornece a principal interface de linha de comando para Google Cloud.

Inicie o Cloud Shell

  1. Acesse o console do Google Cloud .

    Google Cloud console

  2. Na barra de ferramentas do console Google Cloud , clique em Ativar o Cloud Shell:

Uma sessão do Cloud Shell é aberta dentro de um quadro inferior no console. Use esse shell para executar comandos gcloud.

Instalar os pacotes necessários

O Twine é uma ferramenta para publicar pacotes Python. Você vai usar o Twine para fazer upload de um pacote para o Artifact Registry.

Neste guia de início rápido, você usa a instalação do Python incluída no Cloud Shell. A instalação padrão inclui o backend do keyring do Artifact Registry: para processar a autenticação com o Artifact Registry. Se você criar um ambiente virtual ou configurar o Python fora do Cloud Shell, instale o back-end do keyring para autenticação. Para mais detalhes, consulte Autenticação com keyring.

Para instalar o Twine, execute o comando:

pip install twine

Agora você está pronto para configurar o Artifact Registry.

Criar um repositório

Crie o repositório para seus pacotes.

  1. Execute o seguinte comando para criar um novo repositório de pacotes Python no projeto atual chamado quickstart-python-repo no local us-central1.

    gcloud artifacts repositories create quickstart-python-repo \
        --repository-format=python \
        --location=us-central1 \
        --description="Python package repository"
    
  2. Execute o seguinte comando para verificar se o repositório foi criado:

    gcloud artifacts repositories list
    
  3. Para simplificar os comandos gcloud, defina o repositório padrão como quickstart-python-repo e o local padrão como us-central1. Depois que os valores forem definidos, não será necessário especificá-los nos comandos gcloud que exigem um repositório ou local.

    Para definir o repositório, execute o comando:

    gcloud config set artifacts/repository quickstart-python-repo
    

    Para definir o local, execute o comando:

    gcloud config set artifacts/location us-central1
    

    Saiba mais sobre esses comandos na documentação do gcloud config set.

Configurar a autenticação

O back-end do keyring do Artifact Registry encontra suas credenciais usando o Application Default Credentials (ADC), uma estratégia que procura credenciais no seu ambiente.

Neste guia de início rápido, você vai:

  • Gere credenciais de usuário para o ADC. Em um ambiente de produção, use uma conta de serviço e forneça credenciais com a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS.
  • Inclua o URL do repositório do Artifact Registry nos comandos pip e twine para não precisar configurar o pip e o Twine com o URL do repositório.

Para gerar credenciais para o ADC, execute o seguinte comando:

gcloud auth application-default login

Para detalhes sobre métodos de autenticação e como adicionar repositórios à configuração do pip e do Twine, consulte Configurar a autenticação para repositórios de pacotes Python.

Extrair um pacote de exemplo

Ao criar um projeto em Python, os arquivos de distribuição são salvos em um subdiretório dist no projeto. Para simplificar este guia de início rápido, você vai baixar arquivos de pacote pré-criados.

  1. Crie uma pasta de projeto do Python chamada python-quickstart.

    mkdir python-quickstart
    
  2. Crie um subdiretório chamado dist e mude para ele.

    mkdir python-quickstart/dist
    cd python-quickstart/dist
    
  3. Faça o download dos pacotes Python de exemplo usados no tutorial do Guia do usuário de pacotes Python Pacotes de projetos Python.

    pip download sampleproject
    

    O comando baixa o pacote sampleproject e a dependência dele, peppercorn.

Fazer upload do pacote para o repositório

Use o Twine para fazer upload dos pacotes no repositório.

  1. No diretório dist, mude para o diretório pai python-quickstart.

    cd ..
    
  2. Faça upload dos pacotes para o repositório no diretório dist.

    python3 -m twine upload --repository-url https://us-central1-python.pkg.dev/PROJECT_ID/quickstart-python-repo/ dist/*
    

    Quando você executa o comando com python3 -m, o Python localiza o twine e executa o comando. Se o comando twine estiver no caminho do sistema, você poderá executá-lo sem python3 -m.

O Twine faz upload de sampleproject e peppercorn para seu repositório.

Ver o pacote no repositório

Para verificar se o pacote foi adicionado, liste os pacotes no repositório quickstart-python-repo.

Execute este comando:

gcloud artifacts packages list --repository=quickstart-python-repo

Para ver as versões de um pacote, execute o seguinte comando:

gcloud artifacts versions list --package=PACKAGE

Em que PACKAGE é o ID do pacote.

Instale o pacote

Execute o comando a seguir para instalar o pacote:

pip install --index-url https://us-central1-python.pkg.dev/PROJECT_ID/quickstart-python-repo/simple/ sampleproject

Solução de problemas

Por padrão, ferramentas como pip e Twine não retornam mensagens de erro detalhadas. Se ocorrer um erro, execute o comando novamente com a flag --verbose para receber uma saída mais detalhada. Consulte Solução de problemas para pacotes Python para mais informações.

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, siga estas etapas.

Antes de remover o repositório, verifique se os pacotes que você quer manter estão disponíveis em outro local.

Para excluir o repositório:

  1. Para excluir o repositório quickstart-python-repo, execute o seguinte comando:

    gcloud artifacts repositories delete quickstart-python-repo
    
  2. Se você quiser remover as configurações padrão de repositório e localização que definiu para a configuração ativa gcloud, execute os seguintes comandos:

    gcloud config unset artifacts/repository
    gcloud config unset artifacts/location
    

A seguir