Auf Englisch lesen

Freigeben über


PowerShell-Clientmodul

Das Orleans-PowerShell-Clientmodul besteht aus einer Gruppe von PowerShell-Cmdlets und umschließt den GrainClient. Es bietet eine Reihe von praktischen Befehlen, die es ermöglichen, nicht nur mit dem ManagementGrain sondern mit jedem IGrain zu interagieren, genau wie eine normale Orleans-Anwendung mithilfe von PowerShell-Skripts.

Diese Cmdlets ermöglichen eine Reihe von Szenarien, z. B. Startwartungsaufgaben, Tests, Überwachung oder jede andere Art von Automatisierung mithilfe von PowerShell-Skripts.

Installieren des Moduls

Zum Installieren dieses Moduls aus der Quelle können Sie es mit dem OrleansPSUtils-Projekt erstellen und es einfach wie folgt importieren:

PowerShell
Import-Module .\projectOutputDir\Orleans.psd1

Das ist zwar eine Möglichkeit, es gibt aber einen viel einfacheren und interessanteren Weg, nämlich die Installation aus dem PowerShell-Katalog. PowerShell-Module können ähnlich wie NuGet-Pakete problemlos freigegeben werden, aber anstelle von nuget.org werden sie im PowerShell-Katalog gehostet.

Zum Installieren dieses Moduls aus dem PowerShell-Katalog führen Sie den folgenden Befehl im gewünschten Ordner aus:

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

Führen Sie Folgendes aus, um es in Ihrem PowerShell-Modulpfad (dies ist die empfohlene Methode) zu installieren:

PowerShell
Install-Module -Name OrleansPSUtils

Wenn Sie dieses Modul in einer Azure Automation verwenden möchten, verwenden Sie diesen Link.

Verwenden des Moduls

Unabhängig von der gewählten Installationsart müssen Sie das Modul in die aktuelle PowerShell-Sitzung importieren, damit die Cmdlets verfügbar werden. Führen Sie dazu dies aus:

PowerShell
Import-Module OrleansPSUtils

Wichtig

Bei einer Erstellung aus der Quelle müssen Sie das Modul wie im Abschnitt Installieren des Moduls vorgeschlagen importieren, indem Sie den Pfad zur .psd1 verwenden, statt den Modulnamen zu verwenden, da er sich nicht in der PowerShell-Laufzeitvariable $env:PSModulePath befindet. Es wird dringend empfohlen, stattdessen aus dem PowerShell-Katalog zu installieren.

Nachdem das Modul importiert wurde (d. h., es wird in die PowerShell-Sitzung geladen), stehen ihnen die folgenden Cmdlets zur Verfügung:

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

Starten Sie die GrainClient.

Dieses Modul ist ein Wrapper um GrainClient.Initialize() und dessen Überladungen.

Start-GrainClient

Gleiche Wirkung wie ein Aufruf von GrainClient.Initialize(), das nach den Namen der bekannten Orleans-Clientkonfigurationsdateien sucht:

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

Der vorherige Befehl verwendet den angegebenen Dateipfad wie in GrainClient.Initialize(filePath).

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

Der vorherige Befehl verwendet eine Instanz der FileInfo-Klasse, die die Konfigurationsdatei einfach als GrainClient.Initialize(fileInfo) darstellt.

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

Der vorherige Befehl verwendet eine Instanz einer ClientConfiguration wie in GrainClient.Initialize(config).

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

Der vorherige Befehl verwendet einen Orleans-Clustergateway-Adressenendpunkt.

Tipp

Der Timeout-Parameter ist optional, und wenn er fundiert und größer als TimeSpan.Zero ist, ruft er intern GrainClient.SetResponseTimeout(TimeSpan) auf.

Beenden des GrainClient

Zum Beenden des GrainClient rufen Sie den folgenden Befehl auf:

PowerShell
Stop-GrainClient

Der vorherige Befehl akzeptiert keine Parameter, und wenn er mit initialisiertem GrainClient aufgerufen wird, wird die Initialisierung ordnungsgemäß aufgehoben.

Abrufen eines Grain

Zum Abrufen eines Grain stellt dieses Cmdlet einen Wrapper um GrainClient.GrainFactory.GetGrain<T>() und die zugehörigen Überladungen dar. Der obligatorische Parameter ist -GrainType, und der -XXXKey für die aktuellen Grain-Schlüsseltypen, die von Orleans unterstützt werden (string, Guid, long), sowie die -KeyExtension, die für Grains mit zusammengesetzten Schlüsseln verwendet werden kann.

Dieses Cmdlet gibt einen Grain-Verweis von dem Typ zurück, der als Parameter für -GrainType übergeben wird. Hier sehen Sie ein Beispiel für den Aufruf der Grain-Methode 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

Es gibt zusätzliche Cmdlets, die nicht erörtert werden, jedoch gibt es stärker nativen Support für Observers, Streams und andere Kernfunktionen von Orleans in PowerShell.

Hinweis

Das Ziel besteht nicht darin, den gesamten Client in PowerShell neu zu implementieren, sondern IT- und DevOps-Teams eine Möglichkeit zu geben, mit den Grains zu interagieren, ohne eine .NET-Anwendung implementieren zu müssen.