Azure Machine LearningをPowerShellで操作してみた。② (プレビュー)

今回は、前回ご紹介した AZURE MACHINE LEARNINGをPOWERSHELLで操作する モジュール「AzureMLPS」を使い、新規Workspaceの作成やExperimentのエクスポート、インポートをする方法をご紹介します。

AzureMLPSには新規Workspaceの作成やExperimentをjson形式でエクスポート、インポートする機能が備わっています。

この機能を使って、既存のWorkspaceからExperimentをエクスポートし、新規作成したWorkspaceにインポートをしてみます。

※本記事にはAzureクラシックポータルでの操作が含まれており、今後仕様が変更になる場合があります。

Workspaceの新規作成

まずWorkspaceの新規作成ですが、作成にあたってAzureに「管理証明書」を登録しておく必要があります。

PowerShell で下記のコマンドを実行して自己証明書の作成とcerファイルのエクスポートを行います。

自己証明書の作成

$cert = New-SelfSignedCertificate -CertStoreLocation cert:\CurrentUser\My -
Subject 'CN=TestAzureManagement_Cert' -KeySpec KeyExchange -
KeyExportPolicy Exportable -HashAlgorithm SHA256

公開鍵をcerファイルとしてエクスポート

Export-Certificate -Cert $cert -Type CERT -FilePath 'C:\AzureMLPS\mycert.cer'

作成されたcerファイルをAzureに登録します。

Azureクラシックポータルの「設定」から「管理証明書」タブを選択し、「アップロード」をクリックします。

先ほど作成したcerを選択し、右下のチェックをクリックします。

管理証明書がアップロードできたら、下記コマンドによりサムプリントを確認しておきます。

(dir Cert:\CurrentUser\My | where Subject -eq
'CN=TestAzureManagement_Cert').Thumbprint

続いて、Workspaceの作成に「ストレージアカウントキー」が必要になるため、下記コマンドによりPowerShellでAzureに

サインインしておきます。

※この操作には「Azure PowerShell」のインストールが必要になります。

Add-AzureAccount
Get-AzureSubscription
Select-AzureSubscription -SubscriptionId <サブスクリプションID>

以上の操作が完了したらPowerShell で新規Workspaceを作成していきます。

下記のコマンドを実行することで、既存のWorkspaceと同じストレージアカウントに新規Workspaceが作成されます。

AzureMLPSモジュールのインポート

Import-Module .\AzureMLPS.dll
#Workspace情報の取得
$ws = Get-AmlWorkspace
#管理証明書のサムプリントの取得
$thum = (dir Cert:\CurrentUser\My | where Subject -eq
'CN=TestAzureManagement_Cert').Thumbprint
#ストレージアカウントキーの取得
$key = Get-AzureStorageKey -StorageAccountName $ws.UserStorage
#Workspace名の設定
$name = ‘<WorkspaceName (任意の名称)>’

#Worksapceの新規作成
New-AmlWorkspace -ManagementCertThumbprint $thum -AzureSubscriptionId
$ws.SubscriptionId -WorkspaceName $name -Location $ws.Region -
StorageAccountName $ws.UserStorage -StorageAccountKey $key.Primary -
OwnerEmail $ws.OwnerEmail

ExperimentのエクスポートおよびインポートWorkspaceの作成ができたところで、既存のWorkspaceからExperimentをエクスポートし

新規Workspaceへインポートします。

今回は「Run Selected – Sample」というExperimentをエクスポートし、「New – Run Selected」という名称で新規Workspaceにインポートします。

まずは、下記のコマンドによりExperimentをjson形式でエクスポートします。

OutputFileオプションにはファイル名を指定します。実行すると指定したフォルダにjsonファイルが出力されます。

$exp = Get-AmlExperiment | where Description -eq '<Experiment名>'
Export-AmlExperimentGraph -ExperimentId $exp.ExperimentId -OutputFile ‘.\<ファイル名>.json'

続いて、出力したjsonファイルを新規Workspaceにインポートしますが、その前にAzureMLPSの「config.json」をコピーして新規Workspace用の設定ファイルを作成しておきます。

新規Workspace用設定ファイルを作成したら、下記のコマンドにてExperimentをインポートします。

InputFileに出力したExperimentのjsonファイル、NewNameに新しいExperiment名、ConfigFileに新規Workspace用config.jsonの絶対パスを指定します。

> Import-AmlExperimentGraph -InputFile '<Experimentのjsonファイル>' -
NewName ‘<新しいExperiment名(任意)>’ -ConfigFile ‘<新規Workspace用config.json
(絶対パス)>’

「New – Run Selected」が追加されていることが確認できました。

いかがでしたか?エクスポート機能はWorkspaceの整理だけでなくExperimentのバックアップとしても重宝するのではないでしょうか。

次回はPowerShellを使ったバッチ処理についてご紹介します。

次回もお楽しみに!!

この記事を書いた人

azure-recipe-user