Harjoitus – Parametrien ja muuttujien lisääminen Bicep-tiedostoon
Note
Tämä harjoitus on valinnainen. Jos haluat suorittaa tämän harjoituksen, sinun on luotava Azure-tilaus ennen aloittamista. Jos sinulla ei ole Azure-tiliä tai et halua luoda sellaista tällä hetkellä, voit lukea ohjeet läpi, jotta ymmärrät esitetyt tiedot.
Tässä harjoituksessa päivität aiemmin luomasi Bicep-tiedoston, joten se:\
- Hyväksyy resurssisijainteja ja nimiä koskevat parametrit.
- Liiketoimintasääntöjen avulla voit valita oikeat varastointiyksiköt käyttöönotettaville resursseille.
Prosessin aikana teet seuraavat:
- Päivitä Bicep-tiedosto sisältämään
locationparametri. - Päivitä Bicep-tiedosto sisältämään parametrit ja muuttujat resurssien nimille.
- Lausekkeiden avulla voit määrittää parametreille oletusarvot.
- Päivitä Bicep-tiedosto sisältämään muuttujat kunkin resurssin SKU:lle.
- Testaa käyttöönottoa varmistaaksesi, että Bicep-tiedosto on kelvollinen.
Sijainnin ja resurssin nimen parametrien lisääminen
Lisää Seuraava koodi Visual Studio Coden main.bicep-tiedostoon Bicep-tiedoston yläosaan:
param location string = 'eastus' param storageAccountName string = 'toylaunch${uniqueString(resourceGroup().id)}' param appServiceAppName string = 'toylaunch${uniqueString(resourceGroup().id)}' var appServicePlanName = 'toy-product-launch-plan'Bicep-linter lisää keltaiset aaltoviivat jokaisen parametrin ja muuttujan nimen alle osoittamaan, ettei niitä käytetä Bicep-tiedostossa. Korjaat tämän ongelman pian.
Huomaa, että käytät lausekkeita, jotka sisältävät merkkijonon interpoloinnin ja
uniqueString()-funktion oletusarvojen arvojen määrittämiseen. Joku, joka ottaa tämän Bicep-tiedoston käyttöön, voi ohittaa oletusarvoiset parametriarvot määrittämällä arvot käyttöönoton aikana, mutta hän ei voi ohittaa muuttujien arvoja.Huomaa myös, että käytät muuttujaa Azure-sovelluspalvelun palvelupaketin nimessä, mutta käytät parametreja muille nimille. Tallennustilit ja sovelluspalvelun sovellukset tarvitsevat yleisesti yksilöiviä nimiä, mutta sovelluspalvelusopimusnimien on oltava yksilöllisiä vain resurssiryhmässään. Tämä ero tarkoittaa, että sinun ei tarvitse käyttää samaa sovelluspalvelusuunnitelman nimeä eri käyttöönotoissa, kunhan kaikki käyttöönotot on jaettu eri resurssiryhmiin.
Juomaraha
Määrität, että
location-parametrin arvoksi määritetäänwestus3. Yleensä luot resursseja samassa sijainnissa kuin resurssiryhmä käyttämälläresourceGroup().location-ominaisuutta. Kun käytät Microsoft Learn -eristystä, sinun on käytettävä tiettyjä Azure-alueita, jotka eivät vastaa resurssiryhmän sijaintia.Etsi resurssimääritelmistä paikat, joissa
locationjanameominaisuudet on määritetty, ja päivitä ne käyttämään parametriarvoja. Kun olet valmis, Bicep-tiedoston resurssimääritysten pitäisi näyttää tältä:resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = { name: storageAccountName location: location sku: { name: 'Standard_LRS' } kind: 'StorageV2' properties: { accessTier: 'Hot' } } resource appServicePlan 'Microsoft.Web/serverfarms@2024-04-01' = { name: appServicePlanName location: location sku: { name: 'F1' } } resource appServiceApp 'Microsoft.Web/sites@2024-04-01' = { name: appServiceAppName location: location properties: { serverFarmId: appServicePlan.id httpsOnly: true } }Tallenna muutokset tiedostoon.
Määritä kunkin ympäristötyypin SKU:t automaattisesti
Lisää main.bicep -tiedostoon Visual Studio Codessa seuraava Bicep-parametri edellisessä tehtävässä luomiesi parametrien alapuolelle:
@allowed([ 'nonprod' 'prod' ]) param environmentType stringHuomaa, että määrität parametrin sallituilla arvoilla, mutta et määritä oletusarvoa tälle parametrille.
Lisää seuraavat muuttujamääritykset
appServicePlanName-muuttujan ilmoittavan rivin alapuolelle:var storageAccountSkuName = (environmentType == 'prod') ? 'Standard_GRS' : 'Standard_LRS' var appServicePlanSkuName = (environmentType == 'prod') ? 'P2v3' : 'F1'Huomaa, että määrität näitä muuttujien arvoja käyttämällä ternaarioperaattoria
if/then/elselogiikan ilmaisemiseen.Etsi resurssien määritelmistä paikat, joissa
skuominaisuudet määritetään, ja päivitä ne käyttämään parametriarvoja. Kun olet valmis, Bicep-tiedoston resurssimääritysten pitäisi näyttää tältä:resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = { name: storageAccountName location: location sku: { name: storageAccountSkuName } kind: 'StorageV2' properties: { accessTier: 'Hot' } } resource appServicePlan 'Microsoft.Web/serverfarms@2024-04-01' = { name: appServicePlanName location: location sku: { name: appServicePlanSkuName } } resource appServiceApp 'Microsoft.Web/sites@2024-04-01' = { name: appServiceAppName location: location properties: { serverFarmId: appServicePlan.id httpsOnly: true } }Huomaa, että kaikkea ei ole parametrisoitu. Olet määrittänyt joitain ominaisuuksia suoraan resurssimäärityksiä, joissa tiedät, että nämä arvot eivät muutu käyttöönottojen välillä.
Tallenna muutokset tiedostoon.
Vahvista Bicep-tiedostosi
Kun olet tehnyt kaikki edellä mainitut muutokset, main.bicep-tiedoston pitäisi näyttää tältä:
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 appServicePlanName = 'toy-product-launch-plan'
var storageAccountSkuName = (environmentType == 'prod') ? 'Standard_GRS' : 'Standard_LRS'
var appServicePlanSkuName = (environmentType == 'prod') ? 'P2v3' : 'F1'
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: storageAccountName
location: location
sku: {
name: storageAccountSkuName
}
kind: 'StorageV2'
properties: {
accessTier: 'Hot'
}
}
resource appServicePlan 'Microsoft.Web/serverfarms@2024-04-01' = {
name: appServicePlanName
location: location
sku: {
name: appServicePlanSkuName
}
}
resource appServiceApp 'Microsoft.Web/sites@2024-04-01' = {
name: appServiceAppName
location: location
properties: {
serverFarmId: appServicePlan.id
httpsOnly: true
}
}
Jos tiedosto ei täsmää, kopioi esimerkki tai muuta tiedostosi vastaamaan esimerkkiä.
Päivitetyn Bicep-tiedoston käyttöönotto
Suorita seuraava Azure CLI -komento päätteessä.
az deployment group create \
--name main \
--template-file main.bicep \
--parameters environmentType=nonprod
Suorita seuraava Azure PowerShell -komento päätteessä.
New-AzResourceGroupDeployment `
-Name main `
-TemplateFile main.bicep `
-environmentType nonprod
Huomaa, että määrität environmentType-parametrin arvon nimenomaisesti, kun suoritat käyttöönoton. Sinun ei tarvitse määrittää muita parametriarvoja, koska niillä on kelvolliset oletusarvot.
Käyttöönoton tarkistaminen
Palaa selaimessa takaisin Azure -portaalin ja siirry resurssiryhmääsi. Näet edelleen yhden onnistuneen käyttöönoton, koska käyttöönotto käytti samaa nimeä kuin ensimmäinen käyttöönotto.
Valitse onnistunut -linkki 1.
Valitse käyttöönotto nimeltä pääja laajenna käyttöön otettujen resurssien luettelo valitsemalla Käyttöönottotiedot.
Huomaa, että uusi sovelluspalvelun sovellus ja tallennustili on otettu käyttöön käyttäen satunnaisesti luotuja nimiä.