Megosztás a következőn keresztül:


Oktatóanyag: Windows-tárolóban lévő .NET-alkalmazás telepítése Azure Service Fabricre

Ez az oktatóanyag bemutatja, hogyan helyezhet tárolóba egy meglévő ASP.NET-alkalmazást és csomagot Service Fabric-alkalmazásként. Futtassa a tárolókat helyileg egy Service Fabric fejlesztési fürtön, és telepítse az alkalmazást az Azure-ba. Az alkalmazás Azure SQL-adatbázisban őrzi meg az adatokat.

Eben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Meglévő alkalmazás tárolóba helyezése a Visual Studióval
  • Adatbázis létrehozása Azure SQL Database-ben
  • Azure tárolóregisztrációs adatbázis létrehozása
  • Service Fabric-alkalmazás üzembe helyezése az Azure-ban

Megjegyzés

Javasoljuk, hogy az Azure Az PowerShell-modullal kommunikáljon az Azure-ral. Az első lépésekhez tekintse meg az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.

Előfeltételek

  1. Ha nem rendelkezik Azure-előfizetéssel, hozzon létre egy ingyenes fiókot.
  2. Windows-szolgáltatások engedélyezése Hyper-V éstárolók esetén.
  3. Telepítse a Windowshoz készült Docker Desktopot, hogy tárolókat futtathat Windows 10.
  4. Telepítse a Service Fabric futtatókörnyezet 6.2-es vagy újabb verzióját és a Service Fabric SDK 3.1-es vagy újabb verzióját.
  5. Telepítse a Visual Studiót, és engedélyezze az Azure-fejlesztési, ASP.NET- és webfejlesztési számítási feladatokat.
  6. Azure PowerShell telepítése

A Fabrikam Fiber CallCenter letöltése és futtatása

  1. Töltse le a Fabrikam Fiber CallCenter mintaalkalmazást a GitHubról.

  2. Győződjön meg róla, hogy a Fabrikam Fiber CallCenter alkalmazás hiba nélkül buildelhető és futtatható. Indítsa el rendszergazdaként a Visual Studiót, és nyissa meg a VS2015\FabrikamFiber.CallCenter.sln fájlt. Nyomja le az F5 billentyűt az alkalmazás futtatásához és hibakereséséhez.

    Képernyőkép a Fabrikam Fiber CallCenter alkalmazás kezdőlapjáról, amely a helyi gazdagépen fut. Az oldalon egy irányítópult látható a támogatási hívások listájával.

Azure SQL-adatbázis létrehozása

A Fabrikam Fiber CallCenter alkalmazás éles futtatásakor az adatokat egy adatbázisban kell tárolni. Jelenleg nincs mód az állandó adatok biztosítására egy tárolóban, ezért nem tárolhat éles adatokat az SQL Serveren egy tárolóban.

Javasoljuk, hogy használjon egy Azure SQL-adatbázist. Egy felügyelt SQL Server-adatbázis Azure-ban való létrehozásához és futtatásához hajtsa végre az alábbi szkriptet. Szükség esetén módosítsa a szkript változóit. A clientIP a fejlesztői számítógépe IP-címe. Jegyezze fel a szkript által kiírt kiszolgáló nevét.

$subscriptionID="<subscription ID>"

# Sign in to your Azure account and select your subscription.
Login-AzAccount -SubscriptionId $subscriptionID

# The data center and resource name for your resources.
$dbresourcegroupname = "fabrikam-fiber-db-group"
$location = "southcentralus"

# The server name: Use a random value or replace with your own value (do not capitalize).
$servername = "fab-fiber-$(Get-Random)"

# Set an admin login and password for your database.
# The login information for the server.
$adminlogin = "ServerAdmin"
$password = "Password@123"

# The IP address of your development computer that accesses the SQL DB.
$clientIP = "<client IP>"

# The database name.
$databasename = "call-center-db"

# Create a new resource group for your deployment and give it a name and a location.
New-AzResourceGroup -Name $dbresourcegroupname -Location $location

# Create the SQL server.
New-AzSqlServer -ResourceGroupName $dbresourcegroupname `
    -ServerName $servername `
    -Location $location `
    -SqlAdministratorCredentials $(New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $adminlogin, $(ConvertTo-SecureString -String $password -AsPlainText -Force))

# Create the firewall rule to allow your development computer to access the server.
New-AzSqlServerFirewallRule -ResourceGroupName $dbresourcegroupname `
    -ServerName $servername `
    -FirewallRuleName "AllowClient" -StartIpAddress $clientIP -EndIpAddress $clientIP

# Create the database in the server.
New-AzSqlDatabase  -ResourceGroupName $dbresourcegroupname `
    -ServerName $servername `
    -DatabaseName $databasename `
    -RequestedServiceObjectiveName "S0"

Write-Host "Server name is $servername"

Tipp

Ha vállalati tűzfal mögött dolgozik, akkor előfordulhat, hogy a fejlesztői számítógépe IP-címe nem érhető el az internetről. Annak ellenőrzéséhez, hogy az adatbázis a megfelelő IP-címmel rendelkezik a tűzfalszabályhoz, keresse meg az adatbázist az Azure Portal SQL-adatbázisok szakaszában. Kattintson a nevére, majd az Áttekintés szakaszban kattintson a „Kiszolgálótűzfal beállítása” elemre. Az „Ügyfél IP-címe” a fejlesztői gép IP-címe. Győződjön meg arról, hogy megegyezik az „AllowClient” szabályban lévő IP-címmel.

A webes konfiguráció frissítése

Lépjen vissza a FabrikamFiber.Web projektre, frissítse a kapcsolati sztringet a web.config fájlban, hogy az a tárolóban lévő SQL Serverre mutasson. Frissítse a kapcsolati sztring Kiszolgáló részét úgy, hogy az legyen az előző szkript által létrehozott kiszolgálónév. Olyannak kell lennie, mint a "fab-fiber-751718376.database.windows.net". A következő XML-ben csak az connectionString attribútumot kell frissítenie, a és name az providerName attribútumot nem kell módosítania.

<add name="FabrikamFiber-Express" connectionString="Server=<server name>,1433;Initial Catalog=call-center-db;Persist Security Info=False;User ID=ServerAdmin;Password=Password@123;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" providerName="System.Data.SqlClient" />
<add name="FabrikamFiber-DataWarehouse" connectionString="Server=<server name>,1433;Initial Catalog=call-center-db;Persist Security Info=False;User ID=ServerAdmin;Password=Password@123;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" providerName="System.Data.SqlClient" />
  

Megjegyzés

A helyi hibakereséshez tetszése szerinti SQL Servert választhat, csak legyen elérhető a gazdagépről. A localdb azonban nem támogatja a container -> host irányú kommunikációt. Ha egy másik SQL-adatbázist kíván használni a webes alkalmazása kiadásra szánt verziójában, adjon hozzá egy másik kapcsolati sztringet a web.release.config fájlhoz.

Az alkalmazás tárolóba helyezése

  1. Kattintson a jobb gombbal a FabrikamFiber.Web projektre >a Tárolóvezénylő támogatásánakhozzáadása> elemre. Válassza a Service Fabric lehetőséget tárolóvezénylőként, és kattintson az OK gombra.

  2. Ha a rendszer kéri, kattintson az Igen gombra a Docker Windows-tárolókra való átváltásához.

    Ekkor létrejön a megoldásban egy új, FabrikamFiber.CallCenterApplication nevű Service Fabric-alkalmazásprojekt. A meglévő FabrikamFiber.Web projekthez hozzáad a program egy Dockerfile-t. A PackageRoot könyvtárat is hozzáadja a program a FabrikamFiber.Web projekthez, mely az új FabrikamFiber.Web szolgáltatás szolgáltatásjegyzékét és beállításait tartalmazza.

    A tároló készen áll a Service Fabric-alkalmazásban való létrehozásra és csomagolásra. Ha a tárolórendszerkép létrejött a számítógépén, továbbíthatja bármely más tárolójegyzékbe, és lekérheti bármelyik gazdagépre, majd futtathatja.

A tárolóba helyezett alkalmazás helyi futtatása

Nyomja meg az F5 billentyűt a tárolóban lévő alkalmazás helyi Service Fabric fejlesztői fürtön való debug módú futtatásához. Ha megjelenik egy üzenetablak, amelyben a rendszer arra kéri, hogy adjon a „ServiceFabricAllowedUsers” csoportnak olvasási és végrehajtási engedélyt a Visual Studio projekt könyvtárához, kattintson az Igen gombra.

Ha az F5-futtatás a következőhöz hasonló kivételt jelez, akkor a megfelelő IP-cím nem lett hozzáadva az Azure-adatbázis tűzfalához.

System.Data.SqlClient.SqlException
HResult=0x80131904
Message=Cannot open server 'fab-fiber-751718376' requested by the login. Client with IP address '123.456.789.012' is not allowed to access the server.  To enable access, use the Windows Azure Management Portal or run sp_set_firewall_rule on the master database to create a firewall rule for this IP address or address range.  It may take up to five minutes for this change to take effect.
Source=.Net SqlClient Data Provider
StackTrace:
<Cannot evaluate the exception stack trace>

Ha hozzá szeretné adni a megfelelő IP-címet az Azure-adatbázis tűzfalához, futtassa a következő parancsot.

# The IP address of your development computer that accesses the SQL DB.
$clientIPNew = "<client IP from the Error Message>"

# Create the firewall rule to allow your development computer to access the server.
New-AzSqlServerFirewallRule -ResourceGroupName $dbresourcegroupname `
    -ServerName $servername `
    -FirewallRuleName "AllowClientNew" -StartIpAddress $clientIPNew -EndIpAddress $clientIPNew

Tárolóregisztrációs adatbázis létrehozása

Most, hogy az alkalmazás fut a helyi környezetben, megkezdheti az Azure-ba való telepítést. A tárolólemezképeket tárolóregisztrációs adatbázisban kell tárolni. Hozzon létre egy Azure tárolóregisztrációs adatbázist az alábbi szkript segítségével. A tárolóregisztrációs adatbázis neve más Azure-előfizetések számára is látható, ezért egyedinek kell lennie. Az alkalmazás Azure-ba való telepítése előtt a tárolólemezképet fel kell töltenie ebbe az adatbázisba. Amikor az alkalmazást telepíti az Azure-ban lévő fürtbe, a tárolólemezképet a rendszer lekéri az adatbázisból.

# Variables
$acrresourcegroupname = "fabrikam-acr-group"
$location = "southcentralus"
$registryname="fabrikamregistry$(Get-Random)"

New-AzResourceGroup -Name $acrresourcegroupname -Location $location

$registry = New-AzContainerRegistry -ResourceGroupName $acrresourcegroupname -Name $registryname -EnableAdminUser -Sku Basic

Service Fabric-fürt létrehozása az Azure-ban

A Service Fabric-alkalmazások egy fürtön, azaz virtuális vagy fizikai gépek hálózaton keresztül csatlakozó halmazán futnak. Mielőtt üzembe helyezheti az alkalmazást az Azure-ban, hozzon létre egy Service Fabric-fürtöt az Azure-ban.

A következőket teheti:

  • Hozzon létre egy tesztfürtöt a Visual Studióból. Ez lehetővé teszi, hogy közvetlenül a Visual Studióból hozzon létre egy biztonságos fürtöt a választott konfigurációval.
  • Biztonságos fürt létrehozása sablonból

Ez az oktatóanyag a fürt Visual Studióból való létrehozását ismerteti, mely ideális megoldás tesztelési forgatókönyvekhez. Ha más módon hoz létre fürtöt, vagy ha már rendelkezik fürttel, akkor átmásolhatja a kapcsolati végpontját, vagy kiválaszthatja azt az előfizetéséből.

A kezdés előtt nyissa meg a FabrikamFiber.Web –> PackageRoot –> ServiceManifest.xml a Megoldáskezelő. Jegyezze fel a végpontban felsorolt webes előtér portját.

A fürt létrehozásakor:

  1. A Megoldáskezelőben kattintson a jobb gombbal a FabrikamFiber.CallCenterApplication alkalmazásprojektre, és válassza a Közzététel lehetőséget.

  2. Jelentkezzen be az Azure-fiókjával, hogy hozzáférjen az előfizetéséhez vagy előfizetéseihez.

  3. A Kapcsolati végpont legördülő menüje alatt válassza az Új fürt létrehozása... lehetőséget.

  4. A Fürt létrehozása párbeszédpanelen módosítsa az alábbi beállításokat:

    a. Adja meg a fürtje nevét a Fürt neve mezőben, valamint a használni kívánt előfizetést és helyet. Jegyezze fel a fürt erőforráscsoportjának nevét.

    b. Választható lehetőségként módosíthatja a csomópontok számát. Alapértelmezés szerint három csomópont van. Ez a Service Fabric-forgatókönyvek teszteléséhez szükséges minimális érték.

    c. Válassza a Tanúsítvány lapot. Ebben a lapon írjon be egy jelszót a fürt tanúsítványának védelméhez. Ez a tanúsítvány segít a fürt biztonságossá tételében. Annak a helynek az elérési útját is módosíthatja, ahová menteni kívánja a tanúsítványt. A Visual Studióval is importálhatja a tanúsítványt, mert erre a lépésre szükség van az alkalmazás fürtön való közzétételéhez.

    Megjegyzés

    Jegyezze fel azt a mappaelérési utat, ahová a tanúsítványt importálja. A fürt létrehozása után a következő lépés a tanúsítvány importálása.

    d. Válassza a Virtuális gép részletei lapot. Adja meg a fürtöt alkotó Virtual Machines (VM) jelszavát. A felhasználónév és jelszó használatával távolról csatlakozhat a virtuális gépekhez. A virtuális gép méretét is ki kell választania és ha szükséges, módosíthatja a virtuális gép rendszerképét is.

    Fontos

    Válasszon olyan termékváltozatot, amely támogatja a tárolók futtatását. A fürtcsomópontjain található Windows Server operációs rendszernek kompatibilisnek kell lennie a tárolóján futó Windows Server operációs rendszerével. További tudnivalókat a Windows Server tároló operációs rendszerének és a gazdagép operációs rendszerének kompatibilitását ismertető cikket. Alapértelmezés szerint ez az oktatóanyag létrehoz egy Docker-rendszerképet, amely a Windows Server 2016 LTSC-re épül. Az erre a képre épülő tárolók a tárolókkal rendelkező Windows Server 2016 Datacenterrel létrehozott fürtökön fognak futni. Ha azonban létrehoz egy fürtöt, vagy a Windows Server egy másik verzióján alapuló meglévő fürtöt használ, módosítania kell azt az operációsrendszer-lemezképet, amelyen a tároló alapul. Nyissa meg a dockerfile-t a FabrikamFiber.Web projektben, fűzzön megjegyzést a meglévő FROM utasításokhoz a Windows Server egy korábbi verziója alapján, és adjon hozzá egy utasítást FROM a kívánt verzió címkéje alapján a Windows Server Core DockerHub oldaláról. A Windows Server Core kiadásával, a támogatási ütemtervekkel és a verziószámozással kapcsolatos további információkért tekintse meg a Windows Server Core kiadási adatait.

    e. A Speciális lapon adja meg, hogy mely alkalmazásport legyen megnyitva a terheléselosztón a fürt üzembe helyezésekor. Ezt a portot jegyezte fel a fürt létrehozása előtt. Hozzáadhat egy meglévő Application Insights-kulcsot is, amelyet az alkalmazás naplófájljainak útválasztásához használhat.

    f. Ha végzett a beállítások módosításával, kattintson a Létrehozás gombra.

  5. A létrehozás több percig is eltarthat, és a kimeneti ablak jelzi, ha a fürt teljesen elkészült.

Az importált tanúsítvány telepítése

Telepítse a fürtlétrehozás során importált tanúsítványt az Aktuális felhasználói tároló helyre, és adja meg a megadott titkoskulcs-jelszót.

A telepítés megerősítéséhez nyissa meg a Felhasználói tanúsítványok kezelése lehetőséget a vezérlőpultról, és győződjön meg arról, hogy a tanúsítvány telepítve van a Tanúsítványok – Aktuális felhasználó -Személyes ->>Tanúsítványok területen. A tanúsítványnak a következőhöz hasonlónak kell lennie: [Fürt neve]. [Fürt helye].cloudapp.azure.com, például fabrikamfibercallcenter.southcentralus.cloudapp.azure.com.

Az Azure-ban futó alkalmazás hozzáférésének engedélyezése SQL Database

Korábban egy SQL-tűzfalszabály létrehozásával engedélyezte a hozzáférést a helyi gépen futtatott alkalmazásnak. Most az Azure-ban futó alkalmazásnak kell engedélyeznie az SQL-adatbázis elérését. Hozzon létre egy virtuális hálózati szolgáltatásvégpontot a Service Fabric-fürtnek, majd hozzon létre egy szabályt, mely engedélyezi az adott végpontnak az SQL-adatbázis elérését. Mindenképpen adja meg azt a fürterőforráscsoport-változót, amelyet a fürt létrehozásakor jegyezett fel.

# Create a virtual network service endpoint
$clusterresourcegroup = "<cluster resource group>"
$resource = Get-AzResource -ResourceGroupName $clusterresourcegroup -ResourceType Microsoft.Network/virtualNetworks | Select-Object -first 1
$vnetName = $resource.Name

Write-Host 'Virtual network name: ' $vnetName

# Get the virtual network by name.
$vnet = Get-AzVirtualNetwork `
  -ResourceGroupName $clusterresourcegroup `
  -Name              $vnetName

Write-Host "Get the subnet in the virtual network:"

# Get the subnet, assume the first subnet contains the Service Fabric cluster.
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet | Select-Object -first 1

$subnetName = $subnet.Name
$subnetID = $subnet.Id
$addressPrefix = $subnet.AddressPrefix

Write-Host "Subnet name: " $subnetName " Address prefix: " $addressPrefix " ID: " $subnetID

# Assign a Virtual Service endpoint 'Microsoft.Sql' to the subnet.
$vnet = Set-AzVirtualNetworkSubnetConfig `
  -Name            $subnetName `
  -AddressPrefix   $addressPrefix `
  -VirtualNetwork  $vnet `
  -ServiceEndpoint Microsoft.Sql | Set-AzVirtualNetwork

$vnet.Subnets[0].ServiceEndpoints;  # Display the first endpoint.

# Add a SQL DB firewall rule for the virtual network service endpoint
$subnet = Get-AzVirtualNetworkSubnetConfig `
  -Name           $subnetName `
  -VirtualNetwork $vnet;

$VNetRuleName="ServiceFabricClusterVNetRule"
$vnetRuleObject1 = New-AzSqlServerVirtualNetworkRule `
  -ResourceGroupName      $dbresourcegroupname `
  -ServerName             $servername `
  -VirtualNetworkRuleName $VNetRuleName `
  -VirtualNetworkSubnetId $subnetID;

Az alkalmazás üzembe helyezése az Azure-ban

Most, hogy az alkalmazása kész, üzembe helyezheti az Azure-beli fürtben közvetlenül a Visual Studióból. A Megoldáskezelőben kattintson a jobb gombbal a FabrikamFiber.CallCenterApplication alkalmazásprojektre, és válassza a Közzététel lehetőséget. A Kapcsolati végpont területen válassza ki a fürt korábban létrehozott végpontját. Az Azure Container Registry területen válassza ki a korábban létrehozott tárolóregisztrációs adatbázist. Kattintson a Közzététel gombra az alkalmazás Azure-fürtön való közzétételéhez.

Az alkalmazás közzététele

Az üzembe helyezés folyamatát a kimeneti ablakban követheti nyomon. Ha az alkalmazás üzembe helyezése befejeződött, nyisson meg egy böngészőablakot, és írja be a fürt címét és az alkalmazásportot. Például: http://fabrikamfibercallcenter.southcentralus.cloudapp.azure.com:8659/.

Képernyőkép a Fabrikam Fiber CallCenter alkalmazás kezdőlapjáról, amelyen a azure.com fut. Az oldalon egy irányítópult látható a támogatási hívások listájával.

Ha a lap nem töltődik be, vagy nem kéri a tanúsítványt, nyissa meg például az Explorer elérési útját, https://fabrikamfibercallcenter.southcentralus.cloudapp.azure.com:19080/Explorer és válassza ki az újonnan telepített tanúsítványt.

Folyamatos integráció és üzembe helyezés (CI/CD) beállítása Service Fabric-fürttel

A CI/CD-alkalmazástelepítés Service Fabric-fürtben végzett, Azure DevOpsszal való konfigurálásáról lásd: Oktatóanyag: Alkalmazások üzembe helyezése Service Fabric-fürtön CI/CD használatával. Az oktatóanyagban ismertetett folyamat ugyanaz ehhez a (FabrikamFiber) projekthez, csak hagyja ki a szavazási minta letöltését, és a szavazás helyett a FabrikamFiber nevet írja be az adattár neveként.

Az erőforrások eltávolítása

Ha végzett, ne felejtse el eltávolítani a létrehozott erőforrásokat. Ennek legegyszerűbb módja az, ha törli azt az erőforráscsoportot, amely tartalmazza a Service Fabric-fürtöt, az Azure SQL-adatbázist és az Azure Container Registry-adatbázist.

$dbresourcegroupname = "fabrikam-fiber-db-group"
$acrresourcegroupname = "fabrikam-acr-group"
$clusterresourcegroupname="fabrikamcallcentergroup"

# Remove the Azure SQL DB
Remove-AzResourceGroup -Name $dbresourcegroupname

# Remove the container registry
Remove-AzResourceGroup -Name $acrresourcegroupname

# Remove the Service Fabric cluster
Remove-AzResourceGroup -Name $clusterresourcegroupname

További lépések

Ez az oktatóanyag bemutatta, hogyan végezheti el az alábbi műveleteket:

  • Meglévő alkalmazás tárolóba helyezése a Visual Studióval
  • Adatbázis létrehozása Azure SQL Database-ben
  • Azure tárolóregisztrációs adatbázis létrehozása
  • Service Fabric-alkalmazás üzembe helyezése az Azure-ban

Az oktatóanyag következő részéből megtudhatja, hogyan helyezhet üzembe tárolóalkalmazást Service Fabric-fürtön CI vagy CD segítségével.