Hibrid környezetek kezelése a PowerShell-lel Azure Functions és App Service hibrid kapcsolatokban

A Azure App Service Hibrid kapcsolatok funkció más hálózatok erőforrásaihoz is hozzáférést biztosít. Erről a funkcióról a Hibrid kapcsolatok dokumentációjában tudhat meg többet. Ez a cikk azt ismerteti, hogyan használhatja ezt a képességet egy helyszíni kiszolgálót célzó PowerShell-függvények futtatására. Ez a kiszolgáló ezután a helyszíni környezet összes erőforrásának kezelésére használható egy Azure PowerShell függvényből.

Helyszíni kiszolgáló konfigurálása PowerShell-táveléréshez

A következő szkript engedélyezi a PowerShell-alapú távelérést, és létrehoz egy új tűzfalszabályt és egy WinRM https-figyelőt. Tesztelési célokra önaláírt tanúsítványt használunk. Éles környezetben ajánlott aláírt tanúsítványt használni.

# For configuration of WinRM, see
# https://learn.microsoft.com/windows/win32/winrm/installation-and-configuration-for-windows-remote-management.

# Enable PowerShell remoting.
Enable-PSRemoting -Force

# Create firewall rule for WinRM. The default HTTPS port is 5986.
New-NetFirewallRule -Name "WinRM HTTPS" `
                    -DisplayName "WinRM HTTPS" `
                    -Enabled True `
                    -Profile "Any" `
                    -Action "Allow" `
                    -Direction "Inbound" `
                    -LocalPort 5986 `
                    -Protocol "TCP"

# Create new self-signed-certificate to be used by WinRM.
$Thumbprint = (New-SelfSignedCertificate -DnsName $env:COMPUTERNAME  -CertStoreLocation Cert:\LocalMachine\My).Thumbprint

# Create WinRM HTTPS listener.
$Cmd = "winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname=""$env:COMPUTERNAME ""; CertificateThumbprint=""$Thumbprint""}"
cmd.exe /C $Cmd

PowerShell-függvényalkalmazás létrehozása a portálon

A App Service Hibrid kapcsolatok funkció csak alapszintű, standard és izolált díjszabási csomagokban érhető el. Amikor a PowerShell-lel hozza létre a függvényalkalmazást, hozzon létre vagy válasszon ki egyet ezek közül a csomagok közül.

  1. Az Azure Portal menüjében vagy a Kezdőlapon válassza az Erőforrás létrehozása elemet.

  2. Az Új lapon válassza a Számítási>függvényalkalmazás lehetőséget.

  3. Az Alapvető beállítások lapon használja a függvényalkalmazás beállításait az alábbi táblázatban megadottak szerint.

    Beállítás Ajánlott érték Leírás
    Előfizetés Az Ön előfizetése Az előfizetés, amelyben létrehozta az új függvényalkalmazást.
    Erőforráscsoport myResourceGroup Az új erőforráscsoport neve, amelyben létrehozza a függvényalkalmazást.
    Függvényalkalmazás neve Globálisan egyedi név Az új függvényalkalmazást azonosító név. Az érvényes karakterek az a-z (kis- és nagybetűk megkülönböztetése nélkül) 0-9és az -.
    Közzététel Kód Kódfájlok közzétételét teszi lehetővé egy Docker-tárolóban.
    Futtatókörnyezet verme Elsődleges nyelv Válassza a PowerShell Core lehetőséget.
    Verzió Verziószám Válassza ki a telepített futtatókörnyezet verzióját.
    Régió Előnyben részesített régió Válasszon egy önhöz közeli régiót vagy a függvények által elért egyéb szolgáltatások közelében.

    Függvényalkalmazás létrehozása – Alapismeretek.

  4. Válassza a Tovább: Üzemeltetés lehetőségre. Az Üzemeltetés lapon adja meg a következő beállításokat.

    Beállítás Ajánlott érték Leírás
    Storage-fiók Globálisan egyedi név Hozzon létre egy tárfiókot a függvényalkalmazás számára. A tárfiókok nevének 3–24 karakter hosszúságúnak kell lennie, és csak számokat és kisbetűket tartalmazhat. Használhat egy meglévő fiókot is, amelynek meg kell felelnie a tárfiók követelményeinek.
    Operációs rendszer Előnyben részesített operációs rendszer A futtatókörnyezeti verem kiválasztása alapján előre ki van jelölve egy operációs rendszer, de szükség esetén módosíthatja a beállítást.
    Csomag típusa App Service-csomag Válassza az App Service-csomag lehetőséget. Ha App Service-csomagot használ, foglalkoznia kell a függvényalkalmazás méretezésével.

    Függvényalkalmazás létrehozása – Üzemeltetés.

  5. Válassza a Tovább: Figyelés lehetőséget. A Figyelés lapon adja meg a következő beállításokat.

    Beállítás Ajánlott érték Leírás
    Application Insights Alapértelmezett Létrehoz egy azonos alkalmazásnévvel rendelkező Application Insights-erőforrást a legközelebbi támogatott régióban. Ha kibontja ezt a beállítást, vagy az Új létrehozása lehetőséget választja, módosíthatja az Application Insights nevét, vagy választhat egy másik régiót egy Olyan Azure-beli földrajzi régióban , ahol tárolni szeretné az adatokat.

    Függvényalkalmazás létrehozása – Monitorozás.

  6. Válassza az Áttekintés + létrehozás lehetőséget az alkalmazáskonfigurációk kiválasztásának áttekintéséhez.

  7. A Felülvizsgálat és létrehozás lapon tekintse át a beállításokat, majd válassza a Létrehozás lehetőséget a függvényalkalmazás kiépítéséhez és üzembe helyezéséhez.

  8. Válassza az Értesítések ikont a portál jobb felső sarkában, és figyelje meg a Sikeres üzembe helyezés üzenetet.

  9. Az új függvényalkalmazás megtekintéséhez válassza az Erőforrás megnyitása lehetőséget. A Rögzítés az irányítópulton lehetőséget is választhatja. A rögzítéssel könnyebben visszatérhet ehhez a függvényalkalmazás-erőforráshoz az irányítópultról.

Hibrid kapcsolat létrehozása a függvényalkalmazáshoz

A hibrid kapcsolatok a függvényalkalmazás hálózatkezelési szakaszából vannak konfigurálva:

  1. Az imént létrehozott függvényalkalmazás Beállítások területén válassza a Hálózatkezelés lehetőséget.

  2. Válassza a Hibrid kapcsolatok végpontok konfigurálása lehetőséget.

    Konfigurálja a hibrid kapcsolati végpontokat.

  3. Válassza a Hibrid kapcsolat hozzáadása lehetőséget.

    Adjon hozzá egy hibrid kapcsolatot.

  4. Adja meg a hibrid kapcsolat adatait az alábbi képernyőkép után látható módon. Végpontgazda esetében használja annak a helyszíni kiszolgálónak a gazdagépnevét, amelyhez létrehozta az önaláírt tanúsítványt. Csatlakozási problémákat tapasztal, ha a tanúsítvány neve és a helyszíni kiszolgáló gazdagépneve nem egyezik. A port megegyezik a kiszolgálón korábban definiált alapértelmezett Windows távfelügyeleti szolgáltatásporttal.

    Hibrid kapcsolat hozzáadása.

    Beállítás Ajánlott érték
    Hibrid kapcsolat neve ContosoHybridOnPremisesServer
    Végpont gazdagépe pénzügy1
    Végpont portja 5986
    Servicebus-névtér Új létrehozása
    Hely Válasszon egy elérhető helyet
    Név contosopowershellhybrid
  5. Válassza az OK gombot a hibrid kapcsolat létrehozásához.

A hibrid kapcsolat letöltése és telepítése

  1. Válassza a Kapcsolatkezelő letöltése lehetőséget a .msi fájl helyi mentéséhez a számítógépre.

    Töltse le a telepítőt.

  2. Másolja a .msi fájlt a helyi számítógépről a helyszíni kiszolgálóra.

  3. Futtassa a hibridkapcsolat-kezelő telepítőt a szolgáltatás helyszíni kiszolgálóra való telepítéséhez.

    Telepítse a hibrid kapcsolatot.

  4. Nyissa meg a hibrid kapcsolatot a portálon, majd másolja az átjáró kapcsolati sztring a vágólapra.

    Másolja a hibrid kapcsolati sztring.

  5. Nyissa meg a hibridkapcsolat-kezelő felhasználói felületet a helyszíni kiszolgálón.

    Nyissa meg a hibrid kapcsolat felhasználói felületét.

  6. Válassza a Manuális beírás lehetőséget, és illessze be a kapcsolati sztring a vágólapról.

    Illessze be a hibrid kapcsolatot.

  7. Indítsa újra a hibridkapcsolat-kezelő a PowerShellből, ha az nem csatlakoztatottként jelenik meg.

    Restart-Service HybridConnectionManager
    

Alkalmazásbeállítás létrehozása egy rendszergazdai fiók jelszavához

  1. A függvényalkalmazás Beállításai területén válassza a Konfiguráció lehetőséget.

  2. Válassza az + Új alkalmazásbeállítás lehetőséget.

    Konfigurálja a rendszergazdai fiók jelszavát.

  3. Nevezze el a ContosoUserPassword beállítást, és adja meg a jelszót. Válassza az OK lehetőséget.

  4. A jelszó a függvényalkalmazásban való tárolásához válassza a Mentés lehetőséget.

    Mentse a rendszergazdai fiók jelszavát.

Függvény HTTP-eseményindítójának létrehozása

  1. A függvényalkalmazásban válassza a Függvények, majd a + Hozzáadás lehetőséget.

    Hozzon létre új HTTP-eseményindítót.

  2. Válassza ki a HTTP-eseményindító sablont .

    Válassza ki a HTTP-eseményindító sablont.

  3. Nevezze el az új függvényt, és válassza a Függvény létrehozása lehetőséget.

    Nevezze el és hozza létre az új HTTP-eseményindító függvényt.

A függvény tesztelése

  1. Az új függvényben válassza a Kód + Teszt lehetőséget. Cserélje le a powershell-kódot a sablonból a következő kódra:

    # Input bindings are passed in via param block.
    param($Request, $TriggerMetadata)
    
    # Write to the Azure Functions log stream.
    Write-Output "PowerShell HTTP trigger function processed a request."
    
    # Note that ContosoUserPassword is a function app setting, so I can access it as $env:ContosoUserPassword.
    $UserName = "ContosoUser"
    $securedPassword = ConvertTo-SecureString  $Env:ContosoUserPassword -AsPlainText -Force
    $Credential = [System.management.automation.pscredential]::new($UserName, $SecuredPassword)
    
    # This is the name of the hybrid connection Endpoint.
    $HybridEndpoint = "finance1"
    
    $Script = {
        Param(
            [Parameter(Mandatory=$True)]
            [String] $Service
        )
        Get-Service $Service
    }
    
    Write-Output "Scenario 1: Running command via Invoke-Command"
    Invoke-Command -ComputerName $HybridEndpoint `
                   -Credential $Credential `
                   -Port 5986 `
                   -UseSSL `
                   -ScriptBlock $Script `
                   -ArgumentList "*" `
                   -SessionOption (New-PSSessionOption -SkipCACheck)
    
  2. Válassza a Mentés lehetőséget.

    Módosítsa a PowerShell-kódot, és mentse a HTTP-eseményindító függvényt.

  3. Válassza a Tesztelés, majd a Futtatás lehetőséget a függvény teszteléséhez. Tekintse át a naplókat, és ellenőrizze, hogy a teszt sikeres volt-e.

    A HTTP-eseményindító függvény tesztelése.

Egyéb helyszíni rendszerek kezelése

A csatlakoztatott helyszíni kiszolgálóval a helyi környezetben más kiszolgálókhoz és felügyeleti rendszerekhez is csatlakozhat. Ez lehetővé teszi, hogy a PowerShell-függvények használatával kezelje adatközpont-műveleteit az Azure-ból. A következő szkript regisztrál egy PowerShell-konfigurációs munkamenetet, amely a megadott hitelesítő adatok alatt fut. Ezeknek a hitelesítő adatoknak a távoli kiszolgálók rendszergazdájának kell lenniük. Ezután ezzel a konfigurációval elérheti a helyi kiszolgálón vagy adatközpontban található egyéb végpontokat.

# Input bindings are passed in via param block.
param($Request, $TriggerMetadata)

# Write to the Azure Functions log stream.
Write-Host "PowerShell HTTP trigger function processed a request."

# Note that ContosoUserPassword is a function app setting, so I can access it as $env:ContosoUserPassword.
$UserName = "ContosoUser"
$SecuredPassword = ConvertTo-SecureString  $Env:ContosoUserPassword -AsPlainText -Force
$Credential = [System.management.automation.pscredential]::new($UserName, $SecuredPassword)

# This is the name of the hybrid connection Endpoint.
$HybridEndpoint = "finance1"

# The remote server that will be connected to run remote PowerShell commands on
$RemoteServer = "finance2".

Write-Output "Use hybrid connection server as a jump box to connect to a remote machine"

# We are registering an endpoint that runs under credentials ($Credential) that has access to the remote server.
$SessionName = "HybridSession"
$ScriptCommand = {
    param (
        [Parameter(Mandatory=$True)]
        $SessionName)

    if (-not (Get-PSSessionConfiguration -Name $SessionName -ErrorAction SilentlyContinue))
    {
        Register-PSSessionConfiguration -Name $SessionName -RunAsCredential $Using:Credential
    }
}

Write-Output "Registering session on hybrid connection jumpbox"
Invoke-Command -ComputerName $HybridEndpoint `
               -Credential $Credential `
               -Port 5986 `
               -UseSSL `
               -ScriptBlock $ScriptCommand `
               -ArgumentList $SessionName `
               -SessionOption (New-PSSessionOption -SkipCACheck)

# Script to run on the jump box to run against the second machine.
$RemoteScriptCommand = {
    param (
        [Parameter(Mandatory=$True)]
        $ComputerName)
        # Write out the hostname of the hybrid connection server.
        hostname
        # Write out the hostname of the remote server.
        Invoke-Command -ComputerName $ComputerName -Credential $Using:Credential -ScriptBlock {hostname} `
                        -UseSSL -Port 5986 -SessionOption (New-PSSessionOption -SkipCACheck)
}

Write-Output "Running command against remote machine via jumpbox by connecting to the PowerShell configuration session"
Invoke-Command -ComputerName $HybridEndpoint `
               -Credential $Credential `
               -Port 5986 `
               -UseSSL `
               -ScriptBlock $RemoteScriptCommand `
               -ArgumentList $RemoteServer `
               -SessionOption (New-PSSessionOption -SkipCACheck) `
               -ConfigurationName $SessionName

Cserélje le a szkript alábbi változóit a környezetből származó megfelelő értékekre:

  • $HybridEndpoint
  • $RemoteServer

Az előző két forgatókönyvben csatlakoztathatja és kezelheti a helyszíni környezeteket a PowerShell használatával Azure Functions és hibrid kapcsolatokban. Javasoljuk, hogy tudjon meg többet a hibrid kapcsolatokról és a PowerShell függvényekben való használatáról.

Azure-beli virtuális hálózatokkal is csatlakozhat a helyszíni környezethez a Azure Functions keresztül.

Következő lépések