Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Développement à distance avec PyCharm et Google Cloud

By Gad BenramJul 28, 20214 min read

Cette page est également disponible en English, Deutsch, Español, Italiano, 日本語 et Português.

1 bdxltaqkftyo6rue7gd6wa

Tutoriel rapide pour configurer PyCharm et l'exécuter sur une instance GCP distante via un interpréteur SSH distant

Quel est notre objectif ?

Écrire du code sur votre portable, mais l'exécuter sur une machine Google Cloud distante dotée de plus de RAM et de CPU.

Lors du développement d'une application Python, il est souvent pratique d'exécuter le code sur une instance GCP (AI Notebook / Google Compute Engine). C'est particulièrement utile, car le code de Machine Learning (ML) ou de traitement de données nécessite souvent une machine haut de gamme avec plusieurs CPU et beaucoup de RAM.

Autre avantage : exécuter le code à distance permet de s'authentifier auprès des autres services Google Cloud Platform via le compte de service associé à l'instance. À l'issue de ce tutoriel, vous pourrez utiliser PyCharm depuis votre Mac, le code étant exécuté à distance sur une VM GCP.

Prérequis

Pour démarrer, il vous faut :

  1. PyCharm Pro installé sur votre machine Mac/Linux
  2. Un compte GCP actif

C'est parti

Étape 1 : configurer une clé SSH sur votre Mac [1]

Exécutez la commande suivante dans votre terminal Mac/Linux pour générer une nouvelle paire de clés SSH :

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

1 r06nwvz9wruvwklgwj 6yq

J'ai choisi de ne pas définir de phrase secrète et j'ai nommé la clé temp_key.

Formater la clé publique

Affichez le contenu de la clé publique de la paire SSH que vous venez de créer avec la commande suivante :

cat ./ssh/temp_key.pub

Copiez le contenu de la clé dans le presse-papiers, depuis la mention ssh-rsa (incluse) jusqu'au signe = (avant le nom d'utilisateur).

1 m n27uzc8h8aivavyczy a

Ouvrez un éditeur de texte et formatez la clé ainsi :

ssh-rsa [KEY VALUE]= [USER_NAME]

Conservez ce texte pour la suite.

Étape 2 : créer ou modifier une VM sur GCP

Il vous faut maintenant une machine dans le cloud. J'aime utiliser les AI Notebooks, car ces machines sont préinstallées avec un environnement Python orienté IA qui inclut de nombreuses bibliothèques de data science, de ML et Google Cloud. Pour créer un notebook, suivez ce guide.

À noter : les AI Notebooks (désormais intégrés à Vertex AI) reposent sur une instance Compute Engine sous-jacente. Que vous ayez créé une instance Compute Engine simple ou un AI Notebook, vous devrez la modifier pour autoriser l'accès distant via SSH. PyCharm pourra ainsi copier les fichiers vers vos machines et se connecter à l'interpréteur Python.

Modifier la machine d'un AI Notebook

L'instance de notebook nommée my-instance présente les détails suivants :

1 fxpja9fsj 2b zxqwo4n7q

En cliquant sur VIEW VM DETAILS, puis sur EDIT, vous pouvez modifier les caractéristiques du Compute Engine qui héberge l'AI Notebook. Faites défiler jusqu'à SSH Keys, puis ouvrez la liste déroulante show and edit.

1 c 1c vq izuw4nli9ykrow

Cliquez sur Add item et collez la clé SSH formatée en ajoutant un nom d'utilisateur à la fin. Si l'opération réussit, votre nom d'utilisateur s'affiche à gauche de la clé.

1 p04b ctdojiepetr7yf 9a

Vous pouvez aussi configurer une adresse IP externe statique pour la machine, afin que son IP publique reste identique à chaque redémarrage.

Étape 3 : configurer PyCharm !

Votre machine accepte désormais les connexions SSH avec la paire de clés que vous avez créée. Il ne reste plus qu'à autoriser PyCharm à déployer et exécuter le code sur cette machine distante. Copiez l'adresse IP externe de la machine ; elle apparaît dans les détails de la VM lorsque celle-ci est en cours d'exécution.

1 xelbs1iorhcgvc3jnaahjg

Ouvrez ensuite PyCharm > Preferences > Project:[nom] > Python interpreter > roue Options > add.

1 lu5iza1kxtamoolwg9whga

Dans le champ Host, saisissez l'adresse IP externe de la machine ; dans Username, indiquez le nom d'utilisateur défini lors de la création de la clé. Cliquez sur Next pour que PyCharm tente d'établir la connexion avec la VM. Vous devrez ensuite fournir les identifiants de connexion.

1 hvwjy fdihcgaof fdsc1g

Dans le champ private key file, indiquez l'emplacement de la clé privée SSH (/[user]/.ssh/temp_key dans notre cas, celle sans l'extension .pub).

Cliquez sur Next, et c'est terminé ! En bas à droite de l'écran, vous verrez que l'interpréteur correspond désormais à votre environnement Python distant. La première exécution peut demander quelques minutes, le temps de copier les fichiers d'aide PyCharm sur la machine distante et de synchroniser les environnements Python.

1 dbx9mlwi3w44hh2ytjnkcw

Pour aller plus loin : plusieurs environnements Python

Il arrive que plusieurs environnements Python soient installés sur la machine distante. Vous pouvez par exemple avoir un environnement conda sur votre AI Notebook. Pour choisir celui à utiliser, modifiez la configuration de votre interpréteur distant.

Accédez aux paramètres de l'interpréteur depuis le menu en bas à droite de PyCharm :

1 t4ywmlyyumxjdp0t3jyfgg

Modifiez à nouveau les paramètres de votre interpréteur existant :

1 a3qlc6qcmnnyav5b g7v9w

Dans python interpreter path, collez l'emplacement de votre installation Python sur la machine distante.

1 0ucmormtf2sklwocpwlp g

En résumé

En complément de ce tutoriel, voici quelques ressources utiles. Pour approfondir la configuration avancée de l'interpréteur Python dans PyCharm, consultez ce guide publié par JetBrains. Vous souhaitez aller plus loin sur la configuration de votre clé SSH sur les instances GCP ? Consultez cette ressource.

Bonne productivité !


Merci de votre lecture ! Pour rester informé, suivez-nous sur le DoiT Engineering Blog, la page LinkedIn DoiT et le compte Twitter DoiT. Pour découvrir nos opportunités de carrière, rendez-vous sur https://careers.doit.com.