Python 環境変数 (Env Vars): 入門書

王林
リリース: 2024-08-23 06:03:01
オリジナル
818 人が閲覧しました

Python 開発者は、API キー、API シークレット、データベース名など、他の人に見られたくないデータを扱うことがよくあります。

プログラマがこれらのシークレットを保存する方法の 1 つは、環境変数に保存することです。この記事では、Python での環境変数の使用について知っておくべきことをすべて学びます。 Python 環境変数の設定方法、取得方法、すべての秘密を安全に保つためのさまざまな方法を紹介します。最後に、Vonage での実際の使用例を紹介します。

記事を読み進めるには、以下のリンクを使用してください:

  • 環境変数とは何ですか?
  • Python で環境変数を使用する方法
  • Python 環境変数を取得する方法
  • Python 環境変数を設定する方法
  • Python 環境変数を保存する方法 (5 つの方法)
  • ボーナス: 外部 API での環境変数の使用

環境変数とは何ですか?

環境変数 (「環境変数」とも呼ばれます) は、プログラムの外部に保存する変数で、プログラムの実行方法に影響を与える可能性があります。たとえば、API のキーとシークレットを含む環境変数を設定できます。プログラムは API に接続するときにこれらの変数を使用する可能性があります。

ソース コードの代わりにシークレットを環境に保存すると、いくつかの利点があります。

  • セキュリティ: 環境変数は、API キーやパスワードなどの機密データを保護するのに役立ちます。たとえば、ソース コードをダウンロードした人が、使用している API キーにアクセスしたくない場合があります。
  • 構成管理: 環境変数を使用すると、構成設定の保存と管理が簡単になります。
  • 移植性: コードを変更せずに、アプリケーションをさまざまな環境に適応させることができます。たとえば、コードの動作がオペレーティング システムごとに異なる場合、環境変数を使用してこれを管理できます。
  • テストとデバッグ: 開発者は、コードを変更するのではなく、環境変数を調整することで、テストとデバッグを簡素化できます。

本質的に、環境変数を使用すると、プログラム自体を変更せずにプログラムの動作を変更できます。

環境変数はオペレーティング システムに保存できますが、環境変数を使用する他の方法もあります。それについては後ほど説明します。

Python で環境変数を使用する方法

このチュートリアルを進めるには、マシンに Python がインストールされている必要があります。 Python は、Python の公式 Web サイトからダウンロードしてインストールできます。

組み込みの OS モジュールを使用して、Python で環境変数を取得および設定します。

Python 環境変数を取得する方法

次のコードを Python ファイルに保存し、この Python プログラムを実行すると、プログラム内のすべての環境変数を表示できます。

このコードを実行すると、Python インタープリターはオペレーティング システムのすべての環境変数を出力する必要があります。 Python 辞書のように、os.environ 内のさまざまな環境変数にアクセスできます。 Python で環境変数を取得する 2 つの方法は次のとおりです:

上記の Python コードの最後の 2 行は同じことを行っており、どちらもオペレーティング システムから USER 環境変数を取得しています。ただし、最初の方法を使用する場合、変数が見つからない場合、Python は例外をスローします。

Python アプリケーションの実行に環境変数が必要な場合は os.environ['MY_ENVIRONMENT_VARIABLE'] を使用し、オプションの場合は os.environ.get('MY_ENVIRONMENT_VARIABLE') を使用することをお勧めします。

環境変数を設定する方法

Python で環境変数を設定するには、辞書を使用する場合と同様に、環境変数を os.environ オブジェクトに追加できます。ただし、文字列はインタプリタが実行されているシェルに直接渡されるため、文字列のみが許可されます。

環境変数を更新するには、まったく同じ方法で環境変数をオーバーライドします。

Python 環境変数を保存する方法 (5 つの方法)

環境変数を保存したい理由はさまざまであるため、環境変数を保存する方法もさまざまです。ローカル マシンに何かを設定するだけで済む場合もありますが、実稼働環境でアプリケーションを実行する必要がある場合もあります。これらの使用例では、異なるアプローチが必要です。

以下では、Python の環境変数を保存する 5 つの方法を示します。

  1. オペレーティング システム ストレージ
  2. ファイルストレージ
  3. クラウドストレージ
  4. ユニバーサル シークレット マネージャー ストレージ
  5. CI/CD システムストレージ

環境変数をオペレーティング システムに保存する

何かをすぐに設定したいだけの場合、Python を使用して環境変数を作成したくない場合があります。幸いなことに、これはコマンドラインから実行できます。ここで挙げる例は Unix 系システム (Mac、Linux など) で動作しますが、Windows を使用している場合は、このチュートリアルで環境変数を取得および設定する方法を学ぶことができます。

前の例では、USER はオペレーティング システムによって設定された環境変数であり、コンピュータを誰が使用しているかを表します。この変数はオペレーティング システムによって自動的に作成されますが、独自の環境変数を作成することもできます。

コマンド ラインを開いて次のように入力すると、コマンド ラインからすべての環境変数を確認できます (Unix 系システムの場合)。

エクスポート

これにより、コマンドライン シェルがアクセスできるすべての環境変数のリストが表示されます。

コマンドラインで環境変数を作成する方法は次のとおりです:

VONAGE_API=your_api をエクスポート

これにより、VONAGE_API という変数が作成され、その値が your_api に設定されます。次のように任意の変数の値を出力できます:

$VONAGE_API をエコー

上記のコードを実行すると、出力として your_api が表示されます。

環境変数をファイルに保存する

ターミナル/コマンドラインを使用して新しい環境変数を作成すると、その環境変数はそのセッションに対してのみ存在します。ターミナルを閉じると、環境変数は存在しなくなります。プログラミングをしているときは、コードを実行するたびに環境変数を使用できるように、環境変数を永続化したいと思うことがよくあります。これを実現する 1 つの方法は、それらをファイル (.env ファイルなど) に保存することです。

.env ファイルを使用して環境変数を保存する方法を示すサンプル プロジェクトを作成してみましょう。

まず、ターミナルを使用してこのチュートリアル用の新しいフォルダーを作成し、そのフォルダーに移動して、その中に .env ファイルを作成します。

mkdir env_variables_tutorial cd env_variables_tutorial touch .env

次の行を .env ファイルに追加します。

VONAGE_API=your_api

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

これで Python 仮想環境に入りました。必要なパッケージをインストールできます。

pip install python-dotenv

これで、このパッケージの dotenv モジュールを使用して、.env ファイルから Python が os モジュールでアクセスできる環境に環境変数をロードできるようになります。次の内容の Python ファイルを作成します:

load_dotenv 関数は、環境変数を .env ファイルから os.environ に取り込み、オペレーティング システムによって設定される他の環境変数と同様に使用できます。

環境変数をクラウドに保存する方法

実稼働用のソフトウェアを作成する場合、おそらくそれをコンピューターから実行することはありません。代わりに、サーバー上でコードを実行する可能性が高くなります。

つまり、運用環境でコードを実行するどこからでも環境変数を設定および取得する方法を知る必要があります。

ここにクラウド プロバイダーのリストと、それらを使用した環境変数の処理に関する詳細情報を入手できます:

  • AWS
  • Azure アプリ
  • Azure 関数
  • Google クラウド機能
  • ヒーローク
  • Dockerfile
  • Docker 実行

CI/CD システムに環境変数を保存する

GitHub Actions、CircleCI、Travis、Jenkins などのクラウドベースの CI/CD システムを使用している場合は、環境変数をシステムに保存することもできます。

プロジェクトに GitHub を使用している場合は、[設定] タブに移動し、[セキュリティ] の [シークレットと変数] 設定で API キーなどを設定することで、リポジトリの設定に環境変数を保存できます。 "。

Python Environment Variables (Env Vars): A Primer

ここで、オプションをクリックして値を設定することで、新しいリポジトリ シークレットを作成できます。これは、GitHub Actions の実行で利用できるようになります。

Python Environment Variables (Env Vars): A Primer

GitHub Actions、CircleCI、Travis、Jenkins を使用した環境変数の設定に関する情報や、他のプロバイダーに関する情報が数多くあります。

Universal Secrets Manager を使用して環境変数を保存する

シークレットを .env ファイルに保存すると環境変数は保持されますが、いくつか問題があります。

たとえば、10 人のチームに所属しているとします。誰もが .env ファイル内のシークレットを追跡しており、シークレットの 1 つが変更されます (新しい API キーを取得したとします)。その場合、10 人全員が .env ファイルを更新する必要があり、あまり効率的ではありません。

あるいは、Heraku から AWS に切り替えることにした場合はどうなりますか?その場合、新しいプラットフォームでシークレットを扱う方法を学ぶ必要があり、追加の作業が必要になります。

これらの問題を解決するために、一部のプログラマーは Doppler のようなユニバーサル シークレット マネージャーを使用します。ユニバーサル シークレット マネージャーを使用すると、シークレットを 1 か所に保存できるため、チームの全員がシークレットにアクセスできます。

Python Environment Variables (Env Vars): A Primer

ユニバーサル シークレット マネージャーを使用すると、シークレットはローカル マシンやクラウド プロバイダーから独立しているため、コードを実行する場所に関係なくシークレットを持ち運ぶことができます。

ボーナス: 外部 API での環境変数の使用

外部 API のサンプル プロジェクトまたはサンプル コード スニペットを使用している場合、使いやすくするためのツールが所有者/メンテナーによって提供されることがあります。多くの場合、ツールを最適にセットアップするには環境変数を使用する必要があります。

Vonage では、SMS の送信、電話の発信、確認コードの送信、不正スコアのチェックなどのために、Python コード サンプルの環境変数を利用しています。

Vonage の Number Insight API を使用して、いくつかの電話番号に関する情報を取得したいとします。この場合、このようなコード サンプルを使用して、Python で迅速に動作させることができます。

このサンプル コードを使用するには、まず Vonage アカウントを作成し (ご心配なく、無料です!)、API 呼び出しを認証するための API キーとシークレットを取得します。

次に、https://github.com/Vonage/vonage-python-code-snippets/ でリポジトリのクローンを作成します。これが完了したら、新しい Python 仮想環境を作成し、

で必要な依存関係をインストールします。

入力した電話番号に関する情報が表示されるはずです。これは、Python ファイル自体を編集する必要がなく、Vonage の Number Insight API を使用して環境変数から電話番号を検索したことを意味します。これは、環境変数を使用することの大きな利点です。

deactivate # 以前の仮想環境がまだアクティブな場合は、 python3 -m venv venv 。 ./venv/bin/activate pip install -rrequirements.txt

最後に、.env.dist ファイルの名前を .env に変更し、API キーとシークレットをファイルに追加し、INSIGHT_NUMBER の値を検索する番号に変更します。これで、

を使用してコードを実行する準備が整いました。

pythonnumber-insight/ni-basic.py

入力した電話番号に関する情報が表示されるはずです。これは、Python ファイル自体を編集する必要がなく、Vonage の Number Insight API を使用して環境変数から電話番号を検索したことを意味します。これは、環境変数を使用することの大きな利点です。

最終的な考え

環境変数の取得と設定は、実稼働ソフトウェアの作成に不可欠な部分です。このチュートリアルを完了すると、Python を使用して環境変数を取得および設定する方法を理解できるようになります。

また、シークレットを保存するためのさまざまなオプション (OS を使用してシークレットを一時的に設定する、.env ファイルにシークレットを保存する、クラウドに保存する、ユニバーサル シークレット マネージャーを使用する) についても理解できました。どの方法を使用するかは、取り組んでいるプロジェクトの状況によって異なります。さらに詳しく読みたい場合は、環境変数での秘密キーの使用に関するこの投稿に詳しい情報が記載されています。

Vonage API の使用を開始したい場合は、無料の開発者アカウントにサインアップできます (無料クレジット付き!)。このチュートリアルについてご質問がある場合は、Vonage コミュニティ Slack でお気軽にご連絡ください。または、以前は Twitter として知られていた X でメッセージを送ってください。

それでは、独自の Python プロジェクトで環境変数を使用してみましょう!

以上がPython 環境変数 (Env Vars): 入門書の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!