Gyakorlat – Modul létrehozása és használata
Feladata egy tartalomkézbesítési hálózat vagy CDN hozzáadása a vállalat webhelyéhez egy toy wombat elindításához. A vállalat más csapatai azonban azt mondták, hogy nincs szükségük CDN-re. Ebben a gyakorlatban modulokat fog létrehozni a webhelyhez és a CDN-hez, és hozzáadja a modulokat egy sablonhoz.
A folyamat során a következőt fogja elvégezni:
- Adjon hozzá egy modult az alkalmazáshoz.
- Hozzon létre egy Bicep-sablont, amely a modult használja.
- Adjon hozzá egy másik modult a CDN-hez.
- Adja hozzá a CDN-modult a sablonhoz, miközben nem kötelező megadni.
- Helyezze üzembe a sablont az Azure-ban.
- Tekintse át az üzembe helyezési előzményeket.
Ez a gyakorlat a Visual Studio Code Bicep-bővítményét használja. Telepítse ezt a bővítményt a Visual Studio Code-ban.
Üres Bicep-fájl létrehozása
Nyissa meg a Visual Studio Code-ot.
Hozzon létre egy main.bicep nevű új fájlt.
Mentse az üres fájlt, hogy a Visual Studio Code betöltse a Bicep-eszközt.
Választhatja a Fájlmentés>másként lehetőséget, vagy a Ctrl+S billentyűkombinációt Windows rendszeren (⌘+S macOS rendszeren). Ügyeljen arra, hogy ne felejtse el, hová mentette a fájlt. Létrehozhat például egy sablonmappát, amelybe mentheti.
Modul létrehozása az alkalmazáshoz
Hozzon létre egy új, modulok nevű mappát ugyanabban a mappában, amelyben létrehozta a main.bicep fájlt. A modulok mappájában hozzon létre egy app.bicep nevű fájlt. Mentse a fájlt.
Adja hozzá a következő tartalmat az app.bicep fájlhoz:
@description('The Azure region into which the resources should be deployed.') param location string @description('The name of the App Service app.') param appServiceAppName string @description('The name of the App Service plan.') param appServicePlanName string @description('The name of the App Service plan SKU.') param appServicePlanSkuName string resource appServicePlan 'Microsoft.Web/serverfarms@2022-03-01' = { name: appServicePlanName location: location sku: { name: appServicePlanSkuName } } resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = { name: appServiceAppName location: location properties: { serverFarmId: appServicePlan.id httpsOnly: true } } @description('The default host name of the App Service app.') output appServiceAppHostName string = appServiceApp.properties.defaultHostName
Ez a fájl üzembe helyez egy Azure-alkalmazás Service-csomagot és egy alkalmazást. Figyelje meg, hogy a modul meglehetősen általános. Nem tartalmaz semmilyen feltételezést az erőforrások nevével vagy az App Service-csomag termékváltozatával kapcsolatban. Így egyszerűen újra felhasználhatja a modult a különböző üzemelő példányokhoz.
Mentse a fájl módosításait.
A modul hozzáadása a Bicep-sablonhoz
Itt kiindulási pontként adja hozzá az alkalmazásmodult a Bicep-sablonhoz.
Nyissa meg a main.bicep fájlt.
Adja hozzá a következő paramétereket és változókat a fájlhoz:
@description('The Azure region into which the resources should be deployed.') param location string = 'westus3' @description('The name of the App Service app.') param appServiceAppName string = 'toy-${uniqueString(resourceGroup().id)}' @description('The name of the App Service plan SKU.') param appServicePlanSkuName string = 'F1' var appServicePlanName = 'toy-product-launch-plan'
Mivel ezt a sablont szeretné üzembe helyezni a toy-webhelyeken, ez egy kicsit konkrétabb. Az App Service-csomag neve változóként van definiálva. Az termékváltozat paramétere alapértelmezett értékkel rendelkezik, amely logikus a toy launch webhely számára.
Tipp.
Azt adja meg, hogy a paramétert a
location
következőre kell állítaniwestus3
. A tulajdonság használatávalresourceGroup().location
általában az erőforráscsoporttal azonos helyen hozhat létre erőforrásokat. Ha azonban a Microsoft Learn tesztkörnyezettel dolgozik, bizonyos Azure-régiókat kell használnia, amelyek nem felelnek meg az erőforráscsoport helyének.A paraméterek alatt hozzon létre egy üres sort. Most írja be az alkalmazásmodul definíciójának első sorát:
module app 'modules/app.bicep' = {
A beírás során figyelje meg, hogy a Visual Studio Code Bicep-bővítménye segít a modul deklarációjának létrehozásában. Amikor beírja a modul elérési útját, és beírja az egyenlő (
=
) karaktert, megjelenik egy előugró menü több lehetőséggel.Válassza a Kötelező tulajdonságok lehetőséget az előugró menüben:
Töltse ki a moduldeklarációt:
module app 'modules/app.bicep' = { name: 'toy-launch-app' params: { appServiceAppName: appServiceAppName appServicePlanName: appServicePlanName appServicePlanSkuName: appServicePlanSkuName location: location } }
A fájl alján adjon meg egy kimenetet:
@description('The host name to use to access the website.') output websiteHostName string = app.outputs.appServiceAppHostName
Mentse a fájl módosításait.
Modul létrehozása a tartalomkézbesítési hálózathoz
A modulok mappájában hozzon létre egy cdn.bicep nevű fájlt. Mentse a fájlt.
Adja hozzá a következő tartalmat a cdn.bicep fájlhoz:
@description('The host name (address) of the origin server.') param originHostName string @description('The name of the CDN profile.') param profileName string = 'cdn-${uniqueString(resourceGroup().id)}' @description('The name of the CDN endpoint') param endpointName string = 'endpoint-${uniqueString(resourceGroup().id)}' @description('Indicates whether the CDN endpoint requires HTTPS connections.') param httpsOnly bool var originName = 'my-origin' resource cdnProfile 'Microsoft.Cdn/profiles@2022-11-01-preview' = { name: profileName location: 'global' sku: { name: 'Standard_Microsoft' } } resource endpoint 'Microsoft.Cdn/profiles/endpoints@2022-11-01-preview' = { parent: cdnProfile name: endpointName location: 'global' properties: { originHostHeader: originHostName isHttpAllowed: !httpsOnly isHttpsAllowed: true queryStringCachingBehavior: 'IgnoreQueryString' contentTypesToCompress: [ 'text/plain' 'text/html' 'text/css' 'application/x-javascript' 'text/javascript' ] isCompressionEnabled: true origins: [ { name: originName properties: { hostName: originHostName } } ] } } @description('The host name of the CDN endpoint.') output endpointHostName string = endpoint.properties.hostName
Ez a fájl két erőforrást helyez üzembe: egy CDN-profilt és egy CDN-végpontot.
Mentse a fájl módosításait.
Modulok hozzáadása a fő Bicep-sablonhoz
Nyissa meg a main.bicep fájlt.
appServicePlanSkuName
A paraméter alatt adja hozzá a következő paramétert:@description('Indicates whether a CDN should be deployed.') param deployCdn bool = true
A modul definíciója
app
alatt adja meg a modultcdn
:module cdn 'modules/cdn.bicep' = if (deployCdn) { name: 'toy-launch-cdn' params: { httpsOnly: true originHostName: app.outputs.appServiceAppHostName } }
Figyelje meg, hogy a modulnak van egy feltétele, hogy csak akkor legyen üzembe helyezve, ha a
deployCdn
paraméter értéke be van állítvatrue
. Figyelje meg azt is, hogy a modul paramétereoriginHostName
a modul kimeneténekapp
értékéreappServiceAppHostName
van állítva.Frissítse a gazdagépnév kimenetét, hogy a megfelelő gazdagépnevet válassza ki. A CDN üzembe helyezésekor azt szeretné, hogy a gazdagép neve a CDN-végpont neve legyen.
output websiteHostName string = deployCdn ? cdn.outputs.endpointHostName : app.outputs.appServiceAppHostName
Mentse a fájl módosításait.
A Bicep-sablon üzembe helyezése az Azure-ban
Ha a sablont az Azure-ban szeretné üzembe helyezni, be kell jelentkeznie az Azure-fiókjába a Visual Studio Code termináljában. Győződjön meg arról, hogy telepítette az Azure CLI-t, és ne felejtsen el ugyanazzal a fiókkal bejelentkezni, mint a tesztkörnyezet aktiválásához.
Válassza a Terminál menü Új terminál pontját. A terminálablak általában a képernyő alsó felében nyílik meg.
Ha a terminálablak jobb oldalán látható rendszerhéj bash, a megfelelő rendszerhéj nyitva van, és a következő szakaszra ugorhat.
Ha nem bash rendszerhéj jelenik meg, válassza a rendszerhéj legördülő nyilat, majd válassza az Azure Cloud Shell (Bash) lehetőséget.
A terminálhéjak listájában válassza a bash lehetőséget.
A terminálban lépjen arra a könyvtárra, ahová a sablont mentette. Ha például a sablont a sablonok mappájába mentette, használhatja ezt a parancsot:
cd templates
A Bicep telepítése
Futtassa a következő parancsot a Bicep legújabb verziójának biztosításához:
az bicep install && az bicep upgrade
Bejelentkezés az Azure-ba
A Visual Studio Code terminálon jelentkezzen be az Azure-ba a következő parancs futtatásával:
az login
A megnyíló böngészőben jelentkezzen be az Azure-fiókjába.
A Visual Studio Code terminál megjeleníti a fiókhoz társított előfizetések listáját.
Állítsa be az alapértelmezett előfizetést az ebben a munkamenetben futtatott összes Azure CLI-parancshoz.
az account set --subscription "Concierge Subscription"
Feljegyzés
Ha a közelmúltban több tesztkörnyezetet is használt, előfordulhat, hogy a terminál több Concierge-előfizetés-példányt is megjelenít. Ebben az esetben a következő két lépéssel állítsa be az egyiket alapértelmezett előfizetésként. Ha az előző parancs sikeres volt, és csak egy Concierge-előfizetés szerepel a listában, hagyja ki a következő két lépést.
Kérje le a Concierge-előfizetések azonosítóit.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Az előfizetés azonosítójának segítségével állítsa be az alapértelmezett előfizetést. Cserélje a {your subscription ID} értékét a legutóbbi Concierge-előfizetés azonosítójára.
az account set --subscription {your subscription ID}
Az alapértelmezett erőforráscsoport beállítása
Az Azure CLI használatakor beállíthatja az alapértelmezett erőforráscsoportot, és kihagyhatja a paramétert a gyakorlat többi Azure CLI-parancsából. Állítsa be az alapértelmezett értéket a tesztkörnyezetben létrehozott erőforráscsoportra.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
A sablon üzembe helyezése az Azure-ban
Futtassa a következő kódot a Visual Studio Code termináljáról a Bicep-sablon Azure-ban való üzembe helyezéséhez. Ez a folyamat akár egy-két percet is igénybe vehet, majd sikeres üzembe helyezést érhet el.
az deployment group create --template-file main.bicep
Az állapot Running...
megjelenik a terminálban.
A sablon Azure-ban való üzembe helyezéséhez jelentkezzen be az Azure-fiókjába a Visual Studio Code terminálból. Győződjön meg arról, hogy telepítette az Azure PowerShellt, és jelentkezzen be ugyanarra a fiókra, amely aktiválta a tesztkörnyezetet.
Válassza a Terminál menü Új terminál pontját. A terminálablak általában a képernyő alsó felében nyílik meg.
Ha a terminálablak jobb oldalán látható rendszerhéj PowerShell vagy pwsh, a megfelelő rendszerhéj nyitva van, és a következő szakaszra ugorhat.
Ha nem PowerShell vagy pwsh rendszerhéj jelenik meg, válassza a rendszerhéj legördülő nyilat, majd válassza a PowerShellt.
A terminálhéjak listájában válassza a PowerShellt vagy a pwsh-t.
A terminálban lépjen arra a könyvtárra, ahová a sablont mentette. Ha például a sablont a sablonok mappájába mentette, használhatja ezt a parancsot:
Set-Location -Path templates
A Bicep parancssori felület telepítése
A Bicep Azure PowerShellből való használatához telepítse a Bicep CLI-t.
Bejelentkezés az Azure-ba az Azure PowerShell használatával
A Visual Studio Code terminálon futtassa a következő parancsot:
Connect-AzAccount
Megnyílik egy böngésző, amellyel bejelentkezhet az Azure-fiókjába.
Miután bejelentkezett az Azure-ba, a terminál megjeleníti a fiókhoz társított előfizetések listáját.
Ha aktiválta a tesztkörnyezetet, megjelenik egy Concierge-előfizetés nevű előfizetés. Használja a gyakorlat hátralévő részében.
Állítsa be az alapértelmezett előfizetést az ebben a munkamenetben futtatott összes Azure PowerShell-parancshoz.
$context = Get-AzSubscription -SubscriptionName 'Concierge Subscription' Set-AzContext $context
Feljegyzés
Ha a közelmúltban több tesztkörnyezetet is használt, előfordulhat, hogy a terminál több Concierge-előfizetés-példányt is megjelenít. Ebben az esetben a következő két lépéssel állítsa be az egyiket alapértelmezett előfizetésként. Ha az előző parancs sikeres volt, és csak egy Concierge-előfizetés szerepel a listában, hagyja ki a következő két lépést.
Kérje le az előfizetés azonosítóját. Az alábbi parancs futtatásával listázhatja az előfizetéseit és azonosítóit. Keresse meg
Concierge Subscription
, majd másolja ki az azonosítót a második oszlopból. Úgy néz ki, mintcf49fbbc-217c-4eb6-9eb5-a6a6c68295a0
.Get-AzSubscription
Módosítsa az aktív előfizetését Concierge-előfizetésre. Mindenképpen cserélje le {Az előfizetés azonosítója} elemet a másoltra.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
Az alapértelmezett erőforráscsoport beállítása
Beállíthatja az alapértelmezett erőforráscsoportot, és kihagyhatja a paramétert a gyakorlat többi Azure PowerShell-parancsából. Állítsa be ezt az alapértelmezett beállítást a tesztkörnyezetben önnek létrehozott erőforráscsoportra.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
A sablon üzembe helyezése az Azure-ban
Telepítse a sablont az Azure-ban az alábbi Azure PowerShell-paranccsal a terminálon. Ez egy-két percet is igénybe vehet, majd sikeres üzembe helyezést érhet el.
New-AzResourceGroupDeployment -TemplateFile main.bicep
Az üzembe helyezési előzmények áttekintése
Nyissa meg az Azure Portalt , és győződjön meg arról, hogy a tesztkörnyezet-előfizetésben van:
- Válassza ki az avatart az oldal jobb felső sarkában.
- Válassza a Címtár váltása lehetőséget. A listában válassza a Microsoft Learn-tesztkörnyezet címtárat.
A bal oldali panelen válassza az Erőforráscsoportok lehetőséget.
Válassza a
[tesztkörnyezeti erőforráscsoport neve] nevű erőforráscsoportot.A bal oldali menüben válassza az Üzemelő példányok lehetőséget.
Három üzembe helyezés szerepel a listán.
Válassza ki a fő üzemelő példányt, és bontsa ki az üzembe helyezés részleteit.
Figyelje meg, hogy mindkét modul szerepel a listán, és a típusuk a
Microsoft.Resources/deployments
következőképpen jelenik meg: . A modulok kétszer vannak felsorolva, mert a kimenetekre a sablonban is hivatkoznak.Válassza ki a toy-launch-cdn és a toy-launch-app üzembe helyezését, és tekintse át az egyes alkalmazásokban üzembe helyezett erőforrásokat. Figyelje meg, hogy az adott modulban meghatározott erőforrásoknak felelnek meg.
A webhely tesztelése
Válassza ki a toy-launch-app üzembe helyezését.
Válassza a Kimenetek lehetőséget.
Válassza a kimenet másolás gombját
appServiceAppHostName
.Egy új böngészőlapon lépjen az előző lépésben másolt címre. A címnek a következővel kell kezdődnie
https://
: .Megjelenik az App Service üdvözlőlapja, amelyen látható, hogy sikeresen üzembe helyezte az alkalmazást.
Nyissa meg a fő üzemelő példányt, és válassza a Kimenetek lehetőséget.
Másolja ki a
websiteHostName
kimenet értékét. Figyelje meg, hogy ez a gazdagépnév eltérő, mivel ez egy Azure Content Delivery Network-gazdagép neve.Egy új böngészőlapon lépjen az előző lépésben másolt gazdagép nevére. Adja hozzá
https://
a cím elejéhez.A CDN-végpontok aktiválása néhány percet vesz igénybe. Ha a lap nem található hibaüzenetet kap , várjon néhány percet, és próbálkozzon újra a hivatkozás beillesztésével. Emellett győződjön meg arról, hogy hozzáadta
https://
az URL-cím elejéhez, hogy HTTPS-t használjon.Ha a CDN-végpont aktív, ugyanazt az App Service üdvözlőlapot fogja kapni. Ezúttal az Azure Content Delivery Network szolgáltatáson keresztül lett kiszolgálva, amely segít a webhely teljesítményének javításában.