1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

watsonx.ai StudioのJupyter Notebookで環境変数をファイルから読み込む

Last updated at Posted at 2025-03-26

CP4DaaSでwatsonx.ai StudioのJupyter Notebookで環境変数を読み込む方法を考えます。
APIKEYなどをプログラムにハードコーティングするのは再利用やセキュリティの観点から望ましくありません。そのため環境変数を別途定義して、Notebookから読み込んで使うことが多いと思います。

watsonx.ai Studioでは環境テンプレートの中に環境変数を記述する方法はこの記事で紹介したのですが、複数の環境テンプレートがある場合には、一つのファイルに記述した環境変数を読みたいということもあると思います。

この記事では環境変数を書いたファイルをプロジェクトの資産として配置してそのファイルから環境変数を読み込んでみます。

環境変数を書いたファイルのアップロード

以下のように環境変数を書いたファイル(ここではconfig.env)をローカルに用意します。

config.env
APIKEY=xxxxx

image.png

プロジェクトの資産タブの「アップロード」アイコンをクリックし、ファイルをドラッグアンドドロップしてアップロードします。
image.png

以下のようにアップロードされました。
image.png

プロジェクト・アクセス・トークンの発行

次に、プロジェクト内のファイルにアクセスするために必要なプロジェクト・アクセス・トークンを準備します。

プロジェクトの管理タブの「アクセス制御」の「アクセス・トークン」から「新規アクセス・トークン」をクリックします。

image.png

適当な名前を付けます。(ここでは250326wstoken)。使いたいロールをEditorViewerかを選択します。環境変数の書かれたファイルを読み取るだけならViewerで構いません。「作成」をクリックします。

image.png

以下のように^ボタンを開くとトークンが作られています。

image.png

これをコピーしておいてもよいのですが、watsonx.ai StudioのJuypter Notebookにはこのトークンを自動挿入する機能がありますのでそれを使ってみます。

Notebookでの環境変数取得

新規のNotebookを作成します。
適当な名前をつけ、「作成」をクリックします。

image.png

image.png

アクション・バーの「...」のメニューから「プロジェクト・トークンの挿入」をクリックします。

以下のようにaccess_project_or_spaceにアクセス・トークンが記載され、wslibというオブジェクトができます(ちなみにここではprojectというオブジェクトもできていますが、現在は非推奨であるため、wslibを使います)。

image.png

これでwslib.download_fileでプロジェクトからNotebookの動く仮想環境にファイルがダウンロードできます。

wslib.download_file("config.env")

image.png

後はdotenvで環境変数を書いたファイルを読み込み、os.environ.getで環境変数を読むことができます。

from dotenv import load_dotenv
load_dotenv('config.env')
import os
os.environ.get("APIKEY")

{B3492185-19AE-45B3-A4FF-E546BB3DD6B5}.png

環境テンプレートとのあわせ技

ちなみにこの方法だとアクセス・トークンがハード・コーディングされてしまうのが、嫌かもしれません。
その場合、アクセス・トークンだけでも環境テンプレートの環境変数に書いておくという方法もあると思います。

image.png

import os
TOKEN = os.environ.get("TOKEN")

from ibm_watson_studio_lib import access_project_or_space
wslib = access_project_or_space({'token':TOKEN})

wslib.download_file("config.env")
from dotenv import load_dotenv
load_dotenv('config.env')
os.environ.get("APIKEY")

TOKENを環境テンプレートから取り出して、APIKEYはconfig.envから取り出しています。
image.png

参考

watsonx.ai StudioのJupyter Notebookで環境変数を読み込む #Watson-Studio - Qiita

ibm-watson-studio-lib ( Python 用) - Docs | IBM Cloud Pak for Data as a Service

1
0
2

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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?