英語で読む

次の方法で共有


PowerShell クライアント モジュール

Orleans PowerShell クライアント モジュールは、GrainClient をラップする一連の PowerShell コマンドレットです。 便利な一連のコマンドが用意されており、PowerShell スクリプトを使用して通常の Orleans アプリケーションと同様、ManagementGrain "だけでなく"、IGrain とやりとりできます。

これらのコマンドレットを使用すると、PowerShell スクリプトを利用して、メンテナンス タスクの開始、テスト、監視、またはその他の種類の自動化から一連のシナリオを実現できます。

モジュールのインストール

ソースからこのモジュールをインストールするには、OrleansPSUtils プロジェクトを使用してビルドし、それを、次を使用してインポートしてください。

PowerShell
Import-Module .\projectOutputDir\Orleans.psd1

これを行うことができますが、PowerShell ギャラリーからインストールする、はるかに簡単で興味深い方法があります。 PowerShell モジュールは Nuget パッケージと同様に簡単に共有できますが、nuget.org ではなく、PowerShell ギャラリーでホストされます。

PowerShell ギャラリーからこのモジュールをインストールするには、望ましいフォルダーで次のコマンドを実行してください。

PowerShell
Save-Module -Name OrleansPSUtils -Path <path>

PowerShell モジュール パス (推奨される方法) にインストールするには、次を実行してください。

PowerShell
Install-Module -Name OrleansPSUtils

Azure Automation でこのモジュールを使用する予定の場合は、こちらのリンクをお使いください

モジュールを使う

インストール方法に関係なく、次を実行してコマンドレットを使用できるように、現在の PowerShell セッションにモジュールをインポートする必要があります。

PowerShell
Import-Module OrleansPSUtils

重要

ソースからビルドする場合は、モジュール名を使用する代わりに .psd1 へのパスを使用して「モジュールのインストール」セクションで提案されているようにインポートする必要があります。これは、$env:PSModulePath PowerShell ランタイム変数上にはないためです。 代わりに、PowerShell ギャラリーからインストールすることを強くお勧めします。

モジュールがインポートされた後 (つまり、PowerShell セッションに読み込まれると)、次のコマンドレットを使用できます。

  • Start-GrainClient
  • Stop-GrainClient
  • Get-Grain

GrainClient を開始します。

このモジュールは、GrainClient.Initialize() とそのオーバーロードのラッパーです。

Start-GrainClient

GrainClient.Initialize() への呼び出しと同じで、既知 Orleans のクライアント構成ファイル名が検索されます。

PowerShell
Start-GrainClient [-ConfigFilePath] <string> [[-Timeout] <timespan>]

上記のコマンドでは、GrainClient.Initialize(filePath) のように指定されたファイル パスが使用されます。

PowerShell
Start-GrainClient [-ConfigFile] <FileInfo> [[-Timeout] <timespan>]

上記のコマンドでは、GrainClient.Initialize(fileInfo) と同じように構成ファイルを表す FileInfo クラスのインスタンスが使用されます。

PowerShell
Start-GrainClient [-Config] <ClientConfiguration> [[-Timeout] <timespan>]

上記のコマンドでは、GrainClient.Initialize(config) のように ClientConfiguration のインスタンスが使用されます。

PowerShell
Start-GrainClient [-GatewayAddress] <IPEndPoint> [[-OverrideConfig] <bool>] [[-Timeout] <timespan>]

上記のコマンドは、Orleans クラスター ゲートウェイ アドレス エンドポイントを受け取ります。

ヒント

Timeout パラメーターは省略可能であり、通知されていて TimeSpan.Zero より大きい場合は、内部的に GrainClient.SetResponseTimeout(TimeSpan) を呼び出します。

GrainClient を停止する

GrainClient を停止するには、次のコマンドを呼び出してください。

PowerShell
Stop-GrainClient

上記のコマンドはパラメーターを受け取らず、呼び出されたときに GrainClient が初期化されている場合は正常に初期化前の状態に戻されます。

Grain を取得する

Grain を取得するために、このコマンドレットは GrainClient.GrainFactory.GetGrain<T>() とそのオーバーロードに関するラッパーです。 必須パラメーターは -GrainType、Orleans (stringGuidlong) でサポートされている現在のグレイン キー型の -XXXKey、および複合キーを持つグレインで使用できる -KeyExtension です。

このコマンドレットは、-GrainType のパラメーターとして渡された型のグレイン参照を返します。 MyInterfacesNamespace.IMyGrain.SayHelloTo グレイン メソッドを呼び出す例を、次に示します。

PowerShell
Import-Module OrleansPSUtils
$configFilePath = Resolve-Path(".\ClientConfig.xml").Path
Start-GrainClient -ConfigFilePath $configFilePath
Add-Type -Path .\MyGrainInterfaceAssembly.dll
$grainInterfaceType = [MyInterfacesNamespace.IMyGrain]
$grainId = [System.Guid]::Parse("A4CF7B5D-9606-446D-ACE9-C900AC6BA3AD")
$grain = Get-Grain -GrainType $grainInterfaceType -GuidKey $grainId
$message = $grain.SayHelloTo("Gutemberg").Result
Write-Output $message
Hello Gutemberg!
Stop-GrainClient

その他のコマンドレットについては説明しませんが、PowerShell では、ObserverStream、その他の Orleans コア機能がネイティブにサポートされています。

注意

目的は、PowerShell でクライアント全体を再実装するのではなく、IT および DevOps チームに、.NET アプリケーションを実装する必要なくグレインとやりとりする方法を提供することです。