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.
Az Azure Portal menüjében vagy a Kezdőlapon válassza az Erőforrás létrehozása elemet.
Az Új lapon válassza a Számítási>függvényalkalmazás lehetőséget.
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. 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. 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. Válassza az Áttekintés + létrehozás lehetőséget az alkalmazáskonfigurációk kiválasztásának áttekintéséhez.
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.
Válassza az Értesítések ikont a portál jobb felső sarkában, és figyelje meg a Sikeres üzembe helyezés üzenetet.
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:
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.
Válassza a Hibrid kapcsolatok végpontok konfigurálása lehetőséget.
Válassza a Hibrid kapcsolat hozzáadása lehetőséget.
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.
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 Válassza az OK gombot a hibrid kapcsolat létrehozásához.
A hibrid kapcsolat letöltése és telepítése
Válassza a Kapcsolatkezelő letöltése lehetőséget a .msi fájl helyi mentéséhez a számítógépre.
Másolja a .msi fájlt a helyi számítógépről a helyszíni kiszolgálóra.
Futtassa a hibridkapcsolat-kezelő telepítőt a szolgáltatás helyszíni kiszolgálóra való telepítéséhez.
Nyissa meg a hibrid kapcsolatot a portálon, majd másolja az átjáró kapcsolati sztring a vágólapra.
Nyissa meg a hibridkapcsolat-kezelő felhasználói felületet a helyszíni kiszolgálón.
Válassza a Manuális beírás lehetőséget, és illessze be a kapcsolati sztring a vágólapról.
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
A függvényalkalmazás Beállításai területén válassza a Konfiguráció lehetőséget.
Válassza az + Új alkalmazásbeállítás lehetőséget.
Nevezze el a ContosoUserPassword beállítást, és adja meg a jelszót. Válassza az OK lehetőséget.
A jelszó a függvényalkalmazásban való tárolásához válassza a Mentés lehetőséget.
Függvény HTTP-eseményindítójának létrehozása
A függvényalkalmazásban válassza a Függvények, majd a + Hozzáadás lehetőséget.
Válassza ki a HTTP-eseményindító sablont .
Nevezze el az új függvényt, és válassza a Függvény létrehozása lehetőséget.
A függvény tesztelése
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)
Válassza a Mentés lehetőséget.
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.
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.