Ler en inglés

Compartir por


Módulo de cliente de PowerShell

El módulo de cliente de PowerShell para Orleans es un conjunto de cmdlets de PowerShell que encapsula GrainClient. Proporciona un conjunto de comandos prácticos que permiten interactuar no solo con ManagementGrain, sino con cualquier IGrain como una aplicación normal de Orleans mediante scripts de PowerShell.

Estos cmdlets permiten una serie de escenarios desde el inicio de tareas de mantenimiento, pruebas, supervisión o cualquier otro tipo de automatización mediante el aprovechamiento de scripts de PowerShell.

Instalación del módulo

Para instalar este módulo desde el origen, puede compilar con el proyecto OrleansPSUtils e importarlo con:

PowerShell
Import-Module .\projectOutputDir\Orleans.psd1

Aunque puede hacerlo, hay una manera mucho más fácil y interesante de instalarlo desde Galería de PowerShell. Los módulos de PowerShell se comparten fácilmente, al igual que los paquetes NuGet, pero en lugar de nuget.org, se hospedan en el Galería de PowerShell.

Para instalar este módulo desde la galería de PowerShell, ejecute el siguiente comando en la carpeta deseada:

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

Para instalarlo en la ruta de acceso de los módulos de PowerShell (la manera recomendada), ejecute:

PowerShell
Install-Module -Name OrleansPSUtils

Si tiene previsto usar este módulo en un Azure Automation, use este vínculo.

Uso del módulo

Independientemente de cómo decida instalarlo, debe importar el módulo en la sesión actual de PowerShell para que los cmdlets estén disponibles mediante la ejecución de esto:

PowerShell
Import-Module OrleansPSUtils

Importante

En el caso de compilar desde el origen, debe importarlo como se sugiere en la sección Instalar el módulo mediante la ruta de acceso a .psd1 en lugar de usar el nombre del módulo, ya que no estará en la variable en tiempo de ejecución de PowerShell $env:PSModulePath. Es muy recomendable instalar desde Galería de PowerShell en su lugar.

Una vez importado el módulo (lo que significa que se carga en la sesión de PowerShell), tendrá disponibles los siguientes cmdlets:

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

Inicie la GrainClient.

Este módulo es un contenedor alrededor de GrainClient.Initialize() y sus sobrecargas.

Start-GrainClient

Igual que una llamada a GrainClient.Initialize(), que buscará los nombres de archivo de configuración de cliente de Orleans conocidos:

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

El comando anterior usará la ruta de acceso del archivo proporcionada como en GrainClient.Initialize(filePath).

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

El comando anterior usará una instancia de la clase FileInfo que representa el archivo de configuración igual que GrainClient.Initialize(fileInfo).

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

El comando anterior usará una instancia de como ClientConfiguration en GrainClient.Initialize(config).

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

El comando anterior toma un punto de conexión de dirección de puerta de enlace de clúster de Orleans.

Suxestión

El parámetro Timeout es opcional y, si se informa y es mayor que TimeSpan.Zero, llamará GrainClient.SetResponseTimeout(TimeSpan) internamente.

Detener el GrainClient

Para detener GrainClient, llame al siguiente comando:

PowerShell
Stop-GrainClient

El comando anterior no toma ningún parámetro y, cuando se llama, si GrainClient se inicializa se anulará correctamente el inicialización.

Obtener un Grain

Para obtener un Grain, este cmdlet es un contenedor alrededor GrainClient.GrainFactory.GetGrain<T>() de y sus sobrecargas. El parámetro obligatorio es -GrainType y -XXXKey para los tipos de clave Grain actuales admitidos por Orleans (string, Guidlong) y también -KeyExtension que se puede usar en granos con claves compuestas.

Este cmdlet devuelve una referencia específica del tipo pasado por como parámetro en -GrainType. Como ejemplo de llamada al método de grano 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

Hay otros cmdlets que no se describen, pero hay compatibilidad con observadores, secuencias y otras características básicas de Orleans de forma más nativa en PowerShell.

Nota

La intención es no volver a implementar todo el cliente en PowerShell, sino proporcionar a los equipos de TI y DevOps una manera de interactuar con los granos sin necesidad de implementar una aplicación .NET.