Comment préfixer le fichier avec des commandes personnalisées lors du débogage dans PyCharm?


funghorn

Cette question est très similaire à celle-ci mais pour PyCharm.

J'ai besoin d'utiliser aws-vault pour accéder aux ressources AWS dans mon script, mais cela semble impossible à accomplir en mode de débogage PyCharm. Il permet de saisir le chemin du script, les paramètres, les variables d'environnement et il existe également des fonctionnalités d'outils externes, mais aucun de ces éléments ne fonctionne.

Voici le format qui fonctionne en shell:

aws-vault exec ${AWS_PROFILE} -- script.py

Je pensais être presque arrivé à une solution en utilisant des outils externes et en définissant le programme sur "aws-vault" et ses arguments sur "exec your-profile - $ FilePath $", mais il veut exécuter le script dans $ FilePath $, terminez et seulement après la fin exécutez le script débogué dans PyCharm (qui est le même que celui inséré par $ FilePath $).

Comment cela fonctionnerait pour mon cas en exécutant le script nécessaire en mode débogage en conjonction avec un outil externe, de sorte que le script entre dans les arguments de l'outil externe et s'exécute comme une seule commande.

Il existe des moyens de gérer cela en lançant PyCharm à partir de la ligne de commande avec aws-vault comme préfixe ou en modifiant son fichier .desktop et en écrivant le préfixe directement dans le champ Exec, mais l'application doit être redémarrée lorsque le profil AWS doit être modifié .

Toutes les idées seraient appréciées, merci.

Klaas janv.

J'ai pu le faire en installant le plugin envfile dans PyCharm. Ce plugin peut lire un fichier .env lors du démarrage d'un processus. En gros, j'ai fait ce qui suit:

  1. Créez un script qui génère un fichier .env envfile.envet nommez le scriptgenerate.sh
  2. Ce generate.shscript est un script shell qui fait essentiellement aws-vault exec $AWS_PROFILE -- env | grep AWS_ > envfile.env:, donc tous les creds aws sont dans le envfile.env. Ajoutez éventuellement d'autres variables d'environnement si vous en avez besoin.
  3. Exécutez la commande ci-dessus au moins une fois.
  4. Installez le plugin envfile dans pycharm.
  5. Dans la configuration Exécuter, un nouvel onglet apparaît avec «EnvFile». Dans cet onglet, activez EnvFile. Ajoutez le généré envfile.env(voir précédent).
  6. Faites Tool / External Tools et créez un outil externe pour le generate.sh. De cette façon, vous pouvez exécuter le script depuis PyCharm.
  7. Encore une fois, dans la configuration Exécuter, ajoutez un avant le lancement qui exécute l'outil externe generate.sh.

Attention, les aws-creds temporaires sont en clair envfile.env.

Articles connexes