Esta semana en el grupo de télegram de Powershell «Powershell Spanish» le surgía la duda a un compañero.
De dónde surgían esos varoles que se usaban en, por ejemplo, un «-filter».
Se estaba refieriendo a las propiedades de los objetos.
Pues para que no quede perdido en el canal y como acabo de leer que el SKU Basic del Load Balancer va a ser eliminado. Vamos a hacer un post de explicación.
Azure Basic Load Balancer will be retired on 30 September 2025—upgrade to Standard Load Balancer
Código del laboratorio
Me he basado en el ejemplo del «Example 1: Create a load balancer» de la propia página de documentación. Pero le he añadido » -sku basic » para la demostración.
$rg = @{
Name = 'MyResourceGroup'
Location = 'West US'
}
New-AzResourceGroup @rg
$publicip = New-AzPublicIpAddress -ResourceGroupName "MyResourceGroup" -Name "MyPublicIp" -Location "West US" -AllocationMethod "Dynamic"
$frontend = New-AzLoadBalancerFrontendIpConfig -Name "MyFrontEnd" -PublicIpAddress $publicip
$backendAddressPool = New-AzLoadBalancerBackendAddressPoolConfig -Name "MyBackendAddPoolConfig02"
$probe = New-AzLoadBalancerProbeConfig -Name "MyProbe" -Protocol "http" -Port 80 -IntervalInSeconds 15 -ProbeCount 2 -RequestPath "healthcheck.aspx"
$inboundNatRule1 = New-AzLoadBalancerInboundNatRuleConfig -Name "MyinboundNatRule1" -FrontendIPConfiguration $frontend -Protocol "Tcp" -FrontendPort 3389 -BackendPort 3389 -IdleTimeoutInMinutes 15 -EnableFloatingIP
$inboundNatRule2 = New-AzLoadBalancerInboundNatRuleConfig -Name "MyinboundNatRule2" -FrontendIPConfiguration $frontend -Protocol "Tcp" -FrontendPort 3391 -BackendPort 3392
$lbrule = New-AzLoadBalancerRuleConfig -Name "MyLBruleName" -FrontendIPConfiguration $frontend -BackendAddressPool $backendAddressPool -Probe $probe -Protocol "Tcp" -FrontendPort 80 -BackendPort 80 -IdleTimeoutInMinutes 15 -EnableFloatingIP -LoadDistribution SourceIP
$lb = New-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup" -Location "West US" -FrontendIpConfiguration $frontend -BackendAddressPool $backendAddressPool -Probe $probe -InboundNatRule $inboundNatRule1,$inboundNatRule2 -LoadBalancingRule $lbrule -sku basic
Get-AzLoadBalancer

Si hacemos un «Get-AzLoadBalancer» nos saldrá, muuucha pero muuucha información. Que nos puede costar interpretar. Sabemos que estamos haciendo un Get (dime todo) y luego el recurso (Azure Load Balancer). Ok, vamos a acotarlo un poco ya que sólo quiero los de cierto «sku».
Get-AzLoadBalancer | gm
Gm es el «alias» de Get-member que nos ofrece todos los métodos y propiedades del objeto. Sabemos que queremos el SKU y vamos a ver cómo se llama esa propiedad.

En este caso, no tiene mucho misterio. Nos interesa «sku».

Como Microsoft no está avisando que al SKU «Basic» le quedan dos teleriarios nos puede interesar hacer un filtro por TODOS los balanceadores que tienen ese SKU.
Vamos al lío.
Get-AzLoadBalancer | select name,sku

El SKU me ofrece cierta información que no conozco. Vamos investigar.
(Get-AzLoadBalancer).sku

(Get-AzLoadBalancer).sku .name

Pues ya lo tenemos. Vamos a filtar por esa propiedad.
Get-AzLoadBalancer | Where {$_.SKU.name -match "Basic"}

O si sólo queremos ubicar el balanceador, podemos seleccionar sólo estas propiedades.
Get-AzLoadBalancer | Where {$_.SKU.name -match "Basic"} | select name,ResourceGroupName

Y ya estaría. Hoy post básico pero que seguro le viene bien a alguien.
Saludos


Deja una respuesta