Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Desarrollo remoto con PyCharm y Google Cloud

By Gad BenramJul 28, 20214 min read

Esta página también está disponible en English, Deutsch, Français, Italiano, 日本語 y Português.

1 bdxltaqkftyo6rue7gd6wa

Tutorial rápido para configurar PyCharm y ejecutarlo en una instancia remota de GCP mediante un intérprete remoto por ssh

¿Qué buscamos lograr?

Escribe el código en tu laptop, pero ejecútalo en una máquina remota de Google Cloud con más RAM y CPU.

Al desarrollar una aplicación en Python, suele ser práctico ejecutar el código en una instancia de GCP (AI Notebook / Google Compute Engine). Esto resulta especialmente útil porque el código de Machine Learning (ML) o de procesamiento de datos suele requerir una máquina potente con varios CPUs y bastante RAM.

Otra ventaja es que, al ejecutarse de forma remota, el código se autentica frente a otros servicios de Google Cloud Platform usando la cuenta de servicio asociada a la instancia. Al terminar este tutorial, podrás usar PyCharm desde tu Mac mientras el código se ejecuta de forma remota en una VM de GCP.

Requisitos previos

Para empezar, necesitas lo siguiente:

  1. PyCharm Pro instalado en tu máquina Mac/Linux
  2. Una cuenta activa de GCP

Manos a la obra

Paso 1: Configura una llave ssh en tu Mac [1]

Ejecuta el siguiente comando en tu terminal de Mac/Linux para generar un nuevo par de llaves ssh:

ssh-keygen -t rsa -f ~/.ssh/[KEY_FILENAME]

1 r06nwvz9wruvwklgwj 6yq

En mi caso opté por no definir una passphrase para la llave y la nombré temp_key.

Da formato a la llave pública

Imprime el contenido del valor de la llave pública del par que creaste con el siguiente comando:

cat ./ssh/temp_key.pub

Copia al portapapeles el contenido de la llave, desde la cadena ssh-rsa (incluida) hasta el signo "=" (antes del nombre de usuario).

1 m n27uzc8h8aivavyczy a

Abre cualquier editor de texto y dale a la llave el siguiente formato:

ssh-rsa [KEY VALUE]= [USER_NAME]

Conserva este texto para más adelante.

Paso 2: Crea o edita una VM en GCP

Ahora necesitas una máquina en la nube. A mí me gusta usar AI Notebooks porque vienen con un entorno de Python para AI preinstalado que incluye varias librerías de data science, ML y Google Cloud. Para crear un notebook, sigue esta guía.

Ten en cuenta que los AI Notebooks (ahora parte de Vertex AI) crean por debajo una instancia de Compute Engine. Tras crear una instancia simple de Compute Engine o un AI Notebook, deberás editarla para habilitar el acceso remoto vía SSH. Así PyCharm podrá copiar archivos a tus máquinas y conectarse al intérprete de Python.

Editar la máquina de un AI Notebook

La instancia del notebook llamada "my-instance" presenta los siguientes detalles:

1 fxpja9fsj 2b zxqwo4n7q

Al hacer clic en "VIEW VM DETAILS" y luego en "EDIT" puedes modificar las especificaciones del compute engine que aloja el AI Notebook. Desplázate hasta SSH Keys y abre la lista desplegable: "show and edit".

1 c 1c vq izuw4nli9ykrow

Haz clic en "Add item" y pega la llave ssh con el formato adecuado, agregando un nombre de usuario al final. Si todo salió bien, tu nombre de usuario aparecerá a la izquierda de la llave.

1 p04b ctdojiepetr7yf 9a

También puedes configurar una IP externa estática para la máquina, así te aseguras de que su IP pública no cambie cada vez que la reinicies.

Paso 3: ¡Configura PyCharm!

Tu máquina ya puede aceptar conexiones SSH con el par de llaves que creaste. Lo único que falta es permitir que PyCharm despliegue y ejecute el código en esa máquina remota. Copia la IP externa de la máquina; aparece en los detalles de la VM cuando esta está en ejecución.

1 xelbs1iorhcgvc3jnaahjg

Después abre PyCharm > Preferences > Project:[name] > Python interpreter > ícono de opciones > add.

1 lu5iza1kxtamoolwg9whga

En Host, ingresa la IP externa de la máquina; en Username, escribe el nombre del usuario que utilizaste al crear la llave. Haz clic en "Next" para que PyCharm intente establecer la conexión con la VM. Después tendrás que proporcionar las credenciales correctas.

1 hvwjy fdihcgaof fdsc1g

Apunta el campo "private key file" a la ubicación de la llave privada ssh (en nuestro caso /[user]/.ssh/temp_key, la que no tiene la extensión .pub).

Haz clic en next, ¡y listo! Verás que el intérprete ahora es tu entorno remoto de Python en la esquina inferior derecha de la pantalla. La primera vez puede tardar unos minutos en copiar los archivos auxiliares de PyCharm a la máquina remota y sincronizar los entornos de Python.

1 dbx9mlwi3w44hh2ytjnkcw

Avanzado: múltiples entornos de Python

A veces hay más de un entorno de Python instalado en la máquina remota. Por ejemplo, puede que tengas un entorno conda en tu AI Notebook. Puedes elegir con cuál trabajar editando la configuración de tu intérprete remoto.

Accede a la configuración del intérprete desde el menú inferior derecho de PyCharm:

1 t4ywmlyyumxjdp0t3jyfgg

De nuevo, edita la configuración de tu intérprete actual:

1 a3qlc6qcmnnyav5b g7v9w

En "python interpreter path", pega la ubicación de tu instalación de Python en la máquina remota.

1 0ucmormtf2sklwocpwlp g

Resumen

Además del tutorial anterior, quiero compartirte un par de recursos. Puedes profundizar en la configuración avanzada del intérprete de Python en PyCharm con esta guía de JetBrains. ¿Te interesa la configuración avanzada de tu llave SSH en instancias de GCP? Revisa este recurso.

¡A seguir produciendo!


¡Gracias por leer! Para mantenerte al día, síguenos en el DoiT Engineering Blog , el canal de LinkedIn de DoiT y el canal de Twitter de DoiT . Para conocer las oportunidades laborales, visita https://careers.doit.com .