Vytvoření infrastruktury jako kódu
Azure Developer CLI (azd
) může zřídit prostředky v Azure pomocí souborů infrastruktury jako kódu (IaC) napsaných v Bicep nebo Terraformu. Infrastruktura jako kód umožňuje definovat prostředky a konfigurace infrastruktury v deklarativních definičních souborech, které spolehlivě generují stejná prostředí při každém nasazení. azd
tyto soubory spustí, aby se vytvořily prostředky Azure potřebné k hostování vaší aplikace. Další informace o infrastruktuře jako kódu najdete v dokumentaci k infrastruktuře jako kódu?
V této lekci přidáte do šablony kód Bicep, který zřídí potřebné prostředky pro vaši aplikaci. Předchozí znalost Bicep není nutná k dokončení tohoto modulu. Pokud ale plánujete pracovat s šablonami azd
, je vhodné se seznámit alespoň se základy Bicepu nebo Terraformu. Přečtěte si další informace o nástroji Bicep o studijním programu Základy Bicep .
Soubory Bicep nebo Terraform pro vaši šablonu jsou ve infra
složce živé. Úvodní šablona Bicep, kterou jste vybrali, vygenerovala jako výchozí bod tři soubory:
main.bicep
– Slouží jako hlavní vstupní bod pro provádění Bicep a slouží k definování prostředků, které se zřídí v Azure. Soubormain.bicep
může také odkazovat na další moduly Bicep (soubory), které umožňují extrahovat definice prostředků do podrobnějších opakovaně použitelných souborů.abbreviations.json
– Soubor JSON, který poskytuje mnoho užitečných zkratek pojmenování. Tento soubor se načte domain.bicep
souboru během provádění a poskytuje sadu konzistentních logických předpon pojmenování pro různé prostředky Azure.main.parameters.json
– Soubor JSON, který definuje výchozí hodnoty pro důležité parametry šablony, jako je výchozí umístění Azure nebo název prostředí.
Požadované prostředky Azure pro vaši aplikaci můžete definovat a zřídit tak, že soubor aktualizujete main.bicep
a vytvoříte další soubory Bicep. Main.bicep
obecně orchestruje provádění dalších modulů Bicep předáním parametrů mezi nimi. V tomto příkladu vytvoříte další modul Bicep, který definuje službu Aplikace Azure, která bude hostovat vaši aplikaci.
infra
Uvnitř složky šablony vytvořte nový soubor s názvemapp.bicep
.app.bicep
Otevřete soubor a vložte následující fragment kódu. Komentáře ke kódu popisují účel každé části kódu.// 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' } }
Fragment kódu provádí následující úlohy:
- Definuje sadu parametrů, které je možné předat do modulu, aby bylo možné ho opakovaně používat a konfigurovat. Můžete se rozhodnout parametrizovat více hodnot v definicích prostředků, aby byl modul flexibilnější.
- Definuje plán služby App Service pro správu výpočetních prostředků pro instance služby App Service.
- Definuje službu App Service pro hostování nasazené aplikace.
Poznámka:
azd-service-name
Značka je součástí definice App Service Bicep, kterou pozdějiAzure.yaml
použije konfigurační soubor k přidružení složky zdrojového kódu aplikace ke službě App Service.Nový modul Bicep vytvoří pro vaši šablonu službu App Service, ale přesto je potřeba aktualizovat ji
main.bicep
tak, aby ji používala.infra
Vyhledejte složku v editorumain.bicep
a otevřete soubor.Soubor
main.bicep
vygenerovaný úvodní šablonou obsahuje užitečné konfigurace nastavení za vás. Například soubor definuje základní parametry, napříkladenvironmentName
alocation
. Ve výchozím nastavení se tyto parametry vyplní,main.parameters.json
pokud jsou součástí tohoto souboru, ale můžete je také přepsat. Počáteční kód se také načte doabbreviations.json
souboru, aby s ním bylo možné pracovat, vytvořil některé užitečné značky a tokeny pro pojmenování služeb a obsahuje užitečné komentáře s tipy, které vám pomůžou začít.V dolní části
main.bicep
souboru vyhledejte komentář podobný následujícímu:// 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
Tento zástupný komentář zvýrazňuje, kde zahrnout další prostředky, které chcete zřídit. Chceme zahrnout modul Bicep, který vytvoříte pro službu App Service, takže vložte následující fragment kódu přímo za komentář:
module web 'app.bicep' = { name: '${deployment().name}-app' scope: rg params: { location: location appServiceName: '${abbrs.webSitesAppService}${resourceToken}' appServicePlanName: '${abbrs.webServerFarms}${resourceToken}' } }
Fragment kódu provádí následující úlohy:
- Definuje modul Bicep, který odkazuje na soubor, který jste vytvořili v předchozím kroku.
- Přiřadí název sadě nasazení Azure a jeho rozsahy skupině prostředků vytvořené v
main.bicep
. - Předává parametry do modulu pomocí
abbreviations.json
hodnot, které vám pomůžou s pojmenováním.
Soubory infrastruktury zdrojového kódu aplikace jsou teď součástí vaší šablony. V další lekci přidáte konfigurace, které popisují vztah mezi těmito částmi procesu azd
nasazení.