Een PS-functie maximaal een keer uitgevoerd

Een PS-functie maximaal een keer uitgevoerd

Als je zoals ik veel met Azure Functions bezig bent via bijvoorbeeld een taal als PowerShell, dan betekent dit dus veel testen en dus ook veel PS-modules afzonderlijk starten. Echter, hiervoor moet ik mij dan iedere keer opnieuw authenticeren. Nu zou het heel makkelijk zijn als een PowerShell script of bijvoorbeeld een PS-functie maximaal een keer wordt uitgevoerd en niet iedere keer opnieuw zonder dat je iedere keer moet aanloggen. Ik ben dan immers al aangemeld. Met het gebruik maken van de mogelijkheden van de functies binnen PowerShell kan dat heel gemakkelijk.

Code PS-functie maximaal een keer uitgevoerd

Eerste script:

# Begin Dot-source the PS Variables.ps1 file
. "$PSScriptRoot\PS Variables.ps1"
. "$PSScriptRoot\PS WordPress Samples.ps1"
# End Dot-source the PS Variables.ps1 file

Dit script laadt de variabelen uit het bestand  PS Variables.ps1 en het bestand PS WordPress Samples.ps1 met de functie door middel van dot-sourcing.

Tweede script:

# Begin loading PS Variables.ps1
$tenantId = not visible here
$subscriptionId = not visible here
# End loading PS Variables.ps1

Dit script definieert de $tenantId en $subscriptionId variabelen die nodig zijn voor de Azure-verbinding.

Derde script:

# Begin Function to log in to Azure
Function Login-Azure {

    if (-not $global:connected) {
        Connect-AzureAd -TenantId $tenantId -WarningAction SilentlyContinue | Out-Null
        $global:connected = $true
        Write-Host "Logon was successfull"
    } else {
        Write-Host "Logon has already been done. No further action needed"
    }
}
# End Function to log in to Azure

Dit script definieert een functie Login-Azure die inlogt op verschillende Azure-services als er nog geen verbinding is gemaakt. Gebruik de variabele $global:connected om bij te houden of er al een succesvolle verbinding met Azure is gemaakt.

Waarom is het global maken van de variabele handig in PowerShell?

Voorkom herhaalde inlogpogingen door de status van de verbinding op te slaan in een globale variabele. Het script kan dan controleren of er al een verbinding is gemaakt. Als dat zo is, logt het niet opnieuw in, wat tijd en systeembronnen bespaart.

Door onnodige inlogpogingen te vermijden, werkt het script efficiënter. Dit is vooral belangrijk in omgevingen waar meerdere scripts of functies tegelijkertijd draaien.

Maak de variabele globaal, zodat deze kan worden geraadpleegd en bijgewerkt vanuit verschillende delen van het script of zelfs vanuit andere scripts die in dezelfde sessie draaien.

Vierde script:

# Begin usage function Login-Azure
Login-Azure
# End usage function Login-Azure

Dit script roept de Login-Azure functie aan om in te loggen op Azure.

Meer informatie over PowerShell vind je hier. Meer informatie over de auteur van deze blog post vind je hier.

0 Shares:
Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

You May Also Like