1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Python でローカル開発の環境変数を利用してみました

Posted at

概要

ServicePrincipal を使用したローカル開発時に Azure サービスに対して Python アプリを実行して 何かごにょごにょ したいとき、その ServicePrincipal の環境変数を定義し利用する方法の説明となります

実行環境

macOS Ventura 13.0
python 3.8.12
Azure CLI 2.41.0

前提条件

  • 利用する ServicePrincipal をすでに作成済みで必要となる情報を取得していること
$ az ad sp create-for-rbac --name <ServicePrincipal名> --skip-assignment --years 2
{
  "appId": "53435343-7d7d-4548-adcd-ds22aa88ff22",
  "displayName": "sp_iturufestest",
  "password": "mim9Q~kk11HHyy55toE_HHeeeW2BiSCrrr22CaCa",
  "tenant": "59175917-aacc-4646-55ff-33fffcc666ff"
}
  • python-dotenv パッケージをインストールしていること
pip install python-dotenv

.env ファイルの作成

Pythonアプリケーションのルート ディレクトリに .env ファイルを作成します。 次のように、アプリ登録プロセス(ServicePrincipal作成)時に取得した値を使用して環境変数の値を設定します。

AZURE_CLIENT_ID=(ServicePrincipal の "appId" 値)
AZURE_TENANT_ID=(ServicePrincipal の "tenant" 値)
AZURE_CLIENT_SECRET=(ServicePrincipal の "password" 値)

環境変数を取得するプログラム

上記で設定したローカル環境変数を取得する pythonプログラムは以下となります。すでに定義されているグローバル環境変数を上書きする設定も入れています。

local_env.py
import os
from dotenv import load_dotenv

load_dotenv(override=True)  # <-- グローバル環境変数を上書きします
load_dotenv(".env")

CLIENT_ID = os.environ.get("AZURE_CLIENT_ID")
TENANT_ID = os.environ.get("AZURE_TENANT_ID")
CLIENT_KEY = os.environ.get("AZURE_CLIENT_SECRET")

print("AZURE_CLIENT_ID : ", CLIENT_ID)
print("AZURE_TENANT_ID : ", TENANT_ID)
print("AZURE_CLIENT_SECRET : ", CLIENT_KEY)

プログラムの実行

グローバル環境変数を取得してみます。

$ env | grep AZURE_
AZURE_CLIENT_ID=38313831-ebeb-3333-8008-dddb22228264
AZURE_TENANT_ID=59175917-aacc-4646-55ff-33fffcc666ff
AZURE_CLIENT_SECRET=77NIzGrrr44_YYUIcer~rrr-Y-yyyxxx~q

作成したプログラムからローカル環境変数を取得してみます。

$ python local_env.py
AZURE_CLIENT_ID :  53435343-7d7d-4548-adcd-ds22aa88ff22
AZURE_TENANT_ID :  59175917-aacc-4646-55ff-33fffcc666ff
AZURE_CLIENT_SECRET :  mim9Q~kk11HHyy55toE_HHeeeW2BiSCrrr22CaCa

まとめ

これで ServicePrincipal 環境変数をローカル定義することにより、ローカル開発したPythonプログラムをサクッと実行させることが可能となりました。

参考記事

以下の記事を参考にさせていただきました。感謝申し上げます。
python-dotenvを使って環境変数を設定する

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?