Az infrastruktúra létrehozása kódként
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. Amain.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 amain.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.
infra
A sablon mappájában hozzon létre egy új fájlt.app.bicep
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 azAzure.yaml
alkalmazás forráskódjának mappájához az App Service-hez való társításához.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 ainfra
szerkesztőben, és nyissa meg amain.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áulenvironmentName
a .location
Alapértelmezés szerint ezek a paraméterek akkor lesznek feltöltvemain.parameters.json
, ha szerepelnek a fájlban, de felül is bírálhatja őket. A kezdőkód a fájlbaabbreviations.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.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.