Gyakorlat – Modul létrehozása és használata

Befejeződött

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

  1. Nyissa meg a Visual Studio Code-ot.

  2. Hozzon létre egy main.bicep nevű új fájlt.

  3. 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

  1. 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.

  2. 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.

  3. 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.

  1. Nyissa meg a main.bicep fájlt.

  2. 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ítani westus3. A tulajdonság használatával resourceGroup().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.

  3. 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.

  4. Válassza a Kötelező tulajdonságok lehetőséget az előugró menüben:

    Képernyőkép a Visual Studio Code-ról, amely egy modul szükséges tulajdonságaival való állványozásának lehetőségét mutatja.

  5. 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
      }
    }
    
  6. 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
    
  7. Mentse a fájl módosításait.

Modul létrehozása a tartalomkézbesítési hálózathoz

  1. A modulok mappájában hozzon létre egy cdn.bicep nevű fájlt. Mentse a fájlt.

  2. 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.

  3. Mentse a fájl módosításait.

Modulok hozzáadása a fő Bicep-sablonhoz

  1. Nyissa meg a main.bicep fájlt.

  2. appServicePlanSkuName A paraméter alatt adja hozzá a következő paramétert:

    @description('Indicates whether a CDN should be deployed.')
    param deployCdn bool = true
    
  3. A modul definíciója app alatt adja meg a modult cdn :

    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ítva true. Figyelje meg azt is, hogy a modul paramétere originHostName a modul kimenetének app értékére appServiceAppHostName van állítva.

  4. 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
    
  5. 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.

  1. 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.

  2. Ha a terminálablak jobb oldalán látható rendszerhéj bash, a megfelelő rendszerhéj nyitva van, és a következő szakaszra ugorhat.

    Képernyőkép a Visual Studio Code terminálablakáról, amelyen a bash lehetőség látható.

  3. 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.

    Képernyőkép a Visual Studio Code terminálablakáról, amelyen megjelenik a terminálhéj legördülő listája, és a Git Bash Alapértelmezett elem van kiválasztva.

  4. A terminálhéjak listájában válassza a bash lehetőséget.

    Képernyőkép a Visual Studio Code terminálablakáról, amelyen a bash terminál van kiválasztva.

  5. 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

  1. A Visual Studio Code terminálon jelentkezzen be az Azure-ba a következő parancs futtatásával:

    az login
    
  2. 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.

  3. Á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.

  4. Kérje le a Concierge-előfizetések azonosítóit.

     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
  5. 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.

  1. 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.

  2. 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.

    Képernyőkép a Visual Studio Code terminálablakáról, amelyen megjelenik a pwsh lehetőség a rendszerhéj legördülő listájában.

  3. Ha nem PowerShell vagy pwsh rendszerhéj jelenik meg, válassza a rendszerhéj legördülő nyilat, majd válassza a PowerShellt.

    Képernyőkép a Visual Studio Code terminálablakáról, amelyen megjelenik a terminálhéj legördülő listája és a PowerShell.

  4. A terminálhéjak listájában válassza a PowerShellt vagy a pwsh-t.

    Képernyőkép a Visual Studio Code terminálablakáról, amelyen a PowerShell-terminál van kiválasztva.

  5. 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

  1. 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.

  2. 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.

  3. Á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.

  4. 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, mint cf49fbbc-217c-4eb6-9eb5-a6a6c68295a0.

    Get-AzSubscription
    
  5. 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

  1. Nyissa meg az Azure Portalt , és győződjön meg arról, hogy a tesztkörnyezet-előfizetésben van:

    1. Válassza ki az avatart az oldal jobb felső sarkában.
    2. 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.
  2. A bal oldali panelen válassza az Erőforráscsoportok lehetőséget.

  3. Válassza a [tesztkörnyezeti erőforráscsoport neve] nevű erőforráscsoportot.

  4. A bal oldali menüben válassza az Üzemelő példányok lehetőséget.

    Képernyőkép az erőforráscsoportot megjelenítő Azure Portalról, kiemelt Központi telepítések menüponttal.

    Három üzembe helyezés szerepel a listán.

  5. Válassza ki a ü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/deploymentskövetkezőképpen jelenik meg: . A modulok kétszer vannak felsorolva, mert a kimenetekre a sablonban is hivatkoznak.

    Képernyőkép az Azure Portalról, amely a fő üzemelő példány üzembe helyezésének részleteit jeleníti meg.

  6. 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

  1. Válassza ki a toy-launch-app üzembe helyezését.

  2. Válassza a Kimenetek lehetőséget.

    Képernyőkép az Üzembe helyezést bemutató Azure Portalról a Kimenetek menüelem kiemelésével.

  3. Válassza a kimenet másolás gombját appServiceAppHostName .

  4. 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://: .

    Képernyőkép a webalkalmazás üdvözlőlapjáról, amelyen az App Service-gazdagép neve látható.

    Megjelenik az App Service üdvözlőlapja, amelyen látható, hogy sikeresen üzembe helyezte az alkalmazást.

  5. Nyissa meg a üzemelő példányt, és válassza a Kimenetek lehetőséget.

  6. 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.

  7. 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.

    A webalkalmazás üdvözlőlapjának képernyőképe a CDN-végpontot megjelenítő címsorral.