Az infrastruktúra létrehozása kódként

Befejeződött

Az Azure Developer CLI (azd) a Bicepben vagy a Terraformban írt kódfájlok (IaC) használatával képes erőforrásokat kiépíteni az Azure-ban. A kódként használt infrastruktúra lehetővé teszi az infrastruktúra erőforrásainak és konfigurációinak definiálását deklaratív definíciós fájlokban, amelyek minden üzembe helyezéskor megbízhatóan generálják ugyanazokat a környezeteket. azd végrehajtja ezeket a fájlokat az alkalmazás üzemeltetéséhez szükséges Azure-erőforrások létrehozásához. Az infrastruktúra kódként való használatát a Mi az infrastruktúra kódként? dokumentációban találja.

Ebben a leckében Bicep-kódot fog hozzáadni a sablonhoz, hogy kiépíthesse az alkalmazáshoz szükséges erőforrásokat. A modul elvégzéséhez nem szükséges a Bicep korábbi ismerete. Ha azonban a sablonok széles körű használatát azd tervezi, érdemes megismerkednie legalább a Bicep vagy a Terraform alapjaival. További információ a Bicep-ről a Bicep képzési terv alapjairól.

A sablon Bicep- vagy Terraform-fájljai a infra mappában élnek. A kiválasztott Bicep-kezdősablon három fájlt hozott létre kiindulási pontként:

  • main.bicep – A Bicep-végrehajtás fő belépési pontjaként működik, és az Azure-ban kiépíteni kívánt erőforrások meghatározására szolgál. A main.bicep fájl más Bicep-modulokra (fájlokra) is hivatkozhat, amelyek lehetővé teszik az erőforrás-definíciók részletesebb, újrafelhasználható fájlokba való kinyerét.
  • abbreviations.json - Egy JSON-fájl, amely számos hasznos elnevezési rövidítést biztosít. Ez a fájl a végrehajtás során betöltődik a main.bicep fájlba, és konzisztens, logikai elnevezési előtagokat biztosít a különböző Azure-erőforrásokhoz.
  • main.parameters.json - Egy JSON-fájl, amely meghatározza a fontos sablonparaméterek alapértelmezett értékeit, például az alapértelmezett Azure-helyet vagy a környezet nevét.

A fájl frissítésével main.bicep és további Bicep-fájlok létrehozásával meghatározhatja és kiépítheti az alkalmazáshoz szükséges Azure-erőforrásokat. Main.bicep általában más Bicep-modulok végrehajtásának vezénylése paraméterek átadásával. Ebben a példában egy további Bicep-modult fog létrehozni, amely meghatározza az alkalmazást futtató Azure-alkalmazás szolgáltatást.

  1. infra A sablon mappájában hozzon létre egy új fájlt.app.bicep

  2. Nyissa meg a app.bicep fájlt, és illessze be a következő kódrészletet. A kód megjegyzései a kód egyes szakaszainak célját írják le.

    // Define parameters that can be passed into the module
    // Parameters allow a module to be reusable
    @description('The location of where to deploy resources')
    param location string
    
    @description('The name of the App Service Plan')
    param appServicePlanName string
    
    @description('The name of the App Service')
    param appServiceName string
    
    // Define the App Service Plan to manage compute resources
    resource appServicePlan 'Microsoft.Web/serverfarms@2022-03-01' = {
      name: appServicePlanName
      location: location
      properties: {
        reserved: true
      }
      sku: {
        name: 'F1'
      }
      kind: 'linux'
    }
    
    // Define the App Service to host the application
    resource appService 'Microsoft.Web/sites@2022-03-01' = {
      name: appServiceName
      location: location
      properties: {
        serverFarmId: appServicePlan.id
        siteConfig: {
          linuxFxVersion: 'DOTNETCORE|6.0'
        }
      }
        // Tag used to reference the service in the Azure.yaml file
        tags: { 'azd-service-name': 'web' }
    }
    

    A kódrészlet a következő feladatokat hajtja végre:

    • Olyan paraméterek készletét határozza meg, amelyek átadhatók a modulnak, hogy azok újrafelhasználhatók és konfigurálhatók legyenek. Az erőforrás-definíciókban szereplő értékek közül több paraméterezést is választhat, hogy rugalmasabbá tegye a modult.
    • Egy App Service-csomagot definiál az App Service-példányok számítási erőforrásainak kezeléséhez.
    • Meghatározza az app service-t az üzembe helyezett alkalmazás üzemeltetéséhez.

    Megjegyzés:

    Egy azd-service-name címke szerepel az App Service Bicep-definícióban, amelyet a konfigurációs fájl később használ az Azure.yaml alkalmazás forráskódjának mappájához az App Service-hez való társításához.

  3. Az új Bicep-modul létrehoz egy App Service-t a sablonhoz, de a használatához frissítenie kell.main.bicep Keresse meg a mappát a infra szerkesztőben, és nyissa meg a main.bicep fájlt.

    A main.bicep kezdősablon által létrehozott fájl hasznos beállítási konfigurációkat tartalmaz. A fájl például olyan alapvető paramétereket határoz meg, mint például environmentName a .location Alapértelmezés szerint ezek a paraméterek akkor lesznek feltöltve main.parameters.json , ha szerepelnek a fájlban, de felül is bírálhatja őket. A kezdőkód a fájlba abbreviations.json is betöltődik, hogy használható legyen, létrehoz néhány hasznos címkét és jogkivonatot a szolgáltatás elnevezéséhez, és hasznos megjegyzéseket és tippeket tartalmaz az első lépésekhez.

  4. A fájl alján main.bicep keresse meg a következőhöz hasonló megjegyzést:

    // Add resources to be provisioned below.
    // A full example that leverages azd bicep modules can be seen in the todo-python-mongo template:
    // https://github.com/Azure-Samples/todo-python-mongo/tree/main/infra
    

    Ez a helyőrző megjegyzés kiemeli, hogy hová szeretné belefoglalni a kiépíteni kívánt további erőforrásokat. Szeretnénk belefoglalni az App Service-hez létrehozott Bicep-modult, ezért illessze be közvetlenül a megjegyzés után a következő kódrészletet:

    module web 'app.bicep' = {
      name: '${deployment().name}-app'
      scope: rg
      params: {
        location: location
        appServiceName: '${abbrs.webSitesAppService}${resourceToken}'
        appServicePlanName: '${abbrs.webServerFarms}${resourceToken}'
      }
    }
    

    A kódrészlet a következő feladatokat hajtja végre:

    • Definiál egy Bicep-modult, amely az előző lépésben létrehozott fájlra mutat.
    • Nevet rendel az Azure-beli üzembehelyezési csoporthoz, és hatókört rendel hozzá a következőben létrehozott erőforráscsoporthoz main.bicep: .
    • Paramétereket ad át a modulba az értékek használatával az abbreviations.json elnevezéshez.

Az alkalmazás forráskódjának infrastruktúrafájljai mostantól a sablon részét képezik. A következő leckében olyan konfigurációkat fog hozzáadni, amelyek az üzembe helyezési folyamat ezen részei azd közötti kapcsolatot írják le.