Gyakorlat – A sablon újrabontása modulok használatára
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
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.
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.
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.
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.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.
Mentse a fájl módosításait.
A gazdagép nevének hozzáadása kimenetként
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ánakstring
megfelelő lesz. A kimenet az App Service-alkalmazás tulajdonságábóldefaultHostName
veszi át az értékét.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.
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.
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
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.
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.
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.
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.
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.
Gratulálunk! Sikeresen üzembe helyezte egy nagyszerű alkalmazás alapjait.