Azure Machine Learning Studioのnotebooksでトークンをファイルから読み込む
[toc]
解決したいこと
Microsoft Azure Machine Learning Studioの notebooksからDatasetsにアクセスする方法は、オフィシャルドキュメントでは、トークンなどをべた書きする方法が紹介されていた。
これだと、notebookをエクスポートした場合などに不意に漏らしてしまいそうでちょっと怖い
クライアントライブラリを見ると、トークンをファイルに記載し読み込む機能もあるようなので、こちらを試した https://github.com/Azure/Azure-MachineLearning-ClientLibrary-Python#specify-workspace-via-config
ノートブックのカーネルは、python3
を使用
やりかた
https://github.com/mickey390/my-jupyternotebook-template/blob/master/For-MicrosoftAzureMachineLearningStudio/setting_test.ipynb こちらにもしたためたが、備忘のため、もう少し詳しく書いておく。
トークンを確認
settings.ini をローカルPCで作成
$ vi settings.ini [workspace] id=xxxxxxxxxxxx authorization_token=xxxxxxxxx api_endpoint=https://asiasoutheast.studioapi.azureml.net management_endpoint=https://management.azureml.net
settings.iniをnotebooksにアップロード
- メニューの[Data]->[Upload...]を押す ↓
- ダイアログが出るので、settings.iniを選択 ↓
- (なぜか、、、けっこう待つ ) ↓-
- 「Upload status」のダイアログが出てくる。
- アップロード先を選ぶが、「library」以外はセッションが切れると消えるそう。 「library」を選んだ。
settings.iniを指定のディレクトリに移動
※notebook上で実施
%%bash mv /home/nbuser/library/setting.ini ~/.azureml/settings.ini
#確認 ls -la ~/.azureml/settings.ini -rw-r--r-- 1 nbuser nbuser 208 Oct 11 04:58 /home/nbuser/.azureml/settings.ini
※ライブラリを見ると移動先は、~/.azureml/settings.ini
固定のようだ。
ワークスペースのファイルへアクセスできるか確認する
# クライアントライブラリを読み込み初期化 from azureml import Workspace ws = Workspace() # ワークスペースのユーザデータを一覧する for ds in ws.user_datasets: print(ds.name) train.csv gender_submission.csv test.csv logistic_regression_submission_2018100814361539009390.csv
できた!
まとめ
- azure初心者なので、結構時間がかかった
- 他の良い方法あれば教えてください
- Azure KeyVaultなるサービスを見かけたが、これは関係ないのかな