Gyakorlat – A sablon újrabontása modulok használatára

Befejeződött

Ebben a gyakorlatban frissíteni fogja a korábban létrehozott Bicep-sablont, hogy az egy modult használjon a Azure-alkalmazás szolgáltatás erőforrásaihoz. A modulok segítenek a fő sablon szándékának egyértelműbb megőrzésében. Ha úgy dönt, újra felhasználhatja az App Service-modult más sablonokban.

A folyamat során a következőt fogja elvégezni:

  • Adjon hozzá egy új modult, és helyezze bele az App Service-erőforrásokat.
  • Hivatkozzon a fő Bicep-sablonból származó modulra.
  • Adjon hozzá egy kimenetet az App Service-alkalmazás gazdagépnevének, és adja ki a modulból és a sablontelepítésekből.
  • Tesztelje az üzembe helyezést annak ellenőrzéséhez, hogy a sablon érvényes-e.

Új modulfájl hozzáadása

  1. A Visual Studio Code-ban 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 appService.bicep nevű fájlt. Mentse a fájlt.

  2. Adja hozzá a következő tartalmat az appService.bicep fájlhoz:

    param location string
    param appServiceAppName string
    
    @allowed([
      'nonprod'
      'prod'
    ])
    param environmentType string
    
    var appServicePlanName = 'toy-product-launch-plan'
    var appServicePlanSkuName = (environmentType == 'prod') ? 'P2v3' : 'F1'
    
    resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = {
      name: appServicePlanName
      location: location
      sku: {
        name: appServicePlanSkuName
      }
    }
    
    resource appServiceApp 'Microsoft.Web/sites@2023-12-01' = {
      name: appServiceAppName
      location: location
      properties: {
        serverFarmId: appServicePlan.id
        httpsOnly: true
      }
    }
    

    Figyelje meg, hogy átmásolta a paramétereket és a változókat a main.bicep sablonból, mert az appService.bicep sablonnak önállónak kell lennie.

  3. Mentse a fájl módosításait. Figyelje meg, hogy a Visual Studio Code nem jelenít meg piros hullámos váltógombokat a hiányzó változókra, hiányzó paraméterekre vagy érvénytelen erőforrásokra vonatkozó figyelmeztetések jelzésére.

Hivatkozás hozzáadása a modulhoz a szülősablonból

Most, hogy már rendelkezik egy teljes modullal az App Service-erőforrások üzembe helyezéséhez, a szülősablonon belül hivatkozhat a modulra. Mivel a modul telepíti az App Service-erőforrásokat, törölheti a kapcsolódó erőforrásokat és változókat a szülősablonból.

  1. A main.bicep fájlban törölje az App Service-erőforrásokat és a appServicePlanSkuName appServicePlanName változódefiníciókat. Ne törölje az App Service-paramétereket, mert továbbra is szüksége van rájuk. Emellett ne törölje a tárfiók paramétereit, változóit vagy erőforrásait.

  2. A main.bicep fájl alján adja hozzá a következő Bicep-kódot:

    module appService 'modules/appService.bicep' = {
      name: 'appService'
      params: {
        location: location
        appServiceAppName: appServiceAppName
        environmentType: environmentType
      }
    }
    

    Figyelje meg, hogy a modul paramétereit a szülősablon paramétereire hivatkozva adja meg.

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

A gazdagép nevének hozzáadása kimenetként

  1. Adja hozzá a következő Bicep-kódot az appService.bicep fájl alján:

    output appServiceAppHostName string = appServiceApp.properties.defaultHostName
    

    Ez a kód deklarálja, hogy ennek a modulnak a kimenete , amelynek neve el lesz nevezve appServiceAppHostName, típusának stringmegfelelő lesz. A kimenet az App Service-alkalmazás tulajdonságából defaultHostName veszi át az értékét.

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

    Ez a kimenet egy modulként használt Bicep-fájlban van deklarálva, így csak a szülősablon számára lesz elérhető. A kimenetet a sablont üzembe helyező személynek is vissza kell adnia.

  3. Nyissa meg a main.bicep fájlt, és adja hozzá a következő kódot a fájl alján:

    output appServiceAppHostName string = appService.outputs.appServiceAppHostName
    

    Figyelje meg, hogy ez a kimenet a modul kimenetéhez hasonlóan deklarálva van. Ezúttal azonban erőforrástulajdonság helyett a modul kimenetére hivatkozik.

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

A Bicep-fájlok ellenőrzése

Miután elvégezte az összes fenti módosítást, a main.bicep fájlnak az alábbi példához hasonlóan kell kinéznie:

param location string = 'eastus'
param storageAccountName string = 'toylaunch${uniqueString(resourceGroup().id)}'
param appServiceAppName string = 'toylaunch${uniqueString(resourceGroup().id)}'

@allowed([
  'nonprod'
  'prod'
])
param environmentType string

var storageAccountSkuName = (environmentType == 'prod') ? 'Standard_GRS' : 'Standard_LRS'

resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: storageAccountSkuName
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
  }
}

module appService 'modules/appService.bicep' = {
  name: 'appService'
  params: {
    location: location
    appServiceAppName: appServiceAppName
    environmentType: environmentType
  }
}

output appServiceAppHostName string = appService.outputs.appServiceAppHostName

Az appService.bicep fájlnak a következő példához hasonlóan kell kinéznie:

param location string
param appServiceAppName string

@allowed([
  'nonprod'
  'prod'
])
param environmentType string

var appServicePlanName = 'toy-product-launch-plan'
var appServicePlanSkuName = (environmentType == 'prod') ? 'P2v3' : 'F1'

resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = {
  name: appServicePlanName
  location: location
  sku: {
    name: appServicePlanSkuName
  }
}

resource appServiceApp 'Microsoft.Web/sites@2023-12-01' = {
  name: appServiceAppName
  location: location
  properties: {
    serverFarmId: appServicePlan.id
    httpsOnly: true
  }
}

output appServiceAppHostName string = appServiceApp.properties.defaultHostName

Ha bármelyik fájl nem egyezik, másolja ki a példát, vagy módosítsa a sablont a példának megfelelően.

A frissített Bicep-sablon üzembe helyezése

Futtassa a következő Azure CLI-parancsot a terminálon.

az deployment group create \
  --template-file main.bicep \
  --parameters environmentType=nonprod

Futtassa a következő Azure PowerShell-parancsot a terminálon.

New-AzResourceGroupDeployment `
  -TemplateFile main.bicep `
  -environmentType nonprod

Az üzemelő példány ellenőrzése

  1. A böngészőben lépjen vissza az Azure Portalra. Ugrás az erőforráscsoportra; most két sikeres üzembe helyezés van.

  2. Válassza a 2 sikeres hivatkozást. Figyelje meg, hogy a listában szerepel egy főként hívott üzemelő példány, valamint egy appService nevű új üzembe helyezés.

    Képernyőkép az üzembe helyezésekhez tartozó Azure Portal felületéről, amelyen a két üzembe helyezés szerepel és sikeres állapotban van.

  3. Válassza ki a főként hívott üzembe helyezést, majd válassza az Üzembe helyezés részletei lehetőséget az üzembe helyezett erőforrások listájának kibontásához.

    Figyelje meg, hogy a modul üzembe helyezése megjelenik a listában.

    Képernyőkép az adott üzembe helyezéshez tartozó Azure Portal felületéről, amelyen egy erőforrás szerepel.

  4. Válassza a Kimenetek lapot. Figyelje meg, hogy van egy appServiceAppHostName nevű kimenet az App Service-alkalmazás gazdagépnevével. Másolja a gazdagép nevét a vágólapra.

    Képernyőkép az Azure Portal felületéről az adott üzembe helyezés kimeneteihez.

  5. Nyisson meg egy új böngészőlapot, és illessze be a másolt gazdagép nevét. Ekkor megjelenik az App Service alapértelmezett üdvözlőoldala.

    Képernyőkép az App Service alapértelmezett üdvözlőoldaláról.

Gratulálunk! Sikeresen üzembe helyezte egy nagyszerű alkalmazás alapjait.