今回は、前回ご紹介した 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
サインインしておきます。
※この操作には「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
新規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」が追加されていることが確認できました。
次回はPowerShellを使ったバッチ処理についてご紹介します。
次回もお楽しみに!!