Almacenar paquetes de Python en Artifact Registry

En esta guía de inicio rápido se muestra cómo configurar un repositorio privado de Python de Artifact Registry, subir un paquete y, a continuación, instalarlo.

Antes de empezar

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

      Ir a IAM
    2. Selecciona el proyecto.
    3. Haz clic en Conceder acceso.
    4. En el campo Nuevos principales, introduce tu identificador de usuario. Normalmente, se trata de la dirección de correo de una cuenta de Google.

    5. En la lista Selecciona un rol, elige un rol.
    6. Para conceder más roles, haz clic en Añadir otro rol y añade cada rol adicional.
    7. Haz clic en Guardar.
  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

      Ir a IAM
    2. Selecciona el proyecto.
    3. Haz clic en Conceder acceso.
    4. En el campo Nuevos principales, introduce tu identificador de usuario. Normalmente, se trata de la dirección de correo de una cuenta de Google.

    5. En la lista Selecciona un rol, elige un rol.
    6. Para conceder más roles, haz clic en Añadir otro rol y añade cada rol adicional.
    7. Haz clic en Guardar.
  10. Abrir Cloud Shell

    En esta guía de inicio rápido, usarás Cloud Shell, un entorno de shell para gestionar recursos alojados enGoogle Cloud.

    Cloud Shell tiene preinstaladas la CLI de Google Cloud y Python. La CLI de gcloud proporciona la interfaz de línea de comandos principal de Google Cloud.

    Abre Cloud Shell:

    1. Ve a la Google Cloud consola.

      Google Cloud console

    2. En la barra de herramientas de la consola Google Cloud , haz clic en Activar Cloud Shell: .

    Se abrirá una sesión de Cloud Shell en un marco de la parte inferior de la consola. Esta shell se usa para ejecutar comandos gcloud.

    Instalación de los paquetes necesarios

    Twine es una herramienta para publicar paquetes de Python. Usarás Twine para subir un paquete a Artifact Registry.

    En esta guía de inicio rápido, usarás la instalación de Python incluida en Cloud Shell. Esta instalación predeterminada incluye el backend del llavero de Artifact Registry para gestionar la autenticación con Artifact Registry. Si creas un entorno virtual o configuras Python fuera de Cloud Shell, debes instalar el backend de keyring para la autenticación. Para obtener más información, consulta Autenticación con llavero.

    Para instalar Twine, ejecuta el comando:

    pip install twine
    

    Ya puedes configurar Artifact Registry.

    Crear un repositorio

    Crea el repositorio de tus paquetes.

    1. Ejecuta el siguiente comando para crear un repositorio de paquetes de Python en el proyecto actual llamado quickstart-python-repo en la ubicación us-central1.

      gcloud artifacts repositories create quickstart-python-repo \
          --repository-format=python \
          --location=us-central1 \
          --description="Python package repository"
      
    2. Ejecuta el siguiente comando para verificar que se ha creado el repositorio:

      gcloud artifacts repositories list
      
    3. Para simplificar los comandos de gcloud, define el repositorio predeterminado como quickstart-python-repo y la ubicación predeterminada como us-central1. Una vez definidos los valores, no es necesario especificarlos en los comandos gcloud que requieran un repositorio o una ubicación.

      Para definir el repositorio, ejecuta el comando:

      gcloud config set artifacts/repository quickstart-python-repo
      

      Para definir la ubicación, ejecuta el comando:

      gcloud config set artifacts/location us-central1
      

      Para obtener más información sobre estos comandos, consulta la documentación de gcloud config set.

    Configurar la autenticación

    El backend del llavero de Artifact Registry busca tus credenciales mediante las credenciales predeterminadas de la aplicación (ADC), una estrategia que busca credenciales en tu entorno.

    En esta guía de inicio rápido, aprenderás a hacer lo siguiente:

    • Genera credenciales de usuario para ADC. En un entorno de producción, debes usar una cuenta de servicio y proporcionar las credenciales con la variable de entorno GOOGLE_APPLICATION_CREDENTIALS.
    • Incluya la URL del repositorio de Artifact Registry en los comandos pip y twine para no tener que configurar pip y Twine con la URL del repositorio.

    Para generar credenciales para ADC, ejecuta el siguiente comando:

    gcloud auth application-default login
    

    Para obtener información sobre los métodos de autenticación y cómo añadir repositorios a la configuración de pip y Twine, consulta Configurar la autenticación en repositorios de paquetes de Python.

    Obtener un paquete de ejemplo

    Cuando compilas un proyecto de Python, los archivos de distribución se guardan en un subdirectorio dist del proyecto de Python. Para simplificar esta guía de inicio rápido, descargarás archivos de paquetes precompilados.

    1. Crea una carpeta de proyecto de Python llamada python-quickstart.

      mkdir python-quickstart
      
    2. Crea un subdirectorio llamado dist y, a continuación, cambia al directorio.

      mkdir python-quickstart/dist
      cd python-quickstart/dist
      
    3. Descarga los paquetes de Python de ejemplo que se usan en el tutorial de la guía del usuario de empaquetado de Python Empaquetar proyectos de Python.

      pip download sampleproject
      

      El comando descarga el paquete sampleproject y su dependencia, peppercorn.

    Sube el paquete al repositorio.

    Usa Twine para subir tus paquetes a tu repositorio.

    1. En el directorio dist, cambia al directorio principal python-quickstart.

      cd ..
      
    2. Sube los paquetes al repositorio desde tu directorio dist.

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

      Cuando ejecutas el comando con python3 -m, Python localiza twine y ejecuta el comando. Si el comando twine está en la ruta del sistema, puedes ejecutarlo sin python3 -m.

    Twine sube tanto sampleproject como peppercorn a tu repositorio.

    Ver el paquete en el repositorio

    Para verificar que se ha añadido el paquete, enumera los paquetes del repositorio quickstart-python-repo.

    Ejecuta el siguiente comando:

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

    Para ver las versiones de un paquete, ejecuta el siguiente comando:

    gcloud artifacts versions list --package=PACKAGE
    

    Donde PACKAGE es el ID del paquete.

    Instalar el paquete

    Ejecuta el siguiente comando para instalar el paquete:

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

    Solución de problemas

    De forma predeterminada, herramientas como pip y Twine no devuelven mensajes de error detallados. Si se produce un error, vuelve a ejecutar el comando con la marca --verbose para obtener un resultado más detallado. Consulta Solución de problemas de paquetes de Python para obtener más información.

    Limpieza

    Para evitar que se apliquen cargos en tu cuenta de Google Cloud por los recursos utilizados en esta página, sigue estos pasos.

    Antes de quitar el repositorio, asegúrate de que los paquetes que quieras conservar estén disponibles en otra ubicación.

    Para eliminar el repositorio, sigue estos pasos:

    1. Para eliminar el repositorio quickstart-python-repo, ejecuta el siguiente comando:

      gcloud artifacts repositories delete quickstart-python-repo
      
    2. Si quieres quitar los ajustes predeterminados de repositorio y ubicación que has configurado para la configuración gcloud activa, ejecuta los siguientes comandos:

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

    Siguientes pasos