Variables d'environnement Python (Env Vars) : une introduction

王林
Libérer: 2024-08-23 06:03:01
original
835 Les gens l'ont consulté

Les développeurs Python traitent souvent des données qu'ils ne veulent pas que quiconque voie, comme les clés API, les secrets API, les noms de bases de données, etc.

Les programmeurs stockent ces secrets dans des variables d'environnement. Dans cet article, vous apprendrez tout ce que vous devez savoir sur l'utilisation des variables d'environnement en Python. Nous vous montrerons comment définir les variables d'environnement Python, comment les obtenir et les différentes manières de protéger tous vos secrets. Nous terminerons par un exemple concret de la façon dont nous les utilisons ici chez Vonage.

Utilisez les liens ci-dessous pour avancer dans l'article :

  • Que sont les variables d'environnement ?
  • Comment utiliser les variables d'environnement en Python
  • Comment obtenir des variables d'environnement Python
  • Comment définir les variables d'environnement Python
  • Comment stocker les variables d'environnement Python (5 méthodes)
  • Bonus : Utilisation de variables d'environnement avec des API externes

Que sont les variables d’environnement ?

Les variables d'environnement (parfois appelées « vars env ») sont des variables que vous stockez en dehors de votre programme et qui peuvent affecter son fonctionnement. Par exemple, vous pouvez définir des variables d'environnement contenant la clé et le secret d'une API. Votre programme peut alors utiliser ces variables lorsqu'il se connecte à l'API.

Stocker vos secrets dans votre environnement au lieu de votre code source présente quelques avantages :

  • Sécurité : les variables d'environnement vous aident à protéger les données sensibles telles que les clés API et les mots de passe. Par exemple, vous ne souhaiterez peut-être pas que quiconque télécharge votre code source accède à une clé API que vous utilisez.
  • Gestion de la configuration : grâce aux variables d'environnement, il est facile de stocker et de gérer les paramètres de configuration.
  • Portabilité : vous pouvez adapter les applications à différents environnements sans modifier le code. Par exemple, si votre code se comporte différemment sur différents systèmes d'exploitation, vous pouvez utiliser une variable d'environnement pour gérer cela.
  • Tests et débogage : les développeurs peuvent simplifier les tests et le débogage en ajustant les variables d'environnement plutôt qu'en modifiant le code.

Essentiellement, les variables d'environnement vous permettent de modifier le comportement de votre programme sans changer le programme lui-même.

Vous pouvez stocker des variables d'environnement dans votre système d'exploitation, mais il existe d'autres façons de les utiliser que nous découvrirons prochainement.

Comment utiliser les variables d'environnement en Python

Pour suivre ce tutoriel, vous devez avoir Python installé sur votre machine. Vous pouvez installer Python en le téléchargeant depuis le site officiel de Python.

Vous obtenez et définissez des variables d'environnement en Python à l'aide du module OS intégré.

Comment obtenir des variables d'environnement Python

Vous pouvez afficher toutes les variables d'environnement de votre programme en enregistrant le code suivant dans un fichier Python, puis en exécutant ce programme Python :

Votre interpréteur Python doit imprimer toutes les variables d'environnement de votre système d'exploitation lors de l'exécution de ce code. Vous pouvez accéder aux différentes variables d'environnement dans os.environ comme un dictionnaire Python. Voici deux façons d'obtenir des variables d'environnement avec Python :

Les deux dernières lignes de votre code Python ci-dessus font la même chose : les deux obtiennent la variable d'environnement USER de votre système d'exploitation. Cependant, lorsque vous utilisez la première méthode, Python lève une exception s'il ne trouve pas la variable.

Une bonne pratique consiste à utiliser os.environ['MY_ENVIRONMENT_VARIABLE'] si la variable d'environnement est requise pour l'exécution de votre application Python et os.environ.get('MY_ENVIRONMENT_VARIABLE') si elle est facultative.

Comment définir les variables d'environnement

Pour définir des variables d'environnement en Python, vous pouvez les ajouter à l'objet os.environ comme vous le feriez avec un dictionnaire. Cependant, seules les chaînes sont autorisées, car elles sont transmises directement au shell dans lequel votre interpréteur s'exécute.

Pour mettre à jour une variable d'environnement, remplacez-la simplement exactement de la même manière :

Comment stocker les variables d'environnement Python (5 méthodes)

Il existe différentes raisons pour lesquelles vous souhaiterez peut-être stocker des variables d'environnement, il existe donc également différentes manières de les stocker. Parfois, vous avez simplement besoin de définir quelque chose sur votre machine locale, alors que dans d'autres cas, vous devrez peut-être exécuter votre application en production - ces cas d'utilisation nécessitent des approches différentes !

Ci-dessous, nous allons vous montrer cinq façons de stocker des variables d'environnement pour Python :

  1. Stockage du système d'exploitation
  2. Stockage de fichiers
  3. Stockage cloud
  4. Stockage universel Secret Manager
  5. Stockage du système CI/CD

Stocker les variables d'environnement sur votre système d'exploitation

Parfois, vous ne souhaitez pas créer une variable d'environnement via Python si vous souhaitez simplement définir quelque chose rapidement. Heureusement, cela peut être fait via la ligne de commande. Les exemples que je vais donner ici fonctionnent pour les systèmes de type Unix (Mac, Linux, etc.), mais si vous utilisez Windows, vous pouvez apprendre à obtenir et définir des variables d'environnement dans ce didacticiel.

Dans l'exemple précédent, USER était une variable d'environnement définie par votre système d'exploitation, représentant qui utilise votre ordinateur. Bien que votre système d'exploitation crée cette variable automatiquement, vous pouvez également créer vos propres variables d'environnement.

Vous pouvez voir toutes les variables d'environnement à partir de votre ligne de commande en ouvrant une ligne de commande et en tapant ce qui suit (sur un système de type Unix) :

exporter

Cela vous donnera une liste de toutes les variables d'environnement auxquelles votre shell de ligne de commande a accès.

Voici comment créer une variable d'environnement sur votre ligne de commande :

export VONAGE_API=votre_api

Cela crée une variable appelée VONAGE_API et définit sa valeur sur your_api. Vous pouvez imprimer la valeur de n’importe quelle variable comme ceci :

écho $VONAGE_API

Lorsque vous exécutez le code ci-dessus, vous verrez your_api comme sortie.

Stocker les variables d'environnement dans des fichiers

Lorsque vous créez une nouvelle variable d'environnement à l'aide de votre terminal/ligne de commande, elle n'existe que pour cette session. Lorsque vous fermez votre terminal, la variable d'environnement n'existe plus. Souvent, lorsque vous programmez, vous souhaitez que vos variables d'environnement persistent afin qu'elles puissent être utilisées à chaque fois que vous exécutez votre code. Une façon d'y parvenir est de les stocker dans un fichier : par exemple, un fichier .env.

Créons un exemple de projet pour montrer comment utiliser un fichier .env pour stocker des variables d'environnement.

Tout d'abord, utilisez votre terminal pour créer un nouveau dossier pour ce tutoriel, accédez-y et créez un fichier .env à l'intérieur :

mkdir env_variables_tutorial cd env_variables_tutorial touch .env

Ajoutez cette ligne à votre fichier .env :

VONAGE_API=votre_api

python3 -m venv venv . ./venv/bin/activate

Maintenant, nous sommes dans un environnement virtuel Python, nous pouvons installer le package dont nous avons besoin.

pip install python-dotenv

Maintenant, nous pouvons utiliser le module dotenv de ce package pour charger les variables d'environnement du fichier .env dans l'environnement auquel Python peut accéder avec le module os. Créez un fichier Python avec le contenu suivant :

La fonction load_dotenv amène les variables d'environnement du fichier .env dans os.environ, qui peuvent ensuite être utilisées comme n'importe quelle autre variable d'environnement définie par votre système d'exploitation.

Comment stocker des variables d'environnement dans le cloud

Lorsque vous créez un logiciel pour la production, vous ne l'exécuterez probablement pas depuis votre ordinateur. Au lieu de cela, vous exécuterez probablement votre code sur un serveur.

Cela signifie que vous devez savoir comment définir et obtenir des variables d'environnement partout où vous exécutez votre code en production.

Voici une liste de fournisseurs de cloud et où vous pouvez obtenir plus d'informations sur la gestion des variables d'environnement en les utilisant :

  • AWS
  • Applications Azure
  • Fonctions Azure
  • Fonctions Google Cloud
  • Héroku
  • Fichier Docker
  • Exécution Docker

Stocker les variables d'environnement dans les systèmes CI/CD

Si vous utilisez des systèmes CI/CD basés sur le cloud tels que GitHub Actions, CircleCI, Travis ou Jenkins, vous pouvez également stocker des variables d'environnement dans leurs systèmes.

Si vous utilisez GitHub pour votre projet, vous pouvez stocker des variables d'environnement dans les paramètres de votre dépôt en accédant à l'onglet "Paramètres" et en définissant les clés API, etc., dans le paramètre "Secrets et variables" sous "Sécurité". ".

Python Environment Variables (Env Vars): A Primer

Ici, vous pouvez créer un nouveau secret de référentiel en cliquant sur l'option et en définissant les valeurs. Ceci sera désormais disponible dans vos exécutions GitHub Actions.

Python Environment Variables (Env Vars): A Primer

Il existe de nombreuses informations sur la configuration des variables d'environnement avec GitHub Actions, ainsi que CircleCI, Travis et Jenkins, ainsi que des informations pour d'autres fournisseurs.

Stocker les variables d'environnement avec un Universal Secrets Manager

Le stockage de vos secrets dans un fichier .env conserve vos variables d'environnement mais pose quelques problèmes.

Par exemple, disons que vous faites partie d'une équipe de dix personnes. Tout le monde suit ses secrets dans des fichiers .env, et l'un des secrets change (disons que vous obtenez une nouvelle clé API). Dans ce cas, dix personnes doivent toutes mettre à jour leur fichier .env, ce qui n'est pas très efficace.

Ou, que se passe-t-il si vous décidez de passer de Heroku à AWS ? Dans ce cas, vous devrez apprendre à gérer les secrets sur une nouvelle plateforme, ce qui nécessite un travail supplémentaire.

Pour résoudre ces problèmes, certains programmeurs utilisent un gestionnaire de secrets universel comme Doppler. Un gestionnaire de secrets universel vous permet de stocker vos secrets au même endroit, afin que tous les membres de votre équipe puissent y accéder.

Python Environment Variables (Env Vars): A Primer

Avec un gestionnaire de secrets universel, vos secrets sont indépendants de votre machine locale ou d'un fournisseur de cloud, vous pouvez donc les emporter avec vous, peu importe où vous exécutez votre code.

Bonus : utilisation de variables d'environnement avec des API externes

Parfois, si vous utilisez un exemple de projet d'API externe ou des exemples d'extraits de code, des outils sont fournis par le propriétaire/mainteneur pour faciliter son utilisation. Souvent, vous devrez utiliser des variables d’environnement pour configurer les outils de manière optimale.

Chez Vonage, nous utilisons des variables d'environnement dans nos exemples de code Python pour envoyer des SMS, passer des appels téléphoniques, envoyer des codes de vérification, vérifier les scores de fraude et bien plus encore.

Disons que vous souhaitez utiliser l'API Number Insight de Vonage pour obtenir des informations sur certains numéros de téléphone. Dans ce cas, vous souhaiterez peut-être utiliser un exemple de code comme celui-ci pour que les choses fonctionnent rapidement en Python.

Pour utiliser cet exemple de code, créez d'abord un compte Vonage (ne vous inquiétez pas, c'est gratuit !) pour obtenir une clé API et un secret pour authentifier vos appels API.

Ensuite, clonez le dépôt sur https://github.com/Vonage/vonage-python-code-snippets/. Une fois cela fait, créez un nouvel environnement virtuel Python et installez les dépendances requises avec

Vous devriez voir des informations sur le numéro de téléphone que vous avez saisi, ce qui signifie que vous avez utilisé l'API Number Insight de Vonage pour rechercher le numéro de téléphone à partir de vos variables d'environnement, sans avoir besoin de modifier le fichier Python lui-même ! C'est un avantage majeur de l'utilisation de variables d'environnement.

désactiver # si l'environnement virtuel précédent est toujours actif python3 -m venv venv . ./venv/bin/activate pip install -r exigences.txt

Enfin, renommez le fichier .env.dist en .env et ajoutez votre clé API et votre secret au fichier, ainsi que modifiez la valeur de INSIGHT_NUMBER pour qu'elle soit le numéro que vous souhaitez rechercher. Vous êtes maintenant prêt à exécuter le code avec

python number-insight/ni-basic.py

Vous devriez voir des informations sur le numéro de téléphone que vous avez saisi, ce qui signifie que vous avez utilisé l'API Number Insight de Vonage pour rechercher le numéro de téléphone à partir de vos variables d'environnement, sans avoir besoin de modifier le fichier Python lui-même ! C'est un avantage majeur de l'utilisation de variables d'environnement.

Pensées finales

L'obtention et la définition de variables d'environnement sont une partie essentielle de la création d'un logiciel de production. Si vous avez terminé ce didacticiel, vous savez maintenant comment obtenir et définir des variables d'environnement à l'aide de Python.

Vous comprenez également désormais vos différentes options pour stocker vos secrets : les définir temporairement à l'aide de votre système d'exploitation, les stocker dans un fichier .env, les conserver dans le cloud et utiliser un gestionnaire de secrets universel. La méthode que vous utiliserez dépendra des circonstances du projet sur lequel vous travaillez. Si vous souhaitez en savoir plus, cet article sur l'utilisation des clés privées dans les variables d'environnement contient plus d'informations.

Si vous souhaitez commencer à utiliser les API Vonage, vous pouvez créer un compte de développeur gratuit (avec des crédits gratuits !). Si vous avez des questions sur ce didacticiel, n'hésitez pas à nous contacter sur notre Slack de la communauté Vonage et à demander nous là-bas ou en nous envoyant un message sur X, anciennement connu sous le nom de Twitter.

Maintenant, allez-y et essayez d'utiliser des variables d'environnement dans vos propres projets Python !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal