Azure Machine Learning Studioのnotebooksでトークンをファイルから読み込む

[toc]

解決したいこと

Microsoft Azure Machine Learning Studioの notebooksからDatasetsにアクセスする方法は、オフィシャルドキュメントでは、トークンなどをべた書きする方法が紹介されていた。

https://docs.microsoft.com/ja-jp/azure/machine-learning/team-data-science-process/python-data-access#clientApis

これだと、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 こちらにもしたためたが、備忘のため、もう少し詳しく書いておく。

トークンを確認

  •  idとauthorization_token
    • こちらから確認
    •  あるいは、「Microsoft Azure Machine Learning Studio」の「settings」から確認
  •  api_endpoin
  •  management_endpoint
    •  なにか不明。とりあえず適当でも動いた

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

できた!

まとめ